php - Nginx 不执行 php
问题描述
我在几个网站上使用 Nginx。第一次使用它并不太高兴(Apache 在我的情况下不起作用)。我正在尝试将 PHP 用于需要它的新项目。我有 PHP 7.3 FPM。测试, phpinfo(); 确实有效,但是在添加这个项目(openCAD)时,index.php 似乎是空白的。
我试着穿上 MyBB 看看它是否执行,它根本没有,只是一个空白页。
这是我的 nginx 配置
server {
root /var/www/mywebsite.com/;
index index.php index.html index.htm index.nginx-debian.html;
server_name mywebsite.com www.mywebsite.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}server {
if ($host = www.mywebsite.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = mywebsite.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name mywebsite.com www.mywebsite.com;
return 404; # managed by Certbot
}
server {
if ($host = www.appeal.mywebsite.com) {
return 301 https://mywebsite.com/appeal;
} # managed by Certbot
if ($host = appeal.mywebsite.com) {
return 301 https://mywebsite.com/appeal;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name www.appeal.mywebsite.com appeal.mywebsite.com;
return 404; # managed by Certbot
}
server {
if ($host = www.cad.mywebsite.com) {
return 301 https://mywebsite.com/cad;
} # managed by Certbot
if ($host = cad.mywebsite.com) {
return 301 https://mywebsite.com/cad;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name www.cad.mywebsite.com cad.mywebsite.com;
return 404; # managed by Certbot
}
这是尝试访问 MyBB 的错误日志
2019/08/20 15:48:11 [error] 23516#23516: *71 FastCGI sent in stderr: "PHP message: PHP Warning: require_once(/var/www/mywebsite.com/php/inc/init.php): failed to open stream: No such file or directory in /var/www/mywebsite.com/php/global.php on line 20PHP message: PHP Fatal error: require_once(): Failed opening required '/var/www/mywebsite.com/php/inc/init.php' (include_path='.:/usr/share/php') in /var/www/mywebsite.com/php/global.php on line 20" while reading response header from upstream, client: 70.44.50.53, server: mywebsite.com, request: "GET /php/index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.3-fpm.sock:", host: "mywebsite.com"
解决方案
根据您的错误日志,mybb 正在尝试在 中查找其文件/var/www/mywebsite.com/php/
,但您root
的设置为/var/www/mywebsite.com/
. 所以看起来你没有正确设置它。如果您保持root
原样,则需要确保 mybb 的文件夹(如inc
、admin
等)是/var/www/mywebsite.com/
.
推荐阅读
- swift - Swift UIKIT 组件不显示在工作视图上
- java - Android SafeArgs 目标值始终为默认值
- java - 什么相当于 CDI Java EE 上 spring 的 @ComponentScan
- string - 为什么 fillna 不适用于字符串值?
- python-3.x - 单片从Python中列表的开头和结尾获取元素?
- python - AWS Lambda (python 3.6) – 创建带有超链接的文本
- elasticsearch - Elasticsearch 索引上的字段从一个时刻到另一个时刻丢失
- html - 在 html 电子邮件中覆盖 Outlook 暗模式
- kibana - Kibana 脚本字段错误告诉我我在字段中没有任何值,而它们确实出现在发现中
- r - 为数据框中的组运行线性模型并将输出存储在 R 中的数据框中