вероятно, никакой индексный файл в списке каталогов и каталогов не отключен? - cann Вы получают доступ к файлам непосредственно?
иначе проверьте полномочия чтения на пользователя веб-сервера.
выглядит странным мне иметь каталог statment внутри virtualhost контейнер, обычно не случай, хотя, если можно запустить веб-сервер, это, кажется, работает.
необходимо иметь в распоряжении namevirtualhost директиву для конфигурации для работы правильно.
<VirtualHost test:80>
... попытайтесь использовать *:80 или ip:80 вместо этого. разрешение может вызвать проблемы здесь и сделать virtualhost неэффективное.
Во-первых, взгляните на вложенные расположения. Причина, по которой ваш второй
Блок местоположения не учитывается, потому что, когда nginx соответствует местоположению, он останавливается. Итак, http: //ubuntu-vm.test-api/someurlpath
, если в соответствующей папке есть index.php, соответствует только местоположению ~ \ .php $
!
Я наткнулся на это интересное сообщение в блоге
Подводя итог, вам необходимо:
max_execution_time
в вашем php.ini. request_terminate_timeout
php-fpm. fastcgi_read_timeout
в нужном месте в файле конфигурации nginx. Проблема в том, что вы не можете указать php-fpm использовать другой файл конфигурации. только для этого одного места.
Однако вы можете установить переменную конфигурации php.ini в конфигурации nginx следующим образом:
fastcgi_param PHP_VALUE "max_execution_time=1000";
You can set the timeouts in any location
, server
or http
block, as shown in the nginx documentation. They will be inherited from the containing block, which is why the snippet you posted did not work.
пробовали ли вы установить fastcgi_pass
внутри этого места?
location {
fastcgi_pass 127.0.0.1:9000;
fastcgi_read_timeout 100000s;
}
Я столкнулся с той же проблемой, и хотя я думаю, что вы могли бы использовать конфигурацию Nginx для установки fastcgi_read_timeout для каждого местоположения, как вы пытаетесь это сделать, это в конечном итоге оказывается сложным для правильно настройте местоположения таким образом. И тогда он может по-прежнему истекать, если вы также не установите max_execution_time PHP.
Я обнаружил, что лучшим решением будет настроить его так, чтобы таймауты Nginx на самом деле не использовались, и позволить PHP обрабатывать таймауты вместо этого (как это работает с другими серверами, такими как mod-Apache и командная строка).
Итак, в разделе "location ~ .php $" вашей конфигурации Nginx установите для request_terminate_timeout очень высокое значение (или, еще лучше, установите его на 0, чтобы отключить тайм-аут). А также установите fastcgi_read_timeout на максимальное количество секунд, в течение которого вы можете захотеть запустить любой скрипт.
А затем точно настройте его, установив значение по умолчанию, установив max_execution_time в вашем php.ini. Теперь, когда у вас есть сценарий, который вы хотите разрешить запускать в течение длительного времени, используйте команду PHP set_time_limit () в этих сценариях.