ThinkPHP是一款遵循Apache2開源協議發布的免費、開源、快速、簡單、物件導向的輕量級PHP開發架構,旨在支援敏捷Web應用開發和簡化公司專屬應用程式開發。本文介紹如何在Alibaba Cloud Linux 3/2、CentOS 7.x系統的ECS執行個體中搭建ThinkPHP 8.0架構。
前提條件
本教程適用於正在學習PHP或者已基於ThinkPHP架構進行開發的開發人員。搭建ThinkPHP架構時,已有ECS執行個體必須滿足以下條件:
執行個體已指派公網IP地址或綁定Elastic IP Address(EIP)。
作業系統必須為Alibaba Cloud Linux 3/2、CentOS 7.x。
執行個體安全性群組的入方向規則已允許存取22、8000(ThinkPHP預設連接埠)、443連接埠。具體操作,請參見添加安全性群組規則。
操作步驟
安裝PHP 8.0。
說明
ThinkPHP 8.0要求PHP版本大於等於8.0。
當ECS執行個體作業系統為Alibaba Cloud Linux 3時,需安裝openssl10依賴包。
sudo yum install -y compat-openssl10
安裝PHP。
Alibaba Cloud Linux 3/2
CentOS 7.x
運行以下命令,更新YUM源。
sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
運行以下命令,啟用PHP 8.0倉庫。
sudo yum-config-manager --enable remi-php80
運行以下命令,安裝PHP。
sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring
更新YUM源。
運行以下命令,安裝EPEL源和Remi倉庫。
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
運行以下命令,啟用PHP 8.0倉庫。
sudo yum-config-manager --enable remi-php80
運行以下命令,安裝PHP。
sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
運行以下命令,查看PHP版本。
返回結果如下所示,表示安裝成功。
PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
安裝Composer。
Composer是一個用於PHP專案依賴管理的工具。它允許開發人員定義和管理專案所需的外部依賴關係,並自動處理這些依賴的安裝、更新和載入。更多資訊,請參見Composer官網。
安裝Composer所需依賴。
sudo yum install -y unzip git
安裝Composer。
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
查看Composer版本。
回顯資訊類似如下所示時,表示Composer已安裝。

安裝ThinkPHP。
使用Composer建立一個新的ThinkPHP應用程式。
該命令會在目前的目錄下建立一個名為my-thinkphp-app
的目錄,並下載ThinkPHP的核心檔案和依賴項。
composer create-project topthink/think my-thinkphp-app
切換到新建立的ThinkPHP應用程式目錄,啟動ThinkPHP內建伺服器進行開發。
cd my-thinkphp-app
php think run
回顯資訊類似如下所示時,表示ThinkPHP已啟動。

在本地瀏覽器中地址欄輸入http://<ECS執行個體公網IP地址>:8000
。
顯示如下所示時,表示ThinkPHP已部署成功。

配置Web伺服器(生產環境)。
在生產環境中,您需要使用一個完整的Web伺服器,如Apache或Nginx,來部署ThinkPHP應用。您需要正確設定管理員的URL重寫規則以確保架構路由正常工作。
Apache(確保開啟了mod_rewrite模組)配置樣本:
Nginx配置樣本:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}