环境如题。 php -v能显示版本信息,7.3.8 放入测试php页面到网站根目录,无法打开,直接显示下载php文件。nginx开始界面没问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到这种情况,通常是因为Nginx没有正确配置来处理PHP文件。当用户访问PHP文件时,Nginx应该将请求传递给PHP处理器(如PHP-FPM)来执行,而不是直接将文件内容发送给用户。以下是解决这个问题的几个步骤:
确认PHP处理器已安装并运行: 确保你已经安装了PHP-FPM(FastCGI Process Manager)并且它正在运行。你可以通过以下命令检查其状态(以Ubuntu系统为例):
sudo service php7.3-fpm status
如果它没有运行,使用以下命令启动服务:
sudo service php7.3-fpm start
修改Nginx配置: 需要编辑你的Nginx服务器块配置文件,通常是位于/etc/nginx/sites-available/
目录下的某个文件(例如default)。用文本编辑器打开它(需要sudo权限):
sudo nano /etc/nginx/sites-available/default
在server块中,添加或修改以下配置来告诉Nginx如何处理.php文件。确保listen
、server_name
和root
指令与你的实际情况相匹配。
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; # 对于使用socket的情况
# 或者如果使用TCP端口
# fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
这段配置告诉Nginx对于所有以.php
结尾的请求,使用PHP-FPM处理器来处理。
测试Nginx配置: 修改完配置后,先测试配置是否正确无误:
sudo nginx -t
如果输出显示“test is successful”,则表示配置没有语法错误。
重载Nginx配置: 如果配置测试成功,重新加载Nginx使更改生效:
sudo systemctl reload nginx
检查文件权限: 确保你的PHP测试文件有正确的读取权限。一般来说,给予文件644权限,目录755权限是一个好的实践。例如:
sudo chmod 644 /path/to/your/test.php
完成以上步骤后,尝试再次访问你的PHP测试页面,它应该能够正常解析并显示内容,而不是下载文件。如果问题依旧,请检查Nginx和PHP-FPM的日志文件(通常位于/var/log/nginx/
和/var/log/php7.3-fpm.log
),这些日志可能会提供更具体的错误信息。