Nginx(「エンジンx」と発音)は、無料のオープンソースの高性能HTTPサーバーです。 Nginxは、その安定性、豊富な機能セット、シンプルな構成、および低リソース消費で知られています。このチュートリアルでは、PHP5サポート(FastCGIを介して)およびMySQLサポートを備えたUbuntu8.10サーバーにNginxをインストールする方法を示します。
1予備メモ
このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.0.100を使用します。これらの設定はユーザーによって異なる場合があるため、必要に応じて置き換える必要があります。
2MySQL5.0のインストール
MySQLをインストールするには、
を実行します。apt-get install mysql-server mysql-client
MySQLルートユーザーのパスワードを入力するように求められます。このパスワードは[メール保護]ユーザーと[メール保護]ユーザーに有効であるため、後でMySQLルートパスワードを手動で指定する必要はありません。
MySQLの「root」ユーザーの新しいパスワード:<-yourrootsqlpassword
MySQLの「root」ユーザーのパスワードを繰り返します:<-yourrootsqlpassword
3Nginxのインストール
NginxはUbuntu8.10のパッケージとして提供されており、次のようにインストールできます。
apt-get install nginx
その後nginxを開始します:
/etc/init.d/nginx start
ウェブサーバーのIPアドレスまたはホスト名をブラウザ(例:http://192.168.0.100)に入力すると、nginxのウェルカムページが表示されます:
起動時にnginxを起動するには、
を実行しますupdate-rc.d nginx defaults
4PHP5のインストール
FastCGIを介してnginxでPHP5を動作させることができます。幸い、UbuntuはFastCGI対応のPHP5パッケージを提供しており、このようにインストールします(PHPスクリプトからMySQLを使用する場合に必要なphp5-mysqlなどのPHP5モジュールと一緒に):
apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
次に、/ etc / php5 / cgi / php.iniを開き、ファイルの最後にcgi.fix_pathinfo=1という行を追加します。
vi /etc/php5/cgi/php.ini
[...] cgi.fix_pathinfo = 1
Ubuntu用のスタンドアロンのFastCGIデーモンパッケージはないため、lighttpdのspawn-fcgiプログラムを使用します。次のようにlighttpdをインストールします:
apt-get install lighttpd
ポート80がすでに使用されているため、lighttpdを起動できなかったことを示すエラーメッセージが表示されます。 nginxはすでにポート80でリッスンしているため、このようになっているはずです。実行
update-rc.d -f lighttpd remove
lighttpdが起動時に起動しないようにします。
パッケージに付属するプログラム/usr/ bin / spawn-fcgiが1つだけ必要なため、lighttpdをインストールしました。これを使用して、FastCGIプロセスを開始できます。見てください
spawn-fcgi --help
詳細については、
ローカルホストのポート9000でリッスンし、ユーザーおよびグループwww-dataとして実行するPHP FastCGIデーモンを起動するには、次のコマンドを実行します。
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
もちろん、システムを起動するたびにそのコマンドを手動で入力する必要はないため、起動時にシステムにコマンドを自動的に実行させるには、/ etc / rc.local ...
を開きます。vi /etc/rc.local
...そしてファイルの最後(出口行の前)にコマンドを追加します:
[...] /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid [...]
5nginxの構成
nginx構成は/etc/nginx/nginx.confにあり、これを今開いています:
vi /etc/nginx/nginx.conf
構成は簡単に理解できます(詳細については、http://wiki.codemongers.com/NginxFullExampleおよびここ:http://wiki.codemongers.com/NginxFullExample2を参照してください)
まず(これはオプションです)、ワーカープロセスの数を増やし、keepalive_timeoutを適切な値に設定します。
[...] worker_processes 5; [...] keepalive_timeout 2; [...]
仮想ホストはサーバー{}コンテナで定義されます。デフォルトの仮想ホストはファイル/etc/ nginx / sites-available /defaultで定義されています-次のように変更しましょう:
vi /etc/nginx/sites-available/default
[...] server { listen 80; server_name _; access_log /var/log/nginx/localhost.access.log; location / { root /var/www/nginx-default; index index.php index.html index.htm; } location /doc { root /usr/share; autoindex on; allow 127.0.0.1; deny all; } location /images { root /usr/share; autoindex on; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { #proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } [...]
サーバー名 _;これをデフォルトのキャッチオール仮想ホストにします(もちろん、www.example.comのようにここでホスト名を指定することもできます)。
場所/部分で、インデックス行にindex.phpを追加しました。ルート/var/ www / nginx-default;ドキュメントルートがディレクトリ/var/ www/nginx-defaultであることを意味します。
PHPの重要な部分は、場所〜\ .php${}スタンザです。コメントを外して有効にします。 fastcgi_param行をfastcgi_paramSCRIPT_FILENAME/ var / www / nginx-default$fastcgi_script_nameに変更してください。 (/ var / www / nginx-defaultをvhostのドキュメントルートに置き換えます)そうしないと、PHPインタープリターがブラウザーで呼び出したPHPスクリプトを見つけられないためです。
includeとfastcgi_paramsの間にスペースがあることを確認してください。 -デフォルトのファイルでは、これはバグである1つの単語として記述されています。
次に、ファイルを保存してnginxを再起動します:
/etc/init.d/nginx restart
次に、ドキュメントルート/ var / www/nginx-defaultに次のPHPファイルを作成します。
vi /var/www/nginx-default/info.php
<?php phpinfo(); ?>
次に、そのファイルをブラウザ(http://192.168.0.100/info.phpなど)で呼び出します。
ご覧のとおり、サーバーAPI行に示されているように、PHP5は機能しており、FastCGIを介して機能しています。さらに下にスクロールすると、MySQLモジュールを含むPHP5ですでに有効になっているすべてのモジュールが表示されます。
6つのリンク
- nginx:http://nginx.net/
- nginx Wiki:http://wiki.codemongers.com/Main
- PHP:http://www.php.net
- MySQL:http://www.mysql.com
- Ubuntu:http://www.ubuntu.com/