Filezilla远程服务器上的PHP文件访问时触发下载而非显示,如何解决?
问题核心
访问PHP文件触发下载而非正常输出,本质是Web服务器未将.php后缀文件交给PHP解析器处理,直接作为静态资源返回给浏览器。
排查&解决步骤
- 先确认上传的文件后缀是否正确:Windows系统默认会隐藏已知文件后缀,如果你本地编辑时命名是
test.php,FileZilla上传后可能会因为系统隐藏后缀,实际存成test.php.txt,Web服务器自然不会解析。可以在FileZilla的远程文件列表里直接查看文件的完整后缀,修正后再测试。 - 确认服务器已安装PHP运行环境:如果是自行搭建的独立服务器,在服务器终端执行
php -v,无版本输出则说明PHP未安装,需先安装对应PHP版本。如果使用宝塔、cPanel这类可视化控制面板,进入站点设置页,确认当前站点的PHP解析模式未被设置为「纯静态」,选择已安装的PHP版本绑定即可。 - 检查Web服务器的PHP解析规则:
- Nginx环境:确认站点配置文件中存在
.php文件的转发规则,示例规则如下(需根据你实际的PHP-FPM路径调整):
面板用户可直接在站点设置的「PHP版本」开关中启用解析,面板会自动生成对应规则。location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } - Apache环境:确认已加载PHP模块,可执行
apache2ctl -M(或httpd -M)查看是否存在对应PHP模块输出;同时确保站点配置或根目录下的.htaccess文件中添加了PHP解析规则:AddHandler application/x-httpd-php .php AddType application/x-httpd-php .php
- Nginx环境:确认站点配置文件中存在
- 检查文件权限:PHP文件需保证Web运行用户(如www-data、apache)有读取权限,常规权限设置为
644即可,避免因权限不足导致解析异常。 - 所有配置调整完成后,重启Web服务(Nginx执行
nginx -s reload,Apache执行对应重启命令),重新访问文件即可正常输出what a lab。
内容的提问来源于stack exchange,提问作者ahmed
相关产品推荐
相关产品推荐

