Как проверить php-файл из командной строки, используя spawn-fcgi

У меня есть скрипт php. Я использую nginx и spawn-fcgi.

spawn-fcgi -n -s /tmp/nginx9010.socket -u www-data -g www-data -f /usr/bin/php5-cgi -C 6

Как я могу проверить из командной строки, что spawn-fcgi работает со скриптом?

например, у меня есть скрипт в /home/ubuntu/test.php

У меня проблемы с nginx и выполнение сценария php. Это побуждает к загрузке.

я имею #!/usr/bin/php в файле и сделал chmod a+x также.

Спасибо

3 ответа

  • Для тестирования бэкэнда FastCGI вы можете попробовать создать среду CGI и использовать cgi-fcgi для подключения к бэкэнду.
  • Вы можете присоединиться с помощью strace, чтобы посмотреть, что делает бэкэнд (например, получает ли он даже запрос от веб-сервера); присоедините с -ff к главному процессу, чтобы увидеть системные вызовы для всех рабочих
  • php5-cgi в режиме FastCGI не нуждается ни в строке shebang, ни в символах +x - он не использует ядро ​​для их выполнения, он просто загружает их как простые файлы
  • Firefox (и, возможно, другие браузеры тоже) часто кешируют MIME-тип, поэтому вы увидите приглашение к загрузке даже после устранения проблемы. Используйте curl для тестирования!

nginx не будет обслуживать файл, который он передает в php, nginx обслуживает только статические файлы, поэтому, если он загружает php-файл, вам может понадобиться проверить, что вы отправляете php-файлы в правильное место, используете ли вы IP и PORT в блоке местоположения php в файле конфигурации?

Только предположение о макушке моей головы, пока я ехал домой.

FWIW, проблемы, подобные тому, что nginx предлагает для загрузки файла, вызваны тем, что Nginx сам обслуживает файлы, не отправляя их в бэкэнд fastcgi, часто из-за try_files или неправильно location {} сопоставление блоков с URI.

Другие вопросы по тегам