在Ubuntu上為PHP-FPM配置SSL證書,通常需要以下幾個步驟:
安裝Certbot: Certbot是一個用于獲取和續訂Let’s Encrypt SSL證書的工具。你可以使用以下命令安裝它:
sudo apt update
sudo apt install certbot python3-certbot-nginx
獲取SSL證書:
使用Certbot獲取SSL證書。假設你的域名是example.com
,你可以運行以下命令:
sudo certbot --nginx -d example.com -d www.example.com
Certbot會自動配置Nginx以使用SSL證書,并創建一個符號鏈接指向證書文件。
配置PHP-FPM:
PHP-FPM本身不需要SSL證書,但你可能需要配置Nginx以將HTTPS請求轉發到PHP-FPM。編輯Nginx配置文件(通常位于/etc/nginx/sites-available/default
),添加或修改以下內容:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
root /var/www/html;
index index.php index.html index.htm;
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;
}
}
重啟Nginx和PHP-FPM: 保存配置文件后,重啟Nginx和PHP-FPM以應用更改:
sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm # 根據你的PHP版本調整
驗證配置:
打開瀏覽器并訪問https://example.com
,你應該能夠看到你的網站通過HTTPS提供服務。
sudo certbot renew --dry-run
fastcgi_pass
指令匹配。通過以上步驟,你應該能夠在Ubuntu上成功為PHP-FPM配置SSL證書。