настройка VirtualHost & PHP в Apache 1.3.19

Latrekc

Новичок
настройка VirtualHost & PHP в Apache 1.3.19

Пытался сегодня настроить VirtualHost и столкнулся с непонятной ошибкой.

В httpd.conf пишу следующее:
[ЦВЕТОМ=green]
--skip--
<VirtualHost 127.0.0.3>
ServerName test
DocumentRoot "C:/Мои документы/Сайты/test"
</VirtualHost>
--skip--
[/ЦВЕТОМ]

При обращении к http://test/ *.html файлы отдаются нормально, а при обращении к *.php получаю строку в браузере: "No input file specified."

Правда если я прошу файл some_name.php и при этом у меня есть файл с таким же именем лежащий в корне основного сайта, то этот файл нормально выполняется.

Также непонятно почему если у меня нет файла some_name.php я получаю строку в браузере: "No input file specified." . В логах апача при этом пишется:
[ЦВЕТОМ=green]127.0.0.3 -skip- "GET /1.phtml HTTP/1.1" 200 37[/ЦВЕТОМ]
Хотя, как мне кажется сервер должен посылать 404 ошибку

Стоит все на Apache 1.3.19 + PHP 4.3.0
 

ma2dy

Повернуть землю легко
А потому что если ты запрашиваешь несуществующий файл
php Апачи отдает его ПХП а ПХП кричит что нет файла для обработки.
Есди ты запрашимваешь простой ХТМЛ то Апач не может его открыть и выдает тебе 404 ошибку.
 

slach

Новичок
ma2dy чушь не говори

Апач СНАЧАЛА проверяет наличие файла, а потом уже думает, что уже с этим файлом делать...

сдается мне у человека как то PHP криво прикручен... вот только ЧТО именно неправильно ... въехать не могу
 

ma2dy

Повернуть землю легко
нет просто у меня самого такая фигня была
Но потом все заново переставил и заработало
 

Latrekc

Новичок
Дело действительно скорее всего в пхп, так как апач дает список файлов которые есть в папке, хтмл-файлы и рисунки отдаются (если они есть конечно)
Пхп-файлы также исполняются, но странным образом
Т.е. если я в браузере обращаюсь к http://test/script.php ,
исполняется (если есть) http://localhost/script.php
Файлы из папки http://test/ физически лежат в http://localhost/temp

Все скрипты лежащие в http://localhost/* не зависимо от расположения исполняются без ошибок
 

ma2dy

Повернуть землю легко
У тебя как прикручен ПХП cgi или модуль
 

slach

Новичок
DocumentRoot "C:/Мои документы/Сайты/test"

замени на нормальную Директорию без русских букв
 

Latrekc

Новичок
Менять названия папок на мой взгляд бемысленно, так как подобную структуру папок я использую уже 1.5 года, так что скорее всего дело не в этом. Кроме того я ранее уже создавал ВиртуалХосты с этими же именами папок, так что дело точно не в этом.

Пхп подключается следующим образом:
[ЦВЕТОМ=green]
ScriptAlias /php/ "c:/Util/Programming/PHP4/php-4.3.0/"
AddType application/x-httpd-php .php .php3 .phtml .file
AddType application/x-httpd-php .phtml
Action application/x-httpd-php "/php/php.exe"
[/ЦВЕТОМ]


А что собственно надо писать в блоке
[ЦВЕТОМ=green]
--skip--
<VirtualHost 127.0.0.3>

</VirtualHost>
--skip--
[/ЦВЕТОМ]

?
 

ma2dy

Повернуть землю легко
У меня так но на UNIXE

[ЦВЕТОМ=blue]
<VirtualHost 192.168.11.1>
ServerAdmin [email protected]
DocumentRoot /WEB/www.gals.dmz/www
ServerName www.gals.dmz
ErrorLog /WEB/www.gals.dmz/error_log
CustomLog /WEB/www.gals.dmz/access_log common
</VirtualHost>
[/ЦВЕТОМ]
 

Latrekc

Новичок
Проверил. Скинул временно сайт в c:\temp
Глюки все еще имели место. Так что скорее всего имя директории здесь не причем
 

Latrekc

Новичок
Автор оригинала: ma2dy
У меня так но на UNIXE
--skip--
Т.е. пхп дополнительно никак не прикручивается как я понимаю?

Интересно может ли моя проблема заключаться в том, что я использую слишком старые/новые версии пхп и апача?
 

Latrekc

Новичок
Кажется нашел решение проблемы
Закомментарил строку [ЦВЕТОМ=green];doc_root ="C:\Мои документы\Сайты/" [/ЦВЕТОМ] в php.ini

Все работает, но теперь возникает вопрос: для чего служит этот параметр? Я всегда принимал его за обязательный

ЗЫ: сначала я грешил на [ЦВЕТОМ=green]open_basedir ="C:\Мои документы\Сайты/" [/ЦВЕТОМ] , как оказалось зря, дело было не в нем
 

ma2dy

Повернуть землю легко
Автор оригинала: Latrekc
Кажется нашел решение проблемы
Закомментарил строку [ЦВЕТОМ=green];doc_root ="C:\Мои документы\Сайты/" [/ЦВЕТОМ] в php.ini

Все работает, но теперь возникает вопрос: для чего служит этот параметр? Я всегда принимал его за обязательный

ЗЫ: сначала я грешил на [ЦВЕТОМ=green]open_basedir ="C:\Мои документы\Сайты/" [/ЦВЕТОМ] , как оказалось зря, дело было не в нем
Это в целях безопасности
Php открывает файлы только из этого каталога и его подкаталогов
 

Latrekc

Новичок
Автор оригинала: ma2dy
Это в целях безопасности
Php открывает файлы только из этого каталога и его подкаталогов
Ты говоришь об open_basedir или doc_root?
В мануале я нашел следующее:
[ЦВЕТОМ=green]doc_root
"Корневая директория" PHP на сервере. Используется, если не пустая. Если PHP сконфигурирован с safe mode, никакие файлы вне этой директории не обслуживаются.
[/ЦВЕТОМ]


[ЦВЕТОМ=green]open_basedir
Ограничивает файлы, которые могут быть открыты в PHP специфицированным деревом директорий.

Когда скрипт пытается открыть файл с помощью, например, fopen или gzopen, проверяется расположение файла. Если файл находится вне специфицированного дерева директорий, PHP его не откроет. Все символические ссылки разрешаются, поэтому это ограничение невозможно обойти с помощью symlink.

Специальное значение . указывает, что директория, в которой хранится скрипт, будет использоваться как базовая директория/base-directory.

В Windows разделяйте директории точкой с запятой. На всех других системах - двоеточием. При использовании в качестве Apache-модуля, автоматически наследуются пути open_basedir из родительских директорий.

Ограничение, специфицируемое с помощью open_basedir, это в действительности префикс, а не имя директории. Это означает, что "open_basedir = /dir/incl" даёт также доступ к "/dir/include" и "/dir/incls", если таковые существуют. Если вы хотите ограничить доступ только для одной конкретной директории, завершайте его слэшем. Например: "open_basedir = /dir/incl/"[/ЦВЕТОМ]

В чем тут принципиальная разница и что следует использовать? Я знаю что например phpRemoteView следует ограничивать с помощью open_basedir , т.к. при заданном только doc_root можно свободно лазить по всей файловой системе сервера
 
Сверху