AWS EC2 安裝官方標準 CentOS 8 映像檔時,版本是 CentOS Linux release 8.3.2011. 所以需要將系統更新到 CentOS Stream 8 才能安裝 PHP8.1. 參考 CentOS 8 Update to CentOS Stream 8 將系統更新到 CentOS Stream 8.

將系統更新到 CentOS Stream 8 後,安裝下面工具:

#安裝 wget 工具
sudo yum -y install wget

#安裝解壓縮工具
sudo yum -y install unzip

#安裝壓縮工具
sudo yum -y install zip

關閉 SELinux 設定

sudo vi /etc/selinux/config 

#找到 SELINUX=enforcing 改成 SELINUX=disabled
#將 SELINUXTYPE=targeted 加上註釋改為 # SELINUXTYPE=targeted
#存檔後重新開機

#要檢查 SELinux 的狀態, 執行 getenforce 指令便可以看到
#暫時關閉 SELinux 執行 set enforce 0 , 這樣會暫時關閉 SELinux, 無需重新開機, 但下次重新開機後 SELinux 會照常執行.

安裝Apache Web服務器

#安裝
sudo yum -y install httpd
sudo yum -y mod_ssl

#啟動Apache Web服務器
sudo systemctl start httpd.service

#創建httpd的系統啟動鏈接,在系統啟動時自動啟動httpd
sudo systemctl enable httpd.service

#修改 /etc/httpd/conf/httpd.conf 設定後重新啟動

#將centos加入apache群組
sudo usermod -a -G apache centos

若跳出錯誤訊息
[sss_cache] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.24] for domain implicit_files!

參考: https://blog.csdn.net/Farro/article/details/139858245
#建立sssd.conf檔案後執行
        systemctl status sssd.service
        systemctl start sssd.service
        systemctl stop sssd.service
        systemctl status sssd.service

然後就自己正常了 @@?

安裝PHP8.1

執行 sudo dnf module list php 檢查目前系統支援的php版本發現,CentOS Stream 8 並未支援 PHP8.1

下載安 remirepo

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

重新執行 sudo dnf module list php 就可以發現已經支援 php 8.1

安裝 PHP8.1 及其他 module

sudo dnf module install php:remi-8.1 -y
sudo yum install php-gd php-pdo php-odbc php-mysqlnd php-pear php-process php-zip

安裝 Microsoft ODBC 連線 MSSQL, 參考 安裝 Microsoft ODBC Driver for SQL Server (Linux)

curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum remove unixODBC unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install -y unixODBC-devel

#安裝 php-sqlsrv
sudo yum install php-sqlsrv

Laravel 8.x 連線 MSSQL 出現錯誤訊息解決方法,只要在 config/database.php 檔案中使用 sqlsrv driver的設定中加入 ‘encrypt’ => ‘yes’ 及 ‘trust_server_certificate’ => ‘true’ 兩行即可。

        'MSSQL' => [
            'driver' => 'sqlsrv',
            'url' => env('MSDB_HOST_URL'),
            'host' => env('MSDB_HOST', 'localhost'),
            'port' => env('MSDB_PORT', '1433'),
            'database' => env('MSDB_DATABASE', 'forge'),
            'username' => env('MSDB_USERNAME', 'forge'),
            'password' => env('MSDB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
            'encrypt' => 'yes', // alternatively, defer to an env variable
            'trust_server_certificate' => 'true', // alternatively, defer to an env variable
        ],
最後修改日期: 2024 年 8 月 23 日