php 通过 https 无法正常工作

php 通过 https 无法正常工作

我在 ubuntu 22.04 上运行带有 php7.4-fpm 的 nginx,并且有一个这样的信息页面。

<?php phpinfo(); ?>

我有这个 nginx 服务器配置。

server {
  listen 80;
  listen [::]:80;
  root /var/www/html;
  index index.php index.html;
  server_name example.com;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }

}

每当我通过以下方式调用 info.php 页面时http://example.com/info.php我按预期获得了 php 信息。没有错误!

一旦我将服务器设置更改为使用https://example.com/info.php我什么也没得到。没有输出,只有空白页。

这是 https 设置

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  ssl_certificate     /etc/......./fullchain.pem;
  ssl_certificate_key /etc/......./privkey.pem;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers HIGH:!aNULL:!MD5;

  root /var/www/html;
  index index.php index.html;
  server_name example.com;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }
}

顺便说一句,简单的 html 输出适用<p>Hello World</p>于这两种配置。

有谁知道为什么 php-fpm 不能与 https 一起使用?

答案1

我找到原因了。

我也使用了这 2 个存储库,安装了 php7.4、php8.0 和 php8.1。

add-apt-repository ppa:ondrej/php
add-apt-repository ppa:ondrej/nginx

我忘记配置 php 默认版本,可以通过以下命令完成:

update-alternatives --config php
update-alternatives --set php-fpm.sock /run/php/php7.4-fpm.sock

重启后一切正常运行。

相关内容