素人がWordPress環境を構築してみる。その006

素人がブログをはじめてみようとふと思い立ち、Wordpressを導入してみた顛末記。

・LAMP環境の構築

LAMP(ランプ)環境とはLinux+Apache+MySQL+(PHP/Perl/Python)で構成した動的なWeb環境を動作せるための構成です。
Linux(=CentOS)はすでにインストールしてあるため、ApacheとMySQL、PHPのインストールと設定を行いたいと思います。

・Apacheのインストールと設定
Webサーバを担当するApacheのインストールと設定を行います。
・Apacheをyumでインストール
インストールは yum コマンドにより行います。

sudo yum -y install httpd

インストールが完了したら、chkconfig コマンドでサーバ再起動時にApacheが自動起動するように設定します。

sudo chkconfig httpd on

–listオプションをつけることで自動起動が有効になったか確認できます。

sudo chkconfig –list httpd

表示される番号の2~5が”ON”になっていれば自動起動設定が有効になっています。

・Apache設定ファイルの編集
次にApacheの初期設定を行います。
設定ファイルは ”/etc/httpd/conf/httpd.conf” です。
念の為、cpコマンドでデフォルト設定をバックアップしておきます。
例ではyは西暦, mは月, dは日としています。

sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_bk_yyyymmdd
(1) サーバ情報表示の抑止(44行目)
ServerTokensはクライアントに返信するサーバ応答ヘッダに含める情報を制御します。
デフォルトでは、サーバが使用しているOS情報を表示するようになっており、そのバ
ージョンなどが分かるとそのバージョンが持つ脆弱性が特定できてしまうため、格好
のターゲットになってしまいます。
したがって、表示するサーバ情報は必要最小限にとどめる為、Prodに変更します。
ProdはProductのことで、こうすることにより表示するサーバ情報はApacheとなりま
す。
[変更前] ServerTokens OS
[変更後] ServerTokens Prod

(2)持続的接続の許可(77行目)
1回のTCP接続で複数回のリクエストを処理できるようにします。
[変更前] KeepAlive Off
[変更後] KeepAlive On

(3)ファイル一覧表示の無効化(331行目)
デフォルトでは、”index.html”がないディレクトリにブラウザでアクセスするとディレクトリ内のファイル一覧が表示されてしまいます。
これはセキュリティ上よろしくないので無効化します。
[変更前] Options Indexes FollowSymLinks
[変更後] Options -Indexes FollowSymLinks

(4).htaccessの許可設定(338行目)
Webサーバの動作を設定するファイル”.htaccess”を有効化します。
[変更前] AllowOverride None
[変更後] AllowOverride All

(5)サーバシグネチャ(サーバ情報)表示の無効化(536行目)
(1)のServerTokens設定により、一緒に無効化されているので特に修正しなくても
問題ありませんが念の為、変更しておきます。
[変更前] ServerSignature On
[変更後] ServerSignature Off

(1)~(5)の変更が終わったら変更内容に問題がないか、次のコマンドでテストを行います。

sudo apachectl configtest

Syntax OK

“Syntax OK”と表示されれば正しく設定されており、それ以外ならばエラー内容に応じて修正を行います。

修正が完了したら、Apacheを起動します。
sudo service httpd start

最後に、ブラウザから”http://サーバのIPアドレス”にアクセスするとApacheのページが表示されると思います。
以上でApacheの設定は完了です。

・MySQLのインストールと設定
データベースを担当するMySQLのインストールと設定を行います。
・MySQLをyumでインストール
インストールは yum コマンドにより行います。
sudo yum -y install mysql-server
インストールが完了したら、まずはバージョンを確認します。
mysql –version

最新のバージョンではないですが、WordPress等を使用する分には問題ないようです。
MySQLも自動起動するように設定しておきます。
sudo chkconfig mysqld on

・MySQL設定ファイルの編集
次にMySQLの初期設定を行います。
設定ファイルは ”/etc/my.conf” です。
念の為、cpコマンドでデフォルト設定をバックアップしておきます。
例ではyは西暦, mは月, dは日としています。

sudo cp /etc/my.cnf /etc/my.cnf_bk_yyyymmdd

(1)MySQLサーバの文字コードの設定(7行目~追記)
MySQLサーバ側で使用するデフォルト文字コード設定を追記します。
default-character-set=utf8
skip-character-set-client-handshake
ちなみに2行目の”skip-character-set-client-handshake”は勝手な変換を行わ
ず”default-character-set=utf8”の設定に従ってね。という命令だそうです。

(2)クライアント,コマンドラインツール,バックアップツールの文字コードの設定(10行目~追記)
クライアント(client), コマンドラインツール(mysql), バックアップツール
(mysqldump)のデフォルト文字コード設定を追記します。
[client] default-character-set=utf8
[mysql] default-character-set=utf8
[mysqldump] default-character-set=utf8

最終的に設定ファイルは以下のようになっているはずです。
[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パスワードを変更します。
sudo mysqladmin -u root password ‘xxxx’

変更が終わったら、rootでログインしてみます。

mysql -u root -p

コンソールの最後にmysql>と出ていればrootでのログインに成功できています。
quitと入力することでログアウトできます。

以上でMySQLの設定は完了です。
・PHPのインストール
LAMPのPであるPHPをインストールしていきます。
ApacheやMySQLと同じようにPHPもyumでそのままインストール可能ですがバージョンが古い(5.3.1)ため、新しいバージョンをインストールするためにyumをカスタムします。

・yumリポジトリの拡張
PHPの最新版を導入するため、yumにLinux用の拡張パッケージリポジトリであるremi
リポジトリを追加します。

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

・PHPをyumでインストール
インストールは yum コマンドにより行います。
sudo yum install –enablerepo=remi –enablerepo=remi-php55 php php-mbstring php-mysql php-mcrypt php-gd php-devel php-pear php-pecl-apc

インストールが完了したら、バージョンをチェックして5.5系になっていることを確認します。

php -version

以上でPHPのインストールは完了です。

…ということでLAMP環境の構築が完了したので次回からはWordPressの構築作業に着手したいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください