在Debian系统上配置PHP以使用SSL证书,通常涉及以下几个步骤:
安装SSL证书:
安装和配置Web服务器:
Certbot是一个自动化的工具,可以帮助你获取和续订Let’s Encrypt证书。
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用Certbot获取SSL证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成证书的获取和配置。Certbot会自动修改Nginx配置文件以启用HTTPS。
确保PHP-FPM(FastCGI Process Manager)也使用SSL。编辑PHP-FPM配置文件:
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
找到以下行并取消注释(删除行首的;
):
;listen = 127.0.0.1:9000
改为:
listen = /run/php/php7.4-fpm.sock
然后重启PHP-FPM服务:
sudo systemctl restart php7.4-fpm
编辑Nginx配置文件:
sudo nano /etc/nginx/sites-available/yourdomain.com
确保配置文件中有以下内容:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.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;
}
location / {
try_files $uri $uri/ =404;
}
}
保存并退出编辑器,然后测试Nginx配置:
sudo nginx -t
如果没有错误,重启Nginx服务:
sudo systemctl restart nginx
打开浏览器,访问你的域名,确保页面通过HTTPS加载,并且浏览器显示安全锁标志。
通过以上步骤,你应该能够在Debian系统上成功配置PHP以使用SSL证书。