Обслуживание файлов php из разных мест в nginx - PullRequest
14 голосов
/ 10 февраля 2010

У меня есть мой основной веб-сайт и WordPress в разных каталогах на моем сервере, на которых я использую nginx в качестве веб-сервера. Основной сайт находится в / home / me / www, а Wordpress - в / home / me / wordpress. Мне нужно, чтобы они были в отдельных каталогах таким образом по определенной причине. Как мне указать это в файле конфигурации nginx? В настоящее время у меня есть следующее, и оно не работает:

location / {
    root   /home/me/www;
    index  index.php index.html index.htm;
}

location /blog {
    root /home/me/wordpress;
    index index.php index.html index.htm;
}

location ~ \.php$ {
    set $php_root /home/me/www;
    if ($request_uri ~ /blog) {
        set $php_root /home/me/wordpress;
    }
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}

В настоящее время возвращается HTTP 404, когда я пытаюсь получить доступ к http://mydomain/blog

Ответы [ 3 ]

12 голосов
/ 10 февраля 2010

Проверьте этот вопрос и Руководство Nginx .

Попробуйте изменить blog строку на:

location ^~ /blog/ {
    root /home/me/wordpress;
    index index.php index.html index.htm;
}
2 голосов
/ 19 мая 2013

Я боролся с этим часами и, наконец, достиг следующих рабочих конфигураций:

location /php-app {
    passenger_enabled off;
    alias /path/to/php-app/$1;
    index index.php index.html;
    try_files $uri $uri/ @rewrite;
}

location @rewrite {
    rewrite ^/php-app(.*)$ /index.php?q=$1 last;
}

location ~ \.php$ {
    alias /path/to/php-app/$1;
    rewrite ^/php-app(.*)$ $1 last;
    passenger_enabled off;
    fastcgi_pass unix:/tmp/php-fpm.socket;
    fastcgi_index index.php;
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /path/to/php-app$fastcgi_script_name;
    fastcgi_intercept_errors on;
}
0 голосов
/ 20 июня 2017

Просто добавив больше подробностей в ответе @Nick Presta.

^ ~: Если присутствует модификатор в каратах и ​​тильде, и если этот блок выбран в качестве лучшего соответствия нерегулярного выражения, сопоставление регулярного выражения не будет иметь место.

Оформить заказ Эти различия введите описание ссылки здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...