Я рекомендовал бы читать некоторые статьи о howtoforge.
Их легко читать и понять для новичков.
http://www.howtoforge.com/perfect-server-ubuntu8.04-lts
Но необходимо начать читать о безопасности - это не самая легкая вещь иметь выполнение защищенного сервера... Необходимо понять, о каких угрозах необходимо заботиться.
Есть ли что-нибудь в ваших журналах доступа / ошибок?
Кроме того, почему вы включаете fastcgi_params и тогда в значительной степени определите их все?
Вот как выглядит мой блок местоположения в nginx с php-fpm:
location ~ \.php$ {
try_files $uri =404;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /path/to/site.com/public$fastcgi_script_name$
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;
}
Попробуйте переместить fastcgi_pass вверх, вверх.
Я полагаю, вы не можете заставить nginx отображать ваши .php файлы в вашем браузере.
Я вижу много вещей, которые вам просто не нужны, чтобы получить php для работы. Насколько я понимаю и читал, вы можете передать только один параметр fastcgi_param. Насколько мне известно, именно так работает FastCGI. Если у вас более одного параметра fastcgi_param, nginx выбирает первый в строке. Попробуйте указать только "fastcgi_pass 127.0.0.1:9001;" в качестве параметра fastcgi и посмотрите, что произойдет.
Вы можете узнать больше о fastcgi на этой странице http://michaelshadle.com/2011/02/11/setting-php-ini-parameters-from-nginx
Проблема в том, что вы помещаете php-fpm в chroot-тюрьму, но nginx передает полный путь SCRIPT_FILENAME скрипту PHP.
В вашей конфигурации nginx у вас есть ( среди прочего):
root /var/www/domain.com/wwwroot;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Для запроса /index.php
его переводят в /var/www/domain.com/wwwroot/index.php
. Но вы поместили php-fpm в chroot jail:
chroot = /var/www/domain.com/wwwroot/
Итак, php-fpm видит файл по адресу /index.php
, а не /var/www/domain.com/wwwroot/index .php
.
Следовательно, вы должны настроить путь для SCRIPT_FILENAME
так, чтобы он соответствовал тому, что php-fpm будет видеть в chroot. Для этого удалите $ document_root
.
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;