我使用CentOS 7上的omnibus软件包设置了gitlab。我想使用gitlab服务器来托管其他网站。我已经通过将以下代码添加到/etc/gitlab/gitlab.rb启用了自定义nginx conf
nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/*.conf;"
我还在/etc/nginc/conf.d中创建了conf文件。静态HTML文件正在运行,但是当我尝试运行php脚本时,我找不到文件 - 404错误。
以下是php的nginx conf:
server{
listen 80;
server_name example.com;
root /var/www/vhosts/example;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /opt/gitlab/embedded/html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /opt/gitlab/embedded/conf/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
以下是错误日志:
FastCGI在stderr中发送:“主脚本未知”,同时从上游,客户端xxxx,server:example.com读取响应,请求:“GET / HTTP / 1.1”,upsteam:“fastcgi://127.0.0.1:9000 “,主持人:”example.com“
答案 0 :(得分:2)
也许你的问题来自你的“location~.php $”配置。
你已经通过包含正确的fatscgi_params而不是默认值来解决gitlab omnibus的第一个问题。现在它似乎来自位置配置。
请尝试以下代码进行配置:
location ~ \.php$ {
#in your case maybe : /opt/gitlab/embedded/html
root [YOUR APP DIRECTORY];
try_files $uri $uri/ /index.php?$args;
index index.html index.htm index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_intercept_errors on;
include /opt/gitlab/embedded/conf/fastcgi_params;
}
此修复程序适用于Debian 8服务器。
希望它可以提供帮助。