我试图获得与Perl一起运行的最新的nginx。 我知道Perl本身已经安装,因为我可以从命令行完美运行test.cgi 。 但是,试图从浏览器运行时,我得到一个“502错误的网关”错误。
以下是我目前的configuration:
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; } }
有什么build议么? 我有我需要的一切工作(PHP,nginx本身,SFTP等),但我不能为我的生活让nginx和Perl打好。
这里是我遵循的教程来达到这一点:
https://www.linode.com/docs/websites/nginx/nginx-and-perlfastcgi-on-ubuntu-12-04-lts-precise-pangolin
据我所知,我已经完成了它所说的。
好吧,不太清楚我是如何修复它的 – 但现在运行
/var/run/fcgiwrap.socket是CHMOD 744我把它设置为666,然后重新启动nginx。 这似乎已经成功了。 这里是我正在使用的最终configuration,希望它能帮助其他人有类似的问题:
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; } }