今回は、最短でLAMPインストールし、Wordpressを動かすまでの手順について解説してみたいと思います。
とりあえず、CentOS / ScientificLinux インストールした後から、Wordpressを動かすまでです。
以前に CentOS,ScientificLinuxでLAMP(Apache+MySQL+PHP)インストールからWordPressを動かすまで(Apache編) で記事にした内容の Apache → Lighttpd にしたものになります。
- 目次
- 履歴
2013年5月22日 初版
LAMP(Lighttpd+MySQL+PHP)をインストールする
ここでは、ウェブサーバー(Lighttpd), データベース(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を設定する
ここでは、Lighttpdとともに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のサービス実行ユーザ、グループを指定します。 # -- ここでは Lighttpd のユーザに合わせています。 user = lighttpd group = lighttpd ... # 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です。
Lighttpdをインストールする。
- Lighttpdをインストールする
Lighttpdは、epelにてバイナリパッケージが提供されています。
# EPELリポジトリをインストールする # --すでに EPELリポジトリ インストール済の方は不要です。 # --以下は、CentOS 6 ,ScientificLinux 6 32bit版のリポジトリです。(ファイル名は最新版では異なることがあります。) $ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # --以下は、CentOS 6 ,ScientificLinux 6 64bit版のリポジトリです。(ファイル名は最新版では異なることがあります。) $ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # lighttpd をEPELからインストールする # --lighttpd-fastcgi もインストールします。(phpを動かすために必要です) $ yum -y install lighttpd lighttpd-fastcgi ...
ここでは、EPELリポジトリがデフォルトで有効となっていることを前提にインストールしています。 EPELリポジトリのインストール並びに、有効、無効の設定に関する詳細は、リポジトリの追加・削除、無効・有効の設定をしてみる を参照してください。
- Lighttpdの設定を行う
Lighttpdの設定ファイルにて、必要最小限の設定を行います。
Wordpressを動かすために編集が必要なLighttpdの設定ファイルは、以下のとおりです。- /etc/lighttpd/lighttpd.conf :
Lighttpdの基本設定ファイルです。
デフォルトの設定ファイルがあるので、それを編集して使用します。以下は、主な設定内容です。ここで記述していること以外は、デフォルトのままでもWordpressは動作します。
... # サーバーのデフォルトTCPポートです。 server.port = 80 # IPv6 を使用しない場合は、無効にしておきます。 #server.use-ipv6 = "enable" server.use-ipv6 = "disable" # Lighttpdデーモンを起動するユーザ、グループ名を設定します。 server.username = "lighttpd" server.groupname = "lighttpd" ... # Lighttpdデーモンで使用可能な最大FDS(File DeScriptors)数を設定します。 # --つまりは、扱えるファイルの最大数になります。 server.max-fds = 2048 ... # Lighttpdデーモンで使用可能な最大接続数を設定します。 # 最大接続数 <= 最大FDS数/2 でなければなりません。 server.max-connections = 1024 ... # 最後に仮想ホスト設定ファイルを読み込むようにします。 include_shell "cat /etc/lighttpd/vhosts.d/*.conf"
- /etc/lighttpd/modules.conf :
Lighttpdのプラグインモジュール設定ファイルです。デフォルトの設定ファイルがあるので、それを編集して使用します。
以下は、主な設定内容です。ここで記述していること以外は、デフォルトのままでもWordpressは動作します。
... # 以下の mod_redirect,mod_rewrite の先頭の'#'を削除し有効にします。 server.modules = ( "mod_access", # "mod_alias", # "mod_auth", # "mod_evasive", "mod_redirect", "mod_rewrite", # "mod_setenv", # "mod_usertrack", ) ... # 以下の mod_fastcgi の先頭の'#'を削除し有効にします。 include "conf.d/fastcgi.conf" ...
- /etc/lighttpd/conf.d/fastcgi.conf :
Lighttpdのプラグインモジュールのmod_fastcgi設定ファイルです。デフォルトの設定ファイルがあるので、それを編集して使用します。
以下は、主な設定内容です。ここで記述していること以外は、デフォルトのままでもWordpressは動作します。
... fastcgi.server = ( ".php" => # ( "php-local" => # ( # "socket" => socket_dir + "/php-fastcgi-1.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "max-procs" => 1, # "broken-scriptfilename" => "enable", # ) # ), # - php-fpm との接続を行うため 以下の php-tcp 箇所の先頭の'#'を削除し有効にします。 # - ここでは、host = 127.0.0.1 , port = 9000 と # - php-fpmで設定したサーバーにIPアドレス、TCPポート番号をぞれぞれ設定します。 # ----- ここから ( "php-tcp" => ( "host" => "127.0.0.1", "port" => 9000, "check-local" => "disable", "broken-scriptfilename" => "enable", ) ), # ----- ここまで # # ( "php-num-procs" => # ( # "socket" => socket_dir + "/php-fastcgi-2.socket", # "bin-path" => server_root + "/cgi-bin/php5", # "bin-environment" => ( # "PHP_FCGI_CHILDREN" => "16", # "PHP_FCGI_MAX_REQUESTS" => "10000", # ), # "max-procs" => 5, # "broken-scriptfilename" => "enable", # ) # ), ) ...
- /etc/lighttpd/vhosts.d/example.conf :
Lighttpdの仮想ホスト(www.example.com用)設定ファイルです。新規に作成します。
$HTTP["host"] == "www.example.com" { var.server_name = "www.example.com" server.name = server_name server.document-root = "/var/www/html" accesslog.filename = "/var/log/lighttpd" + server_name + "/access.log" # WordPress用のリダイレクト設定 url.rewrite-if-not-file = ( "^/(wp-.+).*/?" => "$0", "^/.*?(\?.*)?$" => "/index.php$1" ) }
- /etc/lighttpd/lighttpd.conf :
- Lighttpdデーモンを起動する
ここまで設定を終えたら、ログファイルの出力先ディレクトリを作成し、lighttpdデーモンを起動します。
# ログ出力先ディレクトリを作成します。 $ mkdir /var/log/lighttpd/www.example.com # ログ出力先ディレクトリの所有者をlighttpdとします。 $ chown lighttpd. /var/log/lighttpd/www.example.com # lighttpd のデーモン(サービス)を起動します。 $ /etc/init.d/lighttpd start ...
lighttpd のデーモン(サービス)を起動時に以下のようなエラー・警告が出力されることがあります。2013-05-22 20:15:22: (plugin.c.131) Cannot load plugin mod_fastcgi more than once, please fix your config (we may not accept such configs in future releases
mod_fastcgi の設定誤りです。
古い Lighttpd では、以下のような設定をするようになっていました。新しい Lighttpd では、mod_fastcgiを有効にするには、下記の行の先頭”#” を削除し、有効にするだけです。$ vi /etc/lighttpd/modules.conf ... server.modules = ( "mod_access", ... "mod_fastcgi" ) ...
$ vi /etc/lighttpd/modules.conf ... ## ## FastCGI (mod_fastcgi) ## include "conf.d/fastcgi.conf" ...
2013-05-22 20:15:22: (network.c.260) warning: please use server.use-ipv6 only for hostnames, not without server.bind / empty address; your config will break if the kernel default for IPV6_V6ONLY changes
ipv6の設定が正しくないということなので、とりあえず、ここでは、IPv4 のみとしておきます。$ vi /etc/lighttpd/lighttpd.conf ... ## ## Use IPv6? ## #server.use-ipv6 = "enable" server.use-ipv6 = "disable" ...
2013-05-22 20:15:22: (server.c.915) can't have more connections than fds/2: 1024 1024 ^ ^ server.max-connections = 1024 | | ^^^^---------------------------------------------------+ | server.max-fds = 1024(default) | ^^^^^^^^^^^^------------------------------------------------------+
このメッセージは、先の設定例でも示したように
Lighttpdデーモンの最大接続数は、最大FDS(File DeScriptors)数の半分以下でなければならないという由のメッセージです。
このようにそれぞれの値を設定します。$ vi /etc/lighttpd/lighttpd.conf ... server.max-fds = 2048 ... server.max-connections = 1024 ...
server.max-fds のデフォルト値が、1024 となっているのでデフォルトのままでは、上記のようなメッセージが出力されます。
- 簡単な動作確認をする
Lighttpdデーモンが起動できたら、システムリブートでも自動で起動するように設定しておきます。 また、動作確認のため簡単なphpファイルを作成しておきます。
# 正しく起動できらリブート時に自動起動するようにchkconfigで設定しておきます。 $ chkconfig lighttpd 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です。
ここに書いているのは、あくまで必要最小限としての記載ですので、ユーザによっては、もっと、細かい設定を行いたいと思うかもしれません。 その際は、このサイトでも個々の詳細な設定記事がありますので、そちらを参照してください。
さすがに Lighttpd は、共有サーバーで見たことはありませんが、最近では、格安のVPSが出て、これらの新しいウェブサーバーも試しやすい環境になりました。 (さくらのVPS や お名前.com VPS(KVM) など 月額1,000円以下の格安のroot権限を持つVPSが提供されています。)
そのせいか、Nginxなどのウェブサーバーのシェアは、グングン伸びていて、Apache以外のIISなどのシェアは逆にグングン下がっています。 さすがに Apache ダントツ首位は、揺るがないものの伸びてもいませんから、そろそろApacheも下がってくるのかもしれませんね。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
- CentOS,ScientificLinuxでLAMP(Nginx+MySQL+PHP)インストールからWordPressを動かすまで(Nginx編)
- CentOS,ScientificLinuxでLAMP(Apache+MySQL+PHP)インストールからWordPressを動かすまで(Apache編)
- CentOS,ScientificLinuxで(L)AMP(Apache,MySQL,PHP)インストールからEC-CUBEを動かすまで
- CentOS 7 でLAMP(Nginx+MariaDB(MySQL)+PHP)インストールからWordPressを動かすまで(Nginx編)
- apache の FastCGI(mod_fcgid) で phpを動かしてみる
コメントを投稿 :