温馨提示×

ubuntu php怎么开启ssl

小樊
47
2026-09-13 09:56:25
栏目: 云计算

在 Ubuntu 上让 PHP 开启 / 支持 SSL,通常分几种情况。下面按最常见场景一步步说明。


一、PHP 本身开启 SSL 支持(用于 file_get_contents httpscurl https 等)

1️⃣ 安装 PHP SSL 扩展(通常已自带)

PHP 的 SSL 支持主要来自:

  • openssl 扩展
  • curl 扩展(HTTPS 请求)

查看是否已开启:

php -m | grep openssl
php -m | grep curl

如果没有输出,安装对应扩展:

PHP 7.x / 8.x 示例(以 php8.1 为例)

sudo apt update
sudo apt install php8.1-openssl php8.1-curl

⚠️ 版本号按你实际 PHP 版本改(如 php7.4、php8.2)


2️⃣ 确认 php.ini 中已启用

编辑 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

二、Nginx / Apache 开启 HTTPS(Web 服务 SSL)

✅ Nginx 开启 SSL

  1. 已有证书(如 Let’s Encrypt)
  2. 修改站点配置:
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

✅ Apache 开启 SSL

sudo a2enmod ssl
sudo a2ensite default-ssl

编辑:

/etc/apache2/sites-available/default-ssl.conf

配置证书路径后:

sudo systemctl restart apache2

三、PHP 使用 HTTPS 请求示例(验证 SSL 已可用)

<?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);

四、常见问题

❌ SSL certificate problem

关闭验证(不推荐生产):

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 版本(php -v
  • Web 服务(Nginx / Apache)
  • 是“PHP 发 HTTPS 请求”还是“网站用 HTTPS”

我可以给你精确命令

0