Проще говоря, "conf" больше похож на язык программирования, выполняющий действия последовательно по одной строке за раз. Я забыл попробовать вызвать /index.php
напрямую вместо того, чтобы полагаться на index []
.
Этот печальный, php.conf
проверял, заканчивается ли запрошенный путь на .php
до того, как функция index []
была переписана запрос от /
к /index.php
.
Итак, замена:
include "/etc/lighttpd2/mimetypes.conf";
include "/etc/lighttpd2/vhost.conf";
include "/etc/lighttpd2/php.conf";
#docroot "/srv/http";
index [ "index.php", "index.html", "index.htm", "default.htm", "index.lighttpd.html" ];
на
docroot "/srv/http";
index [ "index.php", "index.html", "index.htm", "default.htm", "index.lighttpd.html" ];
include "/etc/lighttpd2/mimetypes.conf";
include "/etc/lighttpd2/vhost.conf";
include "/etc/lighttpd2/php.conf";
Все изменилось.
Порядок конфигурирования / исполнения важен!
Привет!
Конфигурация lighttpd2 - это, по сути, язык программирования, то есть список действий, которые выполняются по порядку. Лишь небольшой набор этих действий на самом деле является параметрами, которые задаются в контексте запроса.
Если во время выполнения содержимого
php.conf
физический путь не заканчивается на «.php», он не будет запускать php; но поиск index.php находится только в конце основной конфигурации! (и вы на самом деле не запрашивали "/index.php", запрос был только для "/") Итак:
- vhost.conf, вероятно, должен устанавливать корневой каталог документов во всех случаях ; пусть он также обрабатывает корневой документ "по умолчанию".
- либо вызовите index в нужных vhosts , либо вызовите его после vhost.conf для запуска для всех из них; но поставьте его перед "php.conf "
- вы можете использовать log.write для отладки содержимого Phys.path в php.conf перед if: log.write "% {Phys.path} ";
Кстати: в инструкции показан правильный порядок :)
Я обычно помещаю (почти) все в конфигурации vhost (см. http://doc.lighttpd.net/lighttpd2/mod_vhost.html для обработки стандартных vhosts и общей концепции); я особенно активирую php только в блоках , которые мне действительно нужны; вы можете определить псевдонимы для общих действий конфигурации ( как показано в php howto).
- stbuehler
cd $3 && $1 $2
не является программой, которую можно вызвать. Вам нужно
Running_In_New_Xterm=exec xterm -hold -e bash -c "cd $3 && $1 $2"
или (с цитированием, если этого требуют аргументы; -a blah -o blahblah
возможно, не следует цитировать)
Running_In_New_Xterm=exec xterm -hold -e bash -c "exec cd '$3' && exec '$1' '$2'"