ZF3 Nginx 提供 index.php 作为下载文件
ZF3 Nginx Serve index.php As Download File
我安装了带 nginx 的 debian 8 和 php 7 以使用 zendframework 创建端点。当我关注该网站时,我必须将这些添加到我在 nginx 中的虚拟主机配置中。就像我看到下面的代码一样:
server {
listen 80;
listen [::]:80;
root /var/www/endpoint/html/public;
server_name my_ip;
location / {
index index.php
try_files $uri $uri/ @php;
}
location @php {
# Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/endpoint/html/public/index.php;
include fastcgi_params;
}}
但是当我访问该网站时,它下载 index.php 而不是执行 index.php。
希望有人能帮我解决这个问题。
我认为您需要将 fastcgi_pass
值替换为 socket path
而不是服务器地址和端口。
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
然后通过键入此命令重新启动您的 php7-fpm
sudo systemctl restart php7-fpm
感谢@Dolly-aswin,
Thx 它可以将 127.0.0.1 替换为 php-fpm sock
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/endpoint/html/public/index.php;
include fastcgi_params;
}
我的 ZendFramework 3 现在正在使用 Nginx (PHP 7) 在 Debian 8 上工作。
我安装了带 nginx 的 debian 8 和 php 7 以使用 zendframework 创建端点。当我关注该网站时,我必须将这些添加到我在 nginx 中的虚拟主机配置中。就像我看到下面的代码一样:
server {
listen 80;
listen [::]:80;
root /var/www/endpoint/html/public;
server_name my_ip;
location / {
index index.php
try_files $uri $uri/ @php;
}
location @php {
# Pass the PHP requests to FastCGI server (php-fpm) on 127.0.0.1:9000
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/endpoint/html/public/index.php;
include fastcgi_params;
}}
但是当我访问该网站时,它下载 index.php 而不是执行 index.php。
希望有人能帮我解决这个问题。
我认为您需要将 fastcgi_pass
值替换为 socket path
而不是服务器地址和端口。
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
然后通过键入此命令重新启动您的 php7-fpm
sudo systemctl restart php7-fpm
感谢@Dolly-aswin,
Thx 它可以将 127.0.0.1 替换为 php-fpm sock
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/endpoint/html/public/index.php;
include fastcgi_params;
}
我的 ZendFramework 3 现在正在使用 Nginx (PHP 7) 在 Debian 8 上工作。