PHP与gitlab捆绑的nginx无法正常工作

时间:2015-06-29 15:28:27

标签: php nginx gitlab-omnibus

我使用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“

1 个答案:

答案 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服务器。

希望它可以提供帮助。