Мне нужно настроить простой веб-сервер с PHP на Windows XP что несколько разных людей будут использовать для локального тестирования.
Я использую LightTPD 1.4.30-4-IPv6-Win32-SSL и PHP 5.2.
Пока что я создал такую структуру папок:
tools/
LightTPD/
htdocs/
PHP/
Я настроил PHP как CGI, а корень документа как server_root + "/htdocs"
. Работает нормально (ну, медленно, но пока не хочу возиться с FastCGI :)).
Моя проблема заключается в том, что я пытаюсь разместить htdocs вне папки LightTPD, например:
htdocs/
tools/
LightTPD/
PHP/
Я обновляю корень документа до server_root + "/../../htdocs"
и пока статические HTML-страницы работают нормально, PHP-страницы перестают работать (они возвращают сообщение «Входной файл не указан»). Я буквально просто меняю корень документа, я ничего не менял ни в php.ini, ни где-либо еще. Также обратите внимание, что я оставил все doc_root
, user_dir
и cgi.force_redirect
значения по умолчанию в php.ini, и он работает, когда htdocs находится внутри LightTPD, но не когда я перемещаю его за пределы.
Любая идея, почему это ломается?
Вот мой lightTPD.conf:
server.modules = (
"mod_access",
"mod_accesslog",
"mod_alias",
"mod_cgi",
"mod_status",
)
include "variables.conf"
include "mimetype.conf"
# THIS WORKS
server.document-root = server_root + "/htdocs"
# THIS DOESN'T
#server.document-root = server_root + "/../../htdocs"
server.upload-dirs = ( temp_dir )
index-file.names = ( "index.php", "index.pl", "index.cgi", "index.cml",
"index.html", "index.htm", "default.htm" )
server.event-handler = "libev"
url.access-deny = ( "~", ".inc" )
$HTTP["url"] =~ "\.pdf$" {
server.range-requests = "disable"
}
static-file.exclude-extensions = ( ".php", ".pl", ".cgi" )
server.errorlog = server_root + "/logs/error.log"
######### Options that are good to be but not neccesary to be changed #######
dir-listing.activate = "enable"
#### CGI module
cgi.assign = ( ".php" => server_root + "/../PHP/php-cgi.exe" )
status.status-url = "/server-status"
status.config-url = "/server-config"
Я не могу объяснить почему, но похоже, что Лайти не любит родителей ..
обозначение. Я только что протестировал это, и если вы укажете полный путь (не беспокойтесь об использовании server_root
в вашем конфиге он будет работать.