【Linux】 ローカル環境にワードプレスをインストールするためにApacheとPHPを導入する

はじめに

「Apache」と「PHP」 のインストール手順について解説していきます。

インターネットの繋がっていない環境でワードプレスを操作したいと思い、この手順について調べていたところ、「Apache」と「PHP」をインストールしなければならないことがわかりました。

というのは、先人たちの記事中で「etc/httpd」や「var/www」という記載があったのに、自分のハードディスクの中にはその両方ともなかったからである。そして、これらのディレクトリがあるという前提で解説が進むのです。

最終的な目標は、自宅でサーバを構築することではなく、自分のPC上のみでワードプレスを起動させることです。

というわけで、まず「Apache」をインストールします。

MySQL についてはこちら

FTP についてはこちら

httpdパッケージの確認

Apacheは通常、httpdという名前でパッケージ化されています。CentOSでは、yumというコマンドでパッケージの導入を行います。ここではhttpdパッケージの詳細について確認の方法を記載します。

まずはCentOSに含まれるhttpdと名前の付くパッケージのリストを確認します。
パッケージリストの確認は、yumコマンドにオプションのlistを付けて実行します。
そのまま実行すると、全てのパッケージリストが表示されますので、抽出用コマンドのgrepでhttpd文字列が含まれるものだけを抜き出します。

$ yum list | grep httpd
httpd.x86_64 2.4.6-88.el7.centos base
httpd-devel.x86_64 2.4.6-88.el7.centos base
httpd-manual.noarch 2.4.6-88.el7.centos base
httpd-tools.x86_64 2.4.6-88.el7.centos base
keycloak-httpd-client-install.noarch 0.6-3.el7 base
libmicrohttpd.i686 0.9.33-2.el7 base
libmicrohttpd.x86_64 0.9.33-2.el7 base
libmicrohttpd-devel.i686 0.9.33-2.el7 base
libmicrohttpd-devel.x86_64 0.9.33-2.el7 base
libmicrohttpd-doc.noarch 0.9.33-2.el7 base
python2-keycloak-httpd-client-install.noarch
上記の出力結果からわかるように、httpdの名前の付くパッケージは複数あります。
この中でウェブサーバーの導入に関連するものは

httpd.x86_64 2.4.6-88.el7.centos base
httpd-devel.x86_64 2.4.6-88.el7.centos base
httpd-manual.noarch 2.4.6-88.el7.centos base
httpd-tools.x86_64 2.4.6-88.el7.centos base

の4パッケージになります。各パッケージは以下のような機能が含まれています。

httpd.x86_64 (httpdウェブサーバー本体)
httpd-devel.x86_64 (httpdに関連する開発ツール、モジュールなどのパッケージ)
httpd-manual.noarch (httpdのマニュアル)
httpd-tools.x86_64 (httpdに関連するツール群)

ここでは、この4パッケージをインストールします。

yumコマンドによるhttpdのインストール

yum -y install httpd httpd-tools httpd-devel httpd-manual

以下、ファイル容量。

Total download size: 6.0 M
Installed size: 22 M

httpdインストール後の確認

httpdがインストールされたことを確認します。インストールされているパッケージはyumコマンドで確認できます。以下のようにyumを実行することで、httpdパッケージがインストールされていることを確認します。

$ yum list installed | grep httpd

出力結果として、以下の4パッケージが表示されることを確認します。

httpd.x86_64 2.4.6-67.el7.centos.6 @updates
httpd-devel.x86_64 2.4.6-67.el7.centos.6 @updates
httpd-manual.noarch 2.4.6-67.el7.centos.6 @updates
httpd-tools.x86_64 2.4.6-67.el7.centos.6 @updates

この時点で/etcの中に「httpd」が、さらに/varの中に「www」が作成されます。

続いてhttpdがインストールされた場所を確認します。インストールされた場所(パス)を確認するためにはwhichコマンドを利用します。
以下のように実行することでインストールパスを確認できます。

$ which httpd
/usr/sbin/httpd

この結果から、httpdが/usr/sbin以下にインストールされたことが確認できます。
これでhttpdのインストールが正常に終了したことが確認できました。

httpd起動の確認

ここまででhttpdのインストールと確認が完了しましたので、続いてインストールしたhttpdが起動することを確認します。CentOSでは7系からsystemctlコマンドでサービスの起動・停止を行います。httpdは以下のように実行することで起動できます。

$ systemctl start httpd

systemctlコマンドにstatusオプションを付けて実行することで、起動したサービスの状態について、詳細な情報を取得することができます。
以下が実行例です。

$ systemctl status httpd

● httpd.service – The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-02-11 15:20:20 JST; 36s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 16851 (httpd)
Status: “Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec”
Tasks: 6
CGroup: /system.slice/httpd.service
├─16851 /usr/sbin/httpd -DFOREGROUND
├─16855 /usr/sbin/httpd -DFOREGROUND
├─16856 /usr/sbin/httpd -DFOREGROUND
├─16857 /usr/sbin/httpd -DFOREGROUND
├─16858 /usr/sbin/httpd -DFOREGROUND
└─16859 /usr/sbin/httpd -DFOREGROUND

Feb 11 15:20:20 0C-5B-8F-27-9A-64 systemd[1]: Starting The Apache HTTP Server…
Feb 11 15:20:20 0C-5B-8F-27-9A-64 httpd[16851]: AH00558: httpd: Could not re…e
Feb 11 15:20:20 0C-5B-8F-27-9A-64 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

上記では分かり難いかもしれませんが、黒丸(●)の部分が正常な起動状態の場合、緑色で表示されます。

また、稼働しているプロセスを表示するpsコマンドでもhttpdが起動していることを確認できます。
以下のように実行します。

$ ps -aux | grep httpd

root 16851 0.0 0.1 230356 5080 ? Ss 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16855 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16856 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16857 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16858 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 16859 0.0 0.1 232440 3052 ? S 15:20 0:00 /usr/sbin/httpd -DFOREGROUND

以上の結果から、httpdが正常に起動することが確認できました。

httpd自動起動の設定

サーバーの再起動や停止の復旧時に、httpdが自動的に起動するように設定します。サービスの自動起動を設定するにもsystemctlコマンドを利用します。自動起動は以下のようにsystemctlコマンドを実行します。

$ systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/systemd/system/httpd.service.

エラーが出力されなければ、自動起動は設定が完了しています。

続いて自動起動が設定されたことを確認します。こちらもsystemctlコマンドから確認できます。

$ systemctl list-unit-files | grep httpd
httpd.service enabled

httpdの設定

httpd.confの変更

httpdの設定は/etc/httpd/conf以下にあるhttpd.confで行います。
httpd.confの編集前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

# cd /etc/httpd/conf

# cp -p httpd.conf httpd.conf.org

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

# vi httpd.conf

DocumentRootをWordPressのディレクトリに変更します。

DocumentRoot “/var/www/html”

上記のDocumentRoot “/var/www/html”の”/var/www/html”を “/home/www/wordpress” に変更します。

以下のように修正します。「AllowOverride All」

#.htaccessによるディレクティブの上書きを許可する 

AllowOverride All

最終行に追記します。(PHP通信のために必要です。)
<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>

Apacheテストページの撤去のため修正

$ sudo vi /etc/httpd/conf.d/welcome.conf

「#」を使用して、すべてコメントアウトします。

php をインストール

以下、コマンドです。

$ sudo yum install php

Total download size: 4.1 M
Installed size: 13 M

WordPressを公式サイトからダウンロード

WordPressを http://ja.wordpress.org/releases/ からダウンロードする。

tar コマンドで展開し、Apacheが読み込めるようにする

$ tar zxvf wordpress-5.0.3-ja.tar.gz

ファイルをApacheで扱えるディレクトリに配置する

「wordpress」ディレクトリを作成します。

$ sudo cp -r wordpress /var/www/

パーミッション設定

$ ps aux | grep apache で確認可能。

権限を変更

$ sudo chown -R root:root /var/www/wordpress

Apache再起動で設定反映

systemctl restart httpd

「Apache」「PHP」については以上です。

次は、MySQLをインストールします。

〈 関連記事 〉