ThinkPHP是一款遵循Apache2開源協議發布的免費、開源、快速、簡單、面向對象的輕量級PHP開發框架,旨在支持敏捷Web應用開發和簡化企業應用開發。本文介紹如何在Alibaba Cloud Linux 3/2、CentOS 7.x系統的ECS實例中搭建ThinkPHP 8.0框架。
前提條件
本教程適用于正在學習PHP或者已基于ThinkPHP框架進行開發的開發人員。搭建ThinkPHP框架時,已有ECS實例必須滿足以下條件:
實例已分配公網IP地址或綁定彈性公網IP(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
運行以下命令,更新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
CentOS 7.x
更新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 -v
返回結果如下所示,表示安裝成功。
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 --version
回顯信息類似如下所示時,表示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模塊)配置示例:
<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>
Nginx配置示例:
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }