1 1 1 1 1 Rating 5.00 (1 Vote)

При настройке виртуальных хостов (virtual hosts) на на веб-сервере Lighttpd при запуске php-скриптов в браузере я столкнулся с ошибкой No input file specified. При этом если виртуальные хосты не запускать, то по стандартному пути сайта /www php работает отлично.

Поддержка виртуальных хостов для Lighttpd в openwrt устанавливается командой

opkg update
opkg install lighttpd-mod-simple_vhost

Оговорюсь сразу, что речь идет о версии Lighttpd 1.4.35, которая установлена в транковской версии openwrt. Для версии ATTITUDE ADJUSTMENT конфигурационный файл виртуальных хостов может отличатся, хотя смысл тот же самый

Я прописал себе следующий виртуальный хост по умолчанию

nano /etc/lighttpd/conf.d/10-simple_vhost.conf
simple-vhost.server-root = "/www/servers/"
simple-vhost.default-host = "silex"
simple-vhost.document-root = "/web"

Как директории это выглядит так

/www/servers/               - здесь хранятся все виртуальные хосты
/www/servers/silex        - это мой сайт по умолчанию, тут находятся все файлы сайта
/www/servers/silex/web - здесь находятся сам интерфейс сайта

Теперь я могу добавлять новые сайты просто создав подкаталоги в /www/servers/

Например так я добавил сайт mszerg.pp.ua

mkdir /www/servers/mszerg.pp.ua
mkdir /www/servers/mszerg.pp.ua/web

Создаем тестовую страницу с информацией о настройках php

cd /www/servers/mszerg.pp.ua/web
echo  "<?php phpinfo (); ?>" > index.php

Теперь, когда я зайду по адресу mszerg.pp.ua, то должен увидеть примерно такую страницу:

phpinfo

Но вместо этого я увидел всего одну строку: No input file specified.

Проблема решилась комментированием строки в php.ini

nano /etc/php.ini

Я поставил точку с запятой перед строкой

;doc_root = "/www"

Также по-идее туда можно вписать мой новый путь к virtual hosts: /www/servers/

Еще google выдал, что от греха подальше нужно, что бы были закоментированы или правильно настроены следующие строки в php.ini

;user_dir =
;open_basedir = "/www"

 Также убедитесь, что выставлен в php.ini правильно выставлен

cgi.fix_pathinfo=1

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

Log in to comment