在Linux環境下配置PHP以確保安全性是一個重要的任務。以下是一些關鍵步驟和建議,幫助你安全地配置PHP:
確保你的Linux系統和所有相關軟件都是最新的。
sudo apt update && sudo apt upgrade -y
安裝PHP及其必要的擴展。你可以使用包管理器來安裝。
sudo apt install php php-cli php-fpm php-mysql php-curl php-xml php-gd php-mbstring php-zip -y
如果你使用的是PHP-FPM,確保配置文件/etc/php/7.x/fpm/pool.d/www.conf中的用戶和組設置為非特權用戶和組。
user = www-data
group = www-data
編輯/etc/php/7.x/cli/php.ini和/etc/php/7.x/fpm/php.ini文件,進行以下安全配置:
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
file_uploads = On
upload_max_filesize = 50M
post_max_size = 50M
safe_mode = Off
allow_url_fopen = Off
session.cookie_httponly = On
session.cookie_secure = On
session.gc_maxlifetime = 1440
mysqli.allow_local_infile = Off
pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock
如果你使用的是Apache或Nginx,確保正確配置它們以處理PHP請求。
確保/etc/apache2/sites-available/your-site.conf文件中有以下配置:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
確保/etc/nginx/sites-available/your-site文件中有以下配置:
server {
listen 80;
server_name your-domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
配置防火墻以限制對服務器的訪問。
sudo ufw allow 'Nginx Full'
sudo ufw enable
定期備份你的網站文件和數據庫。
sudo tar -czvf /backup/your-site-$(date +%F).tar.gz /var/www/html
mysqldump -u your_username -p your_database > /backup/your-database-$(date +%F).sql
確保你有適當的監控和日志記錄機制來檢測和響應安全事件。
通過遵循這些步驟,你可以大大提高在Linux環境下運行PHP的安全性。記住,安全是一個持續的過程,需要定期審查和更新配置。