インストールとセットアップ:Nginx + php5-fpm

この記事では、Debian LennyにNginx + php5-fpm(php5.3)バンドルをインストールし、安全な構成を構成する方法を示します。

インストールとセットアップ

重要:すべてのコマンドはルートからのものです。



リポジトリを追加してキーを生成します。
  echo "deb http://backports.debian.org/debian-backports lenny-backports main" >> /etc/apt/sources.list
 echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list
 gpg --keyserver keys.gnupg.net --recv-key 89DF5277 && gpg -a --export 89DF5277 |  apt-key add- 
更新:
 適性の更新 
nginxとphp5-fpmをインストールします。
  aptitude install -t lenny-backports "nginx"
 apt-get install php5-cli php5-common php5-suhosin 
 apt-get php5-fpm php5-cgiをインストール 
構成/etc/nginx/nginx.confを次の形式にします。
 ユーザーwww-data;
 worker_processes 1;  #コアの数で数を入れます

 timer_resolution 100ms;
 worker_rlimit_nofile 8192;
 worker_priority -5;  #優先度を上げる

 error_log /var/log/nginx/error.log;
 pid /var/run/nginx.pid;
イベント{
     worker_connections 1024;
 }
 http {
     /etc/nginx/mime.typesを含めます。
     access_log /var/log/nginx/access.log;

     sendfile on;
     keepalive_timeout 65;
     tcp_nodelay on;

     gzip on;
     gzip_min_length 1100;
     #gzip_disable "msie6";  #より高速ですが、nginxの新しいバージョンでのみ動作します
     gzip_disable "MSIE [1-6] \。(?!。* SV1)";
     gzip_proxied any;
     gzip_comp_level 4;
     gzip_typesテキスト/プレーンテキスト/ cssアプリケーション/ x-javascriptテキスト/ xmlアプリケーション/ xmlアプリケーション/ xml + rssテキスト/ javascript;
     gzip_vary on;

     include /etc/nginx/conf.d/*.conf;
     include / etc / nginx / sites-enabled / *;
 }


/etc/nginx/sites-available/default



削除し/etc/nginx/sites-available/default





構成例

chroot /etc/nginx/sites-enabled/example.ru



使用を考慮に入れた、WordPress CMSで使用するための/etc/nginx/sites-enabled/example.ru



サーバー{
	 80を聞きます。
	 server_name www.example.ru;
	リライト^ http://example.ru$request_uri? 永久;  #301リダイレクト
 }
サーバー{
     80を聞きます。
	 server_name example.ru; 
	 root /var/www/example.ru;
	 index index.php;

	場所/ {
		 try_files $ uri $ uri / /index.php?q=$uri&$args;
	 }
	 location〜* ^。+。(js | css | png | jpg | jpeg | gif | ico)$ {
		 access_log off;
		最大有効期限。
	 }
	場所〜\ .php $ {
		 #fastcgi_split_path_info ^(。+ \。php)(。*)$;
		 fastcgi_pass 127.0.0.1:9000;
		 fastcgi_index index.php;

		 fastcgi_param DOCUMENT_ROOT /example.ru;
		 fastcgi_param SCRIPT_FILENAME /example.ru$fastcgi_script_name;
		 fastcgi_param PATH_TRANSLATED /example.ru$fastcgi_script_name;

		 fastcgi_paramsを含めます。
		 fastcgi_param QUERY_STRING $ query_string;
		 fastcgi_param REQUEST_METHOD $ request_method;
		 fastcgi_param CONTENT_TYPE $ content_type;
		 fastcgi_param CONTENT_LENGTH $ content_length;
		 fastcgi_intercept_errors on;
		 fastcgi_ignore_client_abort off;
		 fastcgi_connect_timeout 60;
		 fastcgi_send_timeout 180;
		 fastcgi_read_timeout 180;
		 fastcgi_buffer_size 128k;
		 fastcgi_buffers 4 256k;
		 fastcgi_busy_buffers_size 256k;
		 fastcgi_temp_file_write_size 256k;
	 }
	
	場所= /favicon.ico {
		 log_not_found off;
		 access_log off;
	 }
	 location = /robots.txt {
		すべて許可;
		 log_not_found off;
		 access_log off;
	 }
	 ## .htaccessおよび.htpasswordの表示を無効にする 
	場所〜/\.ht {
		すべてを拒否します。
	 }
 }
mysqlをインストールします。
  apt-get install mysql-server mysql-client php5-mysql
 mkdir -p / var / www / var / run / mysqld
 mount --bind / var / run / mysqld / / var / www / var / run / mysqld / 
ディレクトリとindex.phpファイルを作成します。
  mkdir -p /var/www/example.ru
 echo "<?php phpinfo();?>"> /var/www/example.ru/index.php 
nginxとphp5-fpmを再起動します。
  /etc/init.d/nginx restart
 /etc/init.d/php5-fpm restart 

安全性

ディレクトリに適切なアクセス許可を設定します。
  chown -R www-data /var/www/example.ru && chmod -R 750 /var/www/example.ru 
に関連する脆弱性を修正します
 ロケーション〜.php $ { 
、このために/etc/php5/fpm/php.iniに書き込みます
  cgi.fix_pathinfo = 0 
chrootを有効にして、システムへのPHPアクセスを制限します。 これを行うには、ファイル/etc/php5/fpm/php5-fpm.confを編集して、次のように記述します。
 chroot = / var / www
 chdir = /
次に、PHPがアドレスを解決できないという問題が発生します。修正します。
 mkdir / var / www / {etc、lib};
 cp / etc / hosts / var / www / etc / hosts;
 cp /etc/resolv.conf /var/www/etc/resolv.conf;
 cp /lib/libnss_dns.so.2 /var/www/lib/libnss_dns.so.2 //システムは32ビット
 cp /lib64/libnss_dns.so.2 /var/www/lib64/libnss_dns.so.2 //システムは64ビットです 
php5-fpmを再起動します。
  /etc/init.d/php5-fpm restart 


サイトexample.ruのページに移動し、サイトのphpinfo()入力を賞賛します。

PSブログDebian.proの著者は、inkvizitor68slの設定を理解するのを助けてくれました。

新規:

Nginx 0.8.54をインストールします

 apt-get update
 apt-get install libxml2-dev libbz2-dev libcurl4-openssl-dev libmcrypt-dev libmhash2 libmhash-dev libpcre3 libpcre3-dev make

 wget http://sysoev.ru/nginx/nginx-0.8.54.tar.gz
 tar zxf nginx-0.8.54.tar.gz
 cd nginx-0.8.54
 
 ./configure \
 --conf-path = / etc / nginx / nginx.conf \
 --error-log-path = / var / log / nginx / error.log \
 --http-client-body-temp-path = / var / lib / nginx / body \
 --http-fastcgi-temp-path = / var / lib / nginx / fastcgi \
 --http-log-path = / var / log / nginx / access.log \
 --http-proxy-temp-path = / var / lib / nginx / proxy \
 --lock-path = / var / lock / nginx.lock \
 --pid-path = / var / run / nginx.pid \
 --with-debug --with-http_dav_module \
 --with-http_gzip_static_module \
 --with-http_realip_module \
 --with-http_stub_status_module \
 --with-http_sub_module

 make && make install 


Debian「スクイーズ」

php-fpmパッケージをインストールするには、次のものが必要です。
 echo "deb http://packages.dotdeb.org squeeze all" >> /etc/apt/sources.list
 wget http://www.dotdeb.org/dotdeb.gpg && cat dotdeb.gpg |  apt-key add-&& aptitude update
UPD: mysqlインストールに数行を追加し、設定でlocalhostを指定できるようになりました。 inkvizitor68slに感謝します



All Articles