LINUX.ORG.RU
ФорумAdmin

Впилить страничку в существующий server

 


0

3

Хочу на своём сайте запилить пустую страничку, которую нигде на сайте не будет видно, а лежать там будут заготовки работ по всяким утилитам для заказчиков. То есть, я даю им прямую ссылку — они смотрят, грят «нам нравится, как хорошо», я получаю денежку, они — свою программу, все счастливы. Проблема в том, что сейчас nginx вместо того, чтоб исполнять index.php вываливает на страницу его содержимое.

Конфиг практически дефолтный, то, что касается конкретного сервера, тут → http://pastie.org/5648644

Как это планируется:

  • заказчик проходит по myfunnydomain.com/THE_NEW_PAGE_I_WANT/
  • nnginx подхватывает каталог с index.php через алиас как /home/www/THE_NEW_PAGE_I_WANT/htdocs
  • отправляет на @fcgi файл /home/www/THE_NEW_PAGE_I_WANT/htdocs/index.php
Deleted

Ни фига не понятно, что ты хочешь сделать.

try_files $uri @fcgi;

Проверяет существование файла и если он существует то отдает его как есть, если не существует то передает запрос @fcgi.

Проблема в том, что сейчас nginx вместо того, чтоб исполнять index.php

Он и не должен исполнять php файлы.

отправляет на @fcgi файл /home/www/THE_NEW_PAGE_I_WANT/htdocs/index.php

Он не файл отправляет, а http запрос.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Да, я тупло, и у меня кипит мой маленький мозг.

Проверяет существование файла и если он существует то отдает его как есть, если не существует то передает запрос @fcgi.

Да-да, от запрос на index.php там как раз отбраковывается, что он попадает на @fcgi, я пробовал добавлять
[code]location ~ ^/(THE_NEW_PAGE_I_WANT/index\.php)$ {
return 404;
}[/code]
или менять существующий паттерн на
[code]^/.*(index\.php)$[/code]
Но второй index.php как отдавался, так и отдаётся плейнтекстом.

Он не файл отправляет, а http запрос.

Ок. Ждём патчи на директиву try_request.

Deleted
()
Ответ на: комментарий от TDrive

Да, я тупло, и у меня кипит мой маленький мозг.

Проверяет существование файла и если он существует то отдает его как есть, если не существует то передает запрос @fcgi.

Да-да, от запрос на index.php там как раз отбраковывается, что он попадает на @fcgi, я пробовал добавлять

location ~ ^/(THE_NEW_PAGE_I_WANT/index\.php)$ {
return 404;
}
или менять существующий паттерн на
^/.*(index\.php)$
Но второй index.php как отдавался, так и отдаётся плейнтекстом.

Он не файл отправляет, а http запрос.

Ок. Ждём патчи на директиву try_request.

Deleted
()
Ответ на: комментарий от Deleted

Теперь начинает доходить. Когда же вы научитесь нормальные формулировки проблем писать...

а лежать там будут заготовки работ по всяким утилитам для заказчиков.

Какие заготовки, в каком виде, по каким утилитам? Поначалу счёл всё за изобретение велосипеда.

Liferer
()
Ответ на: комментарий от Liferer

Когда же вы научитесь нормальные формулировки проблем писать...

Напиши, что именно ты не так понял. Так у меня хоть будет возможность принять это к сведению.

Какие заготовки, в каком виде, по каким утилитам?

Граббилки инфы с других сайтов. Делаю на пхп и/или sed — кому что удобней. Ну, вот пример подробней:

Заказчик заходит на myfunnydomain.com/my_projects/project1

Здесь «my_project» — это каталог, который подцепляется к секции server в nginx.conf через aлиас. Вместо my_projects в конфиге выше большими буквами напечатано THE_NEW_PAGE_I_WANT.

project1 суть каталог внутри физического каталога my_projects/htdocs, nginx должен сам найти там index.php (дефолтная настройка прописана), а index.php суть программка, которая граббит какой-нибудь другой сайт и предоставляет клиенту информацию в удобном ему виде.

Deleted
()
Ответ на: комментарий от dimon555

«для роста картошки нужно солнце, а Земля поддерживает весеннее солнце»

Deleted
()
Ответ на: комментарий от dimon555

я про вэб плохо помню, но понимаю, что для index.php нужен обычный cgi, а nginx поддерживает fast cgi

cgi это когда вебсервер запускает программу (хоть на ассемблере), перехватывает её вывод и отправляет браузеру.
mod_php это когда сервер обрабатывая php файл, текст оставляет как есть а <?php ... ?> обрабатывает как программу.
fastCGI это протокол общения между вебсервером и fastCGI программой(сайтом).


Чего хочет ТС я так и не понял и сомневаюсь, что он сам понимает.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Я хочу, чтобы у меня на сайте можно было зайти на / и на /my_projects/ и получить два разных сайта. Вместо второго сейчас отдаётся текст.

Deleted
()
Ответ на: комментарий от Deleted

Уже всё позабыл, но такой фигни быть не должно по умолчанию. Проверь права на контент, который отдается как текст.

Liferer
()
fastcgi_intercept_errors    off;	
fastcgi_param PHP_VALUE "display_errors=Off";
fastcgi_param PHP_VALUE "display_startup_errors=Off";
fastcgi_param PHP_VALUE "max_execution_time=120";
fastcgi_param PHP_VALUE "max_input_time=300"; 

А это нельзя внести в fastcgi_params? Не по теме правда.

Если написать

location ~ \.php$ {
вместо
location ~ ^/(index\.php)$ {
тоже текст выдаёт?

Liferer
()
Ответ на: комментарий от Liferer

Уже всё позабыл, но такой фигни быть не должно по умолчанию.

Нет, как сказали выше, это как раз нормально.

Проверь права на контент, который отдается как текст.

Читает он его, а что ещё надо-то?

А это нельзя внести в fastcgi_params?

Можно, но это будет лишняя головная боль при обновлении системы. Проще держать в конфиге, хотя он разрастается, так что есть планы его разнести, да. А, ещё кроме того, мне это всё не нужно глобально, т. к. есть секции с серверами где нужна включённая отладка, например.


[code]
location ~ \.php$ {
[/code]
Не, всё равно отадёт тело файла.

Deleted
()
Ответ на: комментарий от Deleted

Nginx читает, а php доступ имеет? У меня когда-то не работал бложек из-за подобной ерунды. Обычно php и nginx запускаются от разных пользователей.

Liferer
()

Мде, ребята... в локейшн просто пропиши фцгай на другой индекс.

tazhate ★★★★★
()
Ответ на: комментарий от Liferer

Nginx читает, а php доступ имеет?

Да.

Обычно php и nginx запускаются от разных пользователей.

А у меня — от одного.
tazhate
Я не понял, что ты хочешь сказать. В локейшене, где я объявляю алиас? Прописать что? Какой другой индекс?

Deleted
()
Ответ на: комментарий от Deleted

Идентично значит. Сливаюсь.

Мде, ребята... в локейшн просто пропиши фцгай на другой индекс.

У тебя явно указано обрабатывать только один локейшн, который «/». Видимо, нужно добавить соответствующие строки к /THE_NEW_SITE_I_WANT/

Liferer
()
Ответ на: комментарий от Liferer

Так оно уходит не по алиасу, а по корневому локейшну, и обрабатывается как URL основного сайта.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.