この記事では、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に感謝し
ます 。