Я установил стек LEMP на Linode, используя один из предлагаемых ими скриптов стека. На самом деле я не запускал его при загрузке, а вместо этого вводил команды вручную, так как казалось, что он не все устанавливает правильно.
В любом случае, после установки всего и запуска сервера и php-fpm без ошибок я создал phpinfo();
страница в расположении nginx по умолчанию (/var/www/index.php
). Проблема в том, что он не выполняет скрипт и вместо этого отображается как статический файл. Кто-нибудь знает, как я могу подойти к этому?
Позвольте мне опубликовать вам несколько важных отрывков из моего руководства "nginx-php-fpm-php-apc-postgres", надеюсь, это поможет вам.
Сначала установите необходимые пакеты:
apt-get install nginx php5-fpm php5-pgsql php5-gd php5-curl php-apc postgresql imagemagick
Я предполагаю, что у вас установлены соответствующие пакеты, такие как php5-fpm.
Теперь настройте «vhost»:
vim /etc/nginx/sites-available/www.domain.tld
Следующее покажет вам мой пример конфигурации:
server {
listen 80;
server_name domain.tld www.domain.tld;
access_log /var/log/nginx/domain.access_log;
error_log /var/log/nginx/domain.error_log;
root /var/www/www.domain.tld;
index index.php index.htm index.html;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/www.domain.tld$fastcgi_script_name;
include fastcgi_params;
try_files $uri =404;
}
}
Убедитесь, что после этого запущены нужные процессы:
/etc/init.d/php5-fpm restart
/etc/init.d/nginx start
См. Полный учебник здесь: http://www.xenuser.org/2011/08/28/running-phpbb3-on-a-high-performance-monster-or-how-nginx-php-fpm-php-apc-postgres-will-serve- Вы хорошо/
Я предполагаю, что в вашем файле конфигурации для vhost отсутствуют некоторые из частей, которые я опубликовал выше, или php5-fpm не запущен.
Эм, использовать PHP в nginx довольно просто, вам просто нужно использовать FastCGI для PHP.
Я запускаю среду выполнения FastCGI для PHP с spawn-fcgi:
spawn-fcgi -C 3 -u www-data -s /var/run/php-fcgi.sock -P /var/run/php-fcgi.pid -- /usr/bin/php5-cgi
Убедитесь, что все разрешения верны.
Затем это переходит к моей конфигурации nginx:
upstream php-fcgi {
server unix:/var/run/php-fcgi.sock;
}
Это часть http
контекст.
Внутри server
контекст, который определяет ваш vhost, так сказать:
location ~ \.php$ {
fastcgi_pass php-fcgi;
include /etc/nginx/fastcgi.conf;
}
Обратите внимание на /etc/nginx/fastcgi.conf
файл. Этот файл должен присутствовать в каждом пакете nginx, который я видел до сих пор, если нет, погуглите. Вы найдете его везде.
Использование spawn-fcgi, которое является частью lighttpd, кажется неортодоксальным, но это рекомендованное решение пользователями nginx.