我正在尝试让最新的 nginx 与 Perl 一起运行。我知道 Perl 本身已安装,因为我可以test.cgi
从命令行完美运行。但是,当我尝试从浏览器运行时,我收到“502 Bad Gateway”错误。
以下是我当前的配置:
server {
listen 80;
server_name mysite.net www.mysite.net;
access_log /srv/www/mysite.net/logs/access.log;
error_log /srv/www/mysite.net/logs/error.log;
root /srv/www/mysite.net/www;
location / {
root /srv/www/mysite.net/www;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/mysite.net/www$fastcgi_script_name;
}
location ~ \.cgi$ {
gzip off;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME /srv/www/mysite.net/cgi-bin$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
有什么建议吗?我已经让其他所有需要的东西都运行起来了(PHP、nginx 本身、SFTP 等),但我无论如何也无法让 nginx 和 Perl 很好地运行。
以下是我达到这一步所遵循的教程:
据我所知,我已经完全按照它说的做了。
答案1
好的,不太确定我做了什么来修复它 - 但它现在正在运行
/var/运行/fcgiwrap.socket是 CHMOD 744 我将其设置为 666,然后重新启动 nginx。这似乎已经成功了。这是我使用的最终配置,希望它能帮助其他遇到类似问题的人:
server {
listen 80;
server_name mysite.net www.mysite.net;
access_log /srv/www/mysite.net/logs/access.log;
error_log /srv/www/mysite.net/logs/error.log;
root /srv/www/mysite.net/www;
location / {
root /srv/www/mysite.net/www;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/mysite.net/www$fastcgi_script_name;
}
location ~ \.cgi$ {
gzip off;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME /srv/www/mysite.net/www/cgi-bin/$fastcgi_script_name;
}
}