在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证书。