在Linux系统中配置PHP支持SSL,通常可以按照以下步骤完成。无论是搭建HTTPS网站,还是让PHP正常调用加密通信功能,这套Linux下PHP开启SSL的配置流程都比较常见。

1. 安装PHP和SSL模块
首先,请确认系统中已经安装PHP,以及与SSL相关的扩展模块。通常可以通过Linux发行版自带的包管理器快速完成安装,这也是配置PHP支持SSL最基础的一步。
在Debian/Ubuntu上:
sudo apt update
sudo apt install php php-ssl在CentOS/RHEL上:
sudo yum install php php-ssl2. 配置PHP以使用SSL
安装完成后,还需要编辑PHP配置文件php.ini,以确保PHP已启用SSL支持。很多用户在Linux环境中配置PHP SSL时,都会在这一步检查OpenSSL扩展是否已开启。
找到php.ini文件的位置:
php --ini通常情况下,php.ini文件可能位于/etc/php/7.x/cli/php.ini(命令行CLI模式),或者位于/etc/php/7.x/apache2/php.ini(Apache运行模式)。具体路径会因PHP版本和运行环境不同而略有差异。
编辑php.ini文件:
sudo nano /etc/php/7.x/cli/php.ini或者
sudo nano /etc/php/7.x/apache2/php.ini启用SSL模块:
找到下面这一行,并取消注释(删除前面的;),以启用OpenSSL扩展:
extension=openssl3. 配置Web服务器以使用SSL
仅开启PHP的SSL扩展还不够,如果你希望网站通过HTTPS访问,还需要为Web服务器(例如Apache或Nginx)正确配置SSL证书。这是Linux服务器部署PHP SSL网站时非常关键的一步。
在Apache上配置SSL:
安装Apache的SSL模块:
sudo a2enmod ssl生成或获取SSL证书和密钥:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt接下来需要配置SSL虚拟主机,编辑
/etc/apache2/sites-a vailable/default-ssl.conf文件:sudo nano /etc/apache2/sites-a vailable/default-ssl.conf添加以下内容:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
启用SSL站点:
sudo a2ensite default-ssl重启Apache服务器:
sudo systemctl restart apache2
在Nginx上配置SSL:
安装Nginx的SSL模块:
sudo apt install nginx生成或获取SSL证书和密钥:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt配置SSL虚拟主机:编辑
/etc/nginx/sites-a vailable/default文件:sudo nano /etc/nginx/sites-a vailable/default添加以下内容:
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
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;
}
location ~ /.ht {
deny all;
}
}启用SSL站点:
sudo ln -s /etc/nginx/sites-a vailable/default /etc/nginx/sites-enabled/重启Nginx服务器:
sudo systemctl restart nginx
4. 验证SSL配置
最后,建议检查SSL配置是否已经生效。你可以使用浏览器访问网站,确认地址栏是否显示HTTPS锁形图标,并查看SSL证书信息是否正常。如果浏览器能够安全访问站点,通常说明Linux下PHP和Web服务器的SSL配置已经成功。
按照以上步骤操作后,一般就可以在Linux系统下成功配置PHP以支持SSL,并让网站具备HTTPS安全访问能力。
