在 Ubuntu 上让 PHP 开启 / 支持 SSL,通常分几种情况。下面按最常见场景一步步说明。
file_get_contents https、curl https 等)PHP 的 SSL 支持主要来自:
openssl 扩展curl 扩展(HTTPS 请求)查看是否已开启:
php -m | grep openssl
php -m | grep curl
如果没有输出,安装对应扩展:
sudo apt update
sudo apt install php8.1-openssl php8.1-curl
⚠️ 版本号按你实际 PHP 版本改(如 php7.4、php8.2)
编辑 php.ini(位置可能不同):
php --ini
常见路径:
/etc/php/8.1/cli/php.ini
/etc/php/8.1/fpm/php.ini
确保以下行没有被注释:
extension=openssl
extension=curl
修改后重启:
sudo systemctl restart php8.1-fpm
# 或
sudo service apache2 restart
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
root /var/www/html;
index index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
sudo nginx -t
sudo systemctl restart nginx
sudo a2enmod ssl
sudo a2ensite default-ssl
编辑:
/etc/apache2/sites-available/default-ssl.conf
配置证书路径后:
sudo systemctl restart apache2
<?php
$url = "https://www.baidu.com";
$html = file_get_contents($url);
echo $html;
或 CURL:
<?php
$ch = curl_init("https://www.baidu.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($ch);
关闭验证(不推荐生产):
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
✅ 正确做法:安装 CA 证书
sudo apt install ca-certificates
✅ PHP 支持 SSL = 安装并启用 openssl + curl
✅ Web 用 HTTPS = Nginx/Apache 配置证书
✅ 一般 Ubuntu + PHP 默认已支持 SSL
如果你愿意,可以告诉我:
php -v)我可以给你精确命令。