我在 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
重启后一切正常运行。