今回は、最短でLAMPインストールし、Wordpressを動かすまでの手順について解説してみたいと思います。
とりあえず、CentOS / ScientificLinux インストールした後から、Wordpressを動かすまでです。
以前に CentOS,ScientificLinuxでLAMP(Apache+MySQL+PHP)インストールからWordPressを動かすまで(Apache編) で記事にした内容の Apache → Nginx にしたものになります。
- 目次
- 履歴
2013年5月22日 初版
LAMP(Nginx+MySQL+PHP)をインストールする
ここでは、ウェブサーバー(Nginx), データベース(mysql) ,スクリプト(php) をインストールします。 LAMPのPは、Perlもありますが、依存関係でインストールはされますが、(WordPress自体には、Perlは必要ないので)ここでは明示的にPerlはインストールしません。
phpをインストールする。
- phpをインストールする
# php をインストールします。 # --php-cgi php-fpm のいずれかをFastCGIとして使用します。 $ yum -y install php-mysql php-common php php-cgi php-fpm php-gd php-mbstring ... # php がインストールできたか、バージョンをチェックしてみます。 $ php --version PHP 5.3.3 (cli) (built: Jul 3 2012 16:40:30) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
CentOS 5 では、デフォルトのPHPバージョンが 5.1 系なので、php-fpm がありません。
CentOS 5 の場合、ius リポジトリを使って5.3 系以降のバージョンを利用することができます。
iusリポジトリのインストール並びに、有効、無効の設定に関する詳細は、リポジトリの追加・削除、無効・有効の設定をしてみる を参照してください。
$ yum -y install php53u-mysql php53u-common php53u php53u-cgi php53u-fpm php53u-gd php53u-mbstring ...
- php-fpmを設定する
ここでは、Nginxとともにphpを動かしますので、php-fpm を使います。
php-cgiでも可能ですが、ここではより簡単な設定で対応可能なphp-fpm を使います。
php-fpmの設定(/etc/php-fpm.d/www.conf を編集)を行っておきます。
/etc/php-fpm.d/www.conf
[www] ... # 使用するポートを設定します。 listen = 127.0.0.1:9000 ... # 許可するクライアントのIPアドレスを指定します。 # -- ここではlocalhostだけです。 listen.allowed_clients = 127.0.0.1 ... # php-fpmのサービス実行ユーザ、グループを指定します。 # -- ここでは Nginx のユーザに合わせています。 user = nginx group = nginx ... # php-fpmのサービスのプロセス数を定量とするように設定しておきます。 # -- dynamic を指定すると変動させることができます。 ;pm = dynamic pm = static ... # php-fpmの最大子プロセス数を設定します。 # -- ここでは、3としています。 ;pm.max_children = 50 pm.max_children = 3 ... # php-fpmが受け付ける最大要求数を設定します。 # ここで設定した要求数を処理したら子プロセスを再起動します。 # -- ここでは、500としています。 pm.max_requests = 500
- php-fpmデーモンを起動する
設定を終えたら、php-fpm を起動します。
# php-fpm のデーモン(サービス)を起動します。 $ /etc/init.d/php-fpm start ... # 正しく起動できらリブート時に自動起動するようにchkconfigで設定しておきます。 $ chkconfig php-fpm on
mysqlをインストールする。
- mysqlをインストールする
# mysql mysql-server をインストールします。 $ yum -y install mysql mysql-server ... $ mysql --version mysql Ver 14.14 Distrib 5.1.61, for redhat-linux-gnu (i386) using readline 5.1
- mysqlデーモンを起動する
# mysql-server のデーモン(サービス)を起動します。 $ /etc/init.d/mysqld start MySQL データベースを初期化中: WARNING: The host 'www.example.com' could not be looked up with resolveip. This probably means that your libc libraries are not 100 % compatible with this binary MySQL version. The MySQL daemon, mysqld, should work normally with the exception that host name resolving will not work. This means that you should use IP addresses instead of hostnames when specifying MySQL privileges ! Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h www.example.com password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! [ OK ] mysqld を起動中: [ OK ] # 正しく起動できらリブート時に自動起動するようにchkconfigで設定しておきます。 $ chkconfig mysqld on
- Wordperssで使用するデータベースを作成する
ここで、最低限 mysql の以下の項目の設定を行います。
- 管理者パスワード設定
- 新規のデータベースを作成
- 新規ユーザの作成
ここでは、SQLをテキストファイルにまとめて、一気に流してしまいます。
以下は、そのSQLファイルのイメージです。
/* rootのパスワードを設定します。 */ set password for root@localhost=password('roothoge'); /* hoge というユーザを新規に作成します。のパスワードも設定します。 */ insert into user set user="hoge", password=password("hogehoge"), host="localhost"; /* wddb というwordpress用にデータベースを作成します。 */ create database wddb; /* wddb というデータベースに hogeというユーザが常にアクセスできるようにします。 */ grant all on wddb.* to hoge; /* 最新に更新 */ FLUSH PRIVILEGES;
続けて、そのSQLファイル ( ここでのファイル名を 例として wordpress.sql とします ) を mysqlコマンドを使って一気に流してみます。
# SQLファイルを実行します。 $ mysql -uroot -Dmysql < wordpress.sql # 管理者でログインできるか確認します。 $ mysql -uroot -proothoge Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.1.61 Source distribution Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye # 続けて新規データベースへ新規ユーザでログインできるか確認します。 $ mysql -uhoge -phogehoge -Dwddb Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 5.1.61 Source distribution Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye
このようにログインできればOKです。
Nginxをインストールする。
- Nginxをインストールする
Nginxは、epel あるいは、Nginxの公式サイトからバイナリパッケージが提供されています。
ここでは、常に最新版のある Nginxの公式サイトからインストールしてみます。
# Nginxリポジトリをインストールする # --すでに Nginxリポジトリ インストール済の方は不要です。 # --以下は、CentOS 6 ,ScientificLinux 6 のリポジトリです。(ファイル名は最新版では異なることがあります。) $ rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm # --以下は、CentOS 5 のリポジトリです。(ファイル名は最新版では異なることがあります。) $ rpm -Uvh http://nginx.org/packages/centos/5/noarch/RPMS/nginx-release-centos-5-0.el5.ngx.noarch.rpm # nginx をNginx公式サイトからインストールする $ yum -y install nginx ...
- Nginxの設定を行う
Nginx の設定ファイルにて、必要最小限の設定を行います。
Wordpressを動かすために編集が必要な Nginx の設定ファイルは、以下のとおりです。- /etc/nginx/nginx.conf :
Nginxの基本設定ファイルです。
デフォルトの設定ファイルがあるので、それを編集して使用します。以下は、主な設定内容です。ここで記述していること以外は、デフォルトのままでもWordpressは動作します。
# Nginxデーモンを起動するユーザ、グループ名を設定します。 user nginx nginx; ... events { # Nginxデーモンで使用可能な最大接続数を設定します。 worker_connections 1024; } ... http { ... # 最後にsever 設定ファイルをすべて読み込みます。 include /etc/nginx/conf.d/*.conf; }
- /etc/nginx/nginx.conf :
- /etc/nginx/fastcgi_params :
NginxのFastCGIのデフォルトパラメータ設定ファイルです。デフォルトの設定ファイルがあるので、それをそのまま使用します。
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_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
- /etc/nginx/conf.d/example.conf :
Nginxの仮想ホスト(www.example.com用)設定ファイルです。新規に作成します。
server { # サーバーのデフォルトTCPポートです。 listen 80; # サーバー名を設定します。 server_name www.example.com; # ドキュメントルートディレクトリを設定します。 root /var/www/html; # index file タイプの優先順を設定します。 index index.php index.html index.htm; # ログファイル名を設定します。 access_log /var/log/nginx/www.example.com/access.log main; error_log /var/log/nginx/www.example.com/error.log warn; # WordPress用のリダイレクト設定 # ファイルが存在しないURIの場合は、index.phpへ転送させる。 try_files $uri $uri/ /index.php?q= # PHP FPM との接続を行うため 拡張子phpに対して処理します。 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- Nginxデーモンを起動する
ここまで設定を終えたら、ログファイルの出力先ディレクトリを作成し、Nginxデーモンを起動します。
# ログ出力先ディレクトリを作成します。 $ mkdir /var/log/nginx/www.example.com # ログ出力先ディレクトリの所有者をnginxとします。 $ chown nginx. /var/log/nginx/www.example.com # Nginx のデーモン(サービス)を起動します。 $ /etc/init.d/nginx start ...
- 簡単な動作確認をする
Nginxデーモンが起動できたら、システムリブートでも自動で起動するように設定しておきます。 また、動作確認のため簡単なphpファイルを作成しておきます。
# 正しく起動できらリブート時に自動起動するようにchkconfigで設定しておきます。 $ chkconfig nginx on # ウェブサーバー(httpd) の動作確認ようのファイルを作成します。 $ cd /var/www/html [html]$ echo '<?php echo phpinfo(); ?>' > info.php [html]$
上記で作成した info.php へアクセスしてみてください。(ここでの例では、http://www.example.com/info.php へアクセスすることになります。 )
ここでアクセスするためのドメインについては、DNSの設定を行っておきます。
先のhttpd.confのServerNameで設定したドメインに関してDNSレコードに設定しておく必要があります。
DNSレコードを設定することで、普通に、http://www.exmapl.com/info.php でアクセスできるようにしておきます。
この画面が見えればOK。
見えない場合、 接続に失敗した場合は、ドメインが正しくIPアドレスをさしているか確認します。 接続がタイムアウトとなる場合は、iptables で接続を拒否している可能性があります。 iptables を無効にしてみます。$ /etc/init.d/iptables stop iptables: ファイアウォールルールを消去中: [ OK ] iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ] iptables: モジュールを取り外し中: [ OK ]
この状態でアクセスできるようになれば、間違いありません。
iptables の最低限の設定をしておきます。 以下のイメージを適当なテキストファイルに書き込みます。#!/bin/sh # chain のルールをすべて削除します。 /sbin/iptables -F # ユーザー定義チェインを削除します。 /sbin/iptables -X # chain のデフォルトポリシーを target に設定します。 # 入力は全て破棄(NG) /sbin/iptables -P INPUT DROP # 出力は全て許可(OK) /sbin/iptables -P OUTPUT ACCEPT # 転送は全て破棄(NG) /sbin/iptables -P FORWARD DROP # lo:localhost のこと # loの入力は全て受け入れ(OK) /sbin/iptables -A INPUT -i lo -j ACCEPT # loの出力は全て許可(OK) /sbin/iptables -A OUTPUT -o lo -j ACCEPT # icmp (pingのポート)の入力は受け入れ /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # 22 (sshのポート)の入力は許可 /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 80 (httpのポート)の入力は許可 /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 送信時の応答受信を許可します。 /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 設定したルールを保存します。 /etc/rc.d/init.d/iptables save # 設定したルールで iptables を再起動します。 /sbin/service iptables restart
作成したテキストファイル(ここでは、local_iptableという名前のファイルとします)を実行します。
$ sh local_iptable iptables: ファイアウォールのルールを /etc/sysconfig/iptable[ OK ]中: iptables: ファイアウォールルールを消去中: [ OK ] iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ] iptables: モジュールを取り外し中: [ OK ] iptables: ファイアウォールルールを適用中: [ OK ]
WordPress をインストールする
最後に WordPress をインストールして動かしてみましょう。
- 最新版のWordpressをダウンロードし、展開します。
最新のWordpressをダウンロードします。
# 最新のWordpressをダウンロードします。 # -- 最新版のファイル名は、必ず、Wordpressのサイトで確認しましょう。 $ wget http://ja.wordpress.org/wordpress-3.5.1-ja.zip ...
続けて、zipファイルを解凍します。
$ mv wordpress-3.5.1-ja.zip /var/www/html/. $ cd /var/www/html/ [html]$ unzip -qq wordpress-3.5.1-ja.zip [html]$ mv wordpress/* . [html]$ rm -fR wordpress
- ウェブブラウザからアクセスします。
ここでは、www.example.com というサーバー名でアクセスできるものとして設定していますので、
http://www.example.com でアクセスします。
初期状態では、Wordpressの設定用ファイル ( wp-config.php ) がないので、作成しますよ・・というメッセージが表示されます。
設定ファイルを作成する をクリックして、次へ進みます。
- 設定ファイルが作成できたら、インストールの初期画面が表示されます。
さあ、始めましょう! をクリックして、次へ進みます。
- データベース情報を設定し、Wordpressで必要なテーブルを作成します。
- データベース名 :
先に作成したデータベース名を入力します。
ここでは、wddb とします。
- ユーザ名 :
先に作成したデータベースのユーザ名を入力します。
ここでは、hoge とします。
- パスワード :
先に作成したデータベースへアクセスできるユーザのパスワードを入力します。 ここでは、hogehoge とします。
- データベースのホスト名 :
ここでは、同じホスト内なのでlocalhostとします。
- テーブル接頭辞 :
同じデータベースに複数のWordpressをインストールする場合は、ユニークな文字列を設定します。
同じデータベースに1つしかWordpressをインストールしない場合は、そのままで可。
※ここで設定するテーブル接頭辞は、このWordpressの識別子のようなものです。
ここでは、wp_ とします。
送信 をクリックして、データベースにWordpressで使用するテーブルを作成します。
ここで、設定ファイル ( wp-config.php )が存在しない場合は、自動的に作成しようとします。そこで作成できなかった場合、以下のような画面が表示されます。
この場合、手動で 設定ファイル ( wp-config.php ) を作成するか、Wordpress のインストール先に書き込み権を与えると先に進むことができます。
Wordpress のインストール先に書き込み権を与える場合、簡単なのは、所有者をapache へ変更してしまうことです。以下は、その例です。
これで、/var/www/htmlの配下全ての所有者および所有グループを apache に変更できます。$ chown -R apache. /var/www/html
データベースへの接続が可能な場合は、上記のように表示されます。
続けて、インストール実行 をクリックして、データベースに基本的なデータを設定します。
- データベース名 :
- WordPressで必要なテーブルの作成が完了したら、次にWordpressの情報を設定します。
- サイトのタイトル :
WordPressで管理するサイト名を入力します。
(ここでは、あくまで例として「ワードプレスをインストールしてみた」としました。)
- ユーザ名 :
WordPressの管理ユーザ名 (デフォルト : admin )
(セキュリティ上、admin以外を使うことをおすすめしますが、ここでは、簡単を重視するため、デフォルトのadminを使います。)
- パスワード :
WordPressの管理ユーザのパスワード
(セキュリティ上、強い パスワード(英数字をからめた8文字以上)のパスワードを設定しましょう。)
- メールアドレス :
WordPressの管理ユーザのメールアドレス
(このアドレスは、パスワードを忘れてしまった時などにも用いられますから、良く使うメールアドレスで必ず着信できるメールアドレスにしましょう。)
- このサイトがGoogleやTechnoratiなどの検索エンジンに表示されるのを許可する。 :
WordPressで記事を投稿したときに検索エンジンに通知するか否かを指定します。
(通常は、チェックします。テスト(試す)のみなら、ここのチェックは不要です。)
WordPressをインストール をクリックして、Wordpressをインストールします。
- サイトのタイトル :
- WordPressが正常にインストールできたら、以下の画面が表示されます。
これでインストールは完了したので、ログイン ボタンをクリックすると、下記のログイン画面が表示されます。
簡単な動作確認のために、ログインしてみるのも良いですし、
画面下のリンクが、ウェブサイトへのリンクとなっていますので、そこをクリックし、サイト表示させて動作を確認するのも良いと思います。
ここでは、後者を使って動作を確認してみます。以下のようにウェブサイトのトップページが表示されればOKです。
ここに書いているのは、あくまで必要最小限としての記載ですので、ユーザによっては、もっと、細かい設定を行いたいと思うかもしれません。 その際は、このサイトでも個々の詳細な設定記事がありますので、そちらを参照してください。
最近では、かなりシェアを伸ばしている Nginx (2013.5現在 シェアはNo.2らしいです)ですが、 以前は、Lighttpd と張り合っていた時もありました。しかし、ここにきてはっきりと差が出てきましたね。すごいです。
これもひとえに格安のVPSが手に入るようになったことに起因すると思います。 (さくらのVPS や お名前.com VPS(KVM) など 月額1,000円以下の格安のroot権限を持つVPSが提供されています。)
それだけ、自由にウェブサーバーと選べる環境ができたのと、Apacheでは、どうにもならない格安VPSのリソース不足を少しでも解消してくれるNginxはやっぱり魅力です。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
- CentOS 7 でLAMP(Nginx+MariaDB(MySQL)+PHP)インストールからWordPressを動かすまで(Nginx編)
- Debian(Ubuntu 12) で Dotdeb から最新のnginx をインストール、php-fprm を使ってphpを動かしてみる
- CentOS,ScientificLinuxでLAMP(Lighttpd+MySQL+PHP)インストールからWordPressを動かすまで(Lighttpd編)
- CentOS,ScientificLinuxでLAMP(Apache+MySQL+PHP)インストールからWordPressを動かすまで(Apache編)
- Nginx で WordPress を使う時の注意点
コメントを投稿 :