前回、VPSサーバの導入した後の初期設定とセキュリティ周りの設定について記事にしましたが、今回はそのVPSサーバにLAMP環境を構築していく方法を紹介します。
前回の初期設定とセキュリティの設定が済んでいる前提で話を進めていきます。
目次
LAMP環境を構築しよう
LAMP環境とは
Linux、Apache、MySQL、Perl(PHP,Python)で構成された動的なWebコンテンツを動かすための環境です。
動的Webサイトを構築する上で一般的にOS、Webサーバ、データベース、スクリプト言語が必要になりますが、それぞれ主要なものがLinux、Apache、MySQL、Perl(PHP,Python)となります。一般的なレンタルサーバはLAMP環境になっていることが多いです。
Wordpressを動かすにはこのLAMP環境が必要になるので、VPSサーバにLAMP環境を構築していきます。
さっそくですが、PHP、Apache、Mysqlをそれぞれインストールしていきます。
基本的にコマンドライン上での作業なので、Macの方は標準のTerminalで、Windowの方はTeraTerm等をインストールして進めていきましょう。
Apacheのインストール
Apacheをyumでインストール
まずはWebサーバのApacheをインストールします。
Apacheはyumを使ってインストールします。
$ sudo yum -y install httpd
インストールが完了したら、バージョンを確認してみましょう。
$ httpd -v Server version: Apache/2.2.15 (Unix) Server built: Apr 3 2014 23:56:16
yumからインストールするとバージョンが2.2になるみたいです。最新バージョンは2.4なので、ちょっと古いですが特に問題ありません。
続いて、chkconfigというコマンドでサーバの再起動時にApacheが自動で起動するように設定しておきましょう。
$ sudo chkconfig httpd on
自動起動の設定の確認は「–list」というオプションで確認できます。
$ chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2〜5が「on」になっていれば自動起動の設定ができています。
Apacheの設定ファイル(httpd.conf)の編集
続いてApacheの初期設定をしていきます。
設定ファイルは「/etc/httpd/conf/httpd.conf」というファイルです。
まず、cpコマンドでファイルをコピーしてバックアップを作成しておきましょう。
$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_20140101
バックアップを作成したら、設定ファイルをviで編集していきます。
$ sudo vi /etc/httpd/conf/httpd.conf
では設定していきましょう。
httpd.confはファイル内容が複雑なので、行番号をベースに書いていきます。
vim上で「:set number」と打って行番号を表示させておきましょう。また「xxG」でxx行目に移動できます。
44行目 ServerTokensを「Prod」にする
ServerTokens Prod
ServerTokensはアクセス時にサーバ情報の何を返すかの命令です。初期だとOSになっており、OS情報を返すようになっているので、Prodに変更して、Apacheとだけ返すようにします。
78行目 KeepAliveを「On」にする
KeepAlive On
KeepAliveはapacheの接続状態の維持に関する記述です。1リクエストごとに接続を切っていると非効率なので、こちらをONにしておきリクエストを効率よく処理できるようにします。
87行目 MaxKeepAliveRequestsを「80」にする
MaxKeepAliveRequests 80
上記で設定したKeepAliveで接続しっぱなしだとリソースが無駄に消費されるので、MaxKeepAliveRequestsである程度リクエスト数がきたら切断するようにします。
331行目 Directoryのオプションを下記のように変更
Options -Indexes FollowSymLinks
デフォルトでは「Indexes」が有効になっているので、これにハイフン(-)をつけて無効化します。Indexesとは、アクセスしたhtmlがない場合そのディレクトリ内のファイル一覧を表示するものです。
338行目 AllowOverrideをAllに変更
AllowOverride All
デフォルトではAllowOverride Noneになっていますが、これだと.htaccessが利用できずWordpress等が動きません。ひとまずAllに変更しておきます。
536行目 ServerSignatureをOFFにする
ServerSignature Off
ServerSignatureはエラー時にサーバ情報を表示するかどうかの記述です。これもOFFにしておきます。
816〜817行目 SSIの読み込みを「.html」にする
AddType text/html .html AddOutputFilter INCLUDES .html
SSI(Server Side Include)で読み込むファイル形式についてです。初期ではshtmlですが、htmlに変更しておきます。これは好みなので、shtmlのままでいいという方は変更しなくて大丈夫です。
設定ファイルの編集は以上です。
Apacheをテスト&起動する
編集が完了したら、下記コマンドで設定内容のテストをします。
$ sudo apachectl configtest Syntax OK
「Syntax OK」と表示されたら、正しく設定されています。
編集にミスがある場合エラー内容が表示されるので、それにしたがって修正しましょう。
Syntax OKの表示を確認したら、Apacheを起動します。
$ sudo service httpd start
これでApacheのインストールと設定は完了です。
サーバのIPアドレスにブラウザから「http://」をつけてアクセスしてみると、Apacheのページが表示されると思います。
なお、実際にWordpressを導入する際などはVirtualHostを切り分けて設定していきます。VirtualHostの細かい設定は別途.confファイルを作成しそちらで管理していきます。
この説明はWordpressをインストールするときに合わせて行います。
Mysqlのインストール
Mysqlをインストール
Apacheのインストールが完了したら、データベースとなるMysqlをインストールします。
MysqlもApache同様にyumでインストールします。
$ sudo yum -y install mysql-server
インストール完了後、バージョンを確認しましょう。
$ mysql --version mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
若干バージョンが古い(最新は5.5系)ですが、Wordpress等は問題なく動きます。
Mysqlもサーバ再起動時に自動で起動するように設定します。
$ sudo chkconfig mysqld on
Mysqlの設定ファイル(my.cnf)の編集
インストールが完了したら、初期設定をしていきます。
Mysqlの設定ファイルは「/etc/my.cnf」です。
こちらの設定ファイルもバックアップを作成しておきます。
$ sudo cp /etc/my.cnf /etc/my.cnf_20140101
さて、編集していきましょう。
今までと同様にviコマンドで編集します。
$ sudo vi /etc/my.cnf
ファイルを開いたら下記のハイライトされている部分をmy.cnfに追記します。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 ###追加内容ここから default-character-set=utf8 skip-character-set-client-handshake ###追加内容ここまで [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid ###追加内容ここから [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8 ###追加内容ここまで
この追記が完了したら、mysqlを起動します。
$ sudo service mysqld start
Mysqlのrootパスワード変更
起動に成功したら、Mysqlにログインするためのrootユーザーのパスワードを変更します。
$ sudo mysqladmin -u root password 'XXXXXXX'
Mysqlの起動
ここまでできたら、Mysqlにログインしてみましょう。
パスワード入力を求められるので、さきほど変更したパスワードを入力します。
$ mysql -u root -p Enter password: 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>
最後に「mysql>」と表示されていれば、無事ログインできています。ログインが確認できたら、「quit」と入力してMysqlからログアウトしましょう。
これでMysqlのインストールと設定は完了です。
PHPのインストール
続いて、PHPをインストールします。
ApacheやMysql同様、PHPもyumでそのままインストールしたいところですが、そうすると古いバージョン(5.3.1)のPHPがインストールされてしまいます。PHPは5.4系以降の方が記述などがスマートになるので、今回は新しいバージョンをインストールするためにちょっとyumをカスタムします。
yumリポジトリを拡張する
phpの最新版を導入するため、yumにremiリポジトリを追加をします。
remiはcentOS非公式のリポジトリで、これらを利用することで新しいバージョンのパッケージをインストールすることができます。
下記コマンドを実行して、remiリポジトリをyumに対応させます。
$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
PHP最新版をインストールする
インストールが完了したら、下記コマンドでphpをインストールします。
$ sudo yum install --enablerepo=remi --enablerepo=remi-php55 php php-mbstring php-mysql php-mcrypt php-gd php-devel php-pear php-pecl-apc
完了後、phpのバージョンを確認しましょう。
phpのバージョンが5.5系になっていると思います。
$ php -v PHP 5.5.13 (cli) (built: Jun 3 2014 13:27:36) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, by Zend Technologies with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
phpのインストールは以上で完了です。
まとめ
Apache、Mysql、PHPの導入が完了し、ひと通りのLAMP環境が構築できました。
各パッケージごとに基本的な設定しか行っていないのですが、細かいカスタマイズは運用していく上で都度行っていけばいいかと思います。
使っているサーバはこちら
さくらのVPS 1G
次回はこのVPSサーバにWordpressをインストールして実際に表示させていくところまでをお送りしたいと思います。
さくらVPSとWordpressに関する記事