Linux下ThinkPHP部署步驟
部署前需安裝PHP、Web服務器(Nginx/Apache)、Composer及數據庫(MySQL/PostgreSQL)。
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl
,CentOS使用sudo yum install php php-fpm php-mysqlnd php-mbstring php-xml php-curl
)。sudo apt install nginx
。curl -sS https://getcomposer.org/installer | php
,然后將composer.phar
移動至/usr/local/bin/composer
。sudo apt install mysql-server
,初始化后設置root密碼。將本地ThinkPHP項目上傳至Linux服務器,推薦存放至/var/www/html/your_project
(需替換為實際項目名)。上傳方式可選:
scp
命令(如scp -r local_project.zip user@server_ip:/var/www/html/
)或FileZilla等工具。git clone repository_url /var/www/html/your_project
。進入項目根目錄,執行composer install
,自動安裝composer.json
中定義的依賴包(如ThinkPHP核心組件、數據庫驅動等)。安裝完成后,會生成vendor
目錄。
sudo nano /etc/nginx/sites-available/your_project
,添加以下內容(替換your_domain
和項目路徑):server {
listen 80;
server_name your_domain.com;
root /var/www/html/your_project/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根據PHP版本調整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
。sudo nginx -t
(檢查語法),sudo systemctl restart nginx
。mod_rewrite
模塊:sudo a2enmod rewrite
。/etc/apache2/sites-available/000-default.conf
),將DocumentRoot
指向項目public
目錄,并添加AllowOverride All
以支持.htaccess重寫。sudo systemctl restart apache2
。編輯項目根目錄下的.env
文件(若不存在則復制config/.env.example
),修改數據庫連接信息:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password
然后創建數據庫(如mysql -u root -p -e "CREATE DATABASE your_database_name;"
),并導入表結構(若有SQL文件)。
確保Web服務器用戶(如www-data
)對項目目錄有讀寫權限:
sudo chown -R www-data:www-data /var/www/html/your_project
sudo chmod -R 755 /var/www/html/your_project
sudo chmod -R 775 /var/www/html/your_project/runtime # runtime目錄需可寫
注意:避免使用777
權限,以防安全風險。
sudo systemctl start nginx
;Apache:sudo systemctl start apache2
)。http://your_domain.com
(或服務器IP),若看到ThinkPHP歡迎頁面,說明部署成功。config/app.php
,將app_debug
設為false
,避免泄露敏感信息。sudo apt install certbot python3-certbot-nginx
(Nginx),然后sudo certbot --nginx -d your_domain.com
,按提示完成配置。php.ini
,開啟opcache.enable=1
,提升PHP執行效率。