以下是在Linux上配置PHP最佳環境的步驟,涵蓋基礎安裝、性能優化及安全設置:
更新系統
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
安裝PHP及擴展
sudo apt install php php-fpm php-mysql php-mbstring php-xml php-opcache # 安裝PHP及常用擴展
sudo yum install php php-fpm php-mysqlnd php-mbstring php-xml php-opcache
安裝Web服務器
sudo apt install nginx # Debian/Ubuntu
sudo systemctl start nginx && sudo systemctl enable nginx
sudo apt install apache2 libapache2-mod-php # Debian/Ubuntu
sudo systemctl start apache2 && sudo systemctl enable apache2
配置PHP-FPM
/etc/php/{version}/fpm/pool.d/www.conf
):listen = /run/php/php{version}-fpm.sock # 推薦使用Unix Socket
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50 # 根據服務器內存調整(建議50-100)
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500 # 防止內存泄漏
sudo systemctl restart php{version}-fpm
配置Web服務器解析PHP
Nginx:
編輯站點配置文件(/etc/nginx/sites-available/default
):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php{version}-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
測試并重啟Nginx:
sudo nginx -t && sudo systemctl restart nginx
Apache:
確保模塊已啟用:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php{version}-fpm
sudo systemctl restart apache2
啟用OPcache
編輯php.ini
:
opcache.enable=1
opcache.memory_consumption=128 # 根據服務器內存調整(建議64-256MB)
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1 # 生產環境建議設為0
調整內存與執行時間
在php.ini
中設置:
memory_limit = 256M # 根據應用需求調整
max_execution_time = 30
文件權限優化
確保Web服務器用戶(如www-data
)對項目目錄有讀寫權限:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
配置防火墻
允許HTTP/HTTPS流量:
sudo ufw allow 'Nginx Full' # Debian/Ubuntu
sudo firewall-cmd --permanent --add-service=http --add-service=https # CentOS/RHEL
sudo firewall-cmd --reload
啟用HTTPS
使用Let’s Encrypt免費證書:
sudo apt install certbot python3-certbot-nginx # Debian/Ubuntu
sudo certbot --nginx -d yourdomain.com
監控與日志
sudo systemctl status php{version}-fpm
sudo tail -f /var/log/php{version}-fpm.log
htop # 實時監控CPU/內存
vmstat 1 # 監控系統整體負載
創建測試文件/var/www/html/info.php
:
<?php phpinfo(); ?>
訪問http://yourdomain.com/info.php
,確認PHP版本、擴展及配置正確。
根據實際需求調整配置,生產環境建議使用SSD存儲、負載均衡及容器化部署(如Docker)進一步提升性能和穩定性。