1

我尝试让我的生产服务器以与 phpmyadmin 相同的风格为我的应用程序提供服务。就像 example.com/phpmyadmin 一样,我尝试做的是 example.com/myappname。

我的 nginx/sites-available/default 如下所示:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www;
        index index.html index.htm index.php;

        server_name _;

        location ~ \.php$ {
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }

        location /myapp {
                root /var/www/myapp/public/;
                index index.php;
        }

        location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass unix:/var/run/php5-fpm.sock;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                       include /etc/nginx/fastcgi_params;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }


        location ~ /\.ht {
                deny all;
        }
}

因此,如果有人对此有一个工作会议,我也想拥有它!

4

1 回答 1

0

请注意,您的/phpmyadmin位置具有额外的配置,可以通过配置将请求传递给 PHP-FPM fast_cgi

您也需要为您的/myapp位置执行此操作。

您可能希望将您的myapp位置更改为以下内容:

location ^/myapp/(.+\.php)$ {
    root /var/www/myapp/public/;
    index index.php;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include /etc/nginx/fastcgi_params;
}

为了比较,这是我的Laravel nginx 配置- 但是我的应用程序没有在“子目录”下运行。

尝试更改一些配置项,看看你可以开始工作。请注意,我fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;从 Laravel 应用程序位置中删除了 - 我认为没有必要。

最后,这对 ServerFault 是否更有意义?你可能会在那里得到更好的答案。

于 2013-07-02T15:16:42.660 回答