さくらのVPSでCentOS7のサーバーを構築する その7

このブログでは以前にVMware上でCentOS7のサーバーを構築する手順を解説しましたが、今度はさくらのVPSを使ってサーバーを構築します。7回目となる今回は、PHPをインストールしてWordPressを稼働させる準備に入ります。

本編の目次

  • サーバーコントロールパネルへのログイン~サーバー起動まで(第1回)
  • サーバーへログイン~初回起動時に行う設定
  • SSHログインについて
  • SELinuxの有効化(第2回)
  • 一般ユーザーの作成
  • sudoの有効化
  • SSH経由でのrootログイン禁止設定(第3回)
  • 公開鍵認証の導入
  • ファイアウォール(Firewalld)の設定(第4回)
  • SSHのポート番号変更とSELinux
  • WEBサイト公開用ユーザーの作成とChrootの設定(第5回)
  • Apacheのインストールと設定
  • ユーザーのホームディレクトリ配下にあるpublic_htmlを公開する(第6回)
  • バーチャルホストの設定
  • PHPのインストールと設定(第7回)
  • PHPのCGIモード化
  • MySQLのインストールと設定(第8回)
  • phpMyAdminのインストールと設定(第9回)
  • WordPressを使うためのMySQLの設定(第10回)
  • WordPressのインストール

PHPのインストールと設定

WordPressを稼働させるためには、PHPとMySQLが必要になります。また、WordPressを使わない場合でも、PHPを使うことができれば動的なWEBページを実現できますし、色々なことをさせることができます。PHPは腐ってもプログラミング言語の一種なので、使えるようになれば出来ることは格段に増えます。

CentOS7の場合、普通にyumでPHPを入れるとPHP5.4が入ります。しかしそれでは流石に少し古いので、もっと新しいバージョンのPHPを入れる下準備をします。以下のコマンドを順番に打ってください。 [VIM] sudo yum install epel-release sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm [/VIM]

準備が整ったので、PHPをインストールします。バージョンについては各自の使用するものに合わせて決めてください。なお、本シリーズではPHP7.0を使用していることを前提に解説を行います。 [VIM] #PHP7.0 sudo yum –enablerepo=remi,remi-php70 install php #PHP5.6 sudo yum –enablerepo=remi,remi-php56 install php [/VIM]

PHPをインストールしたら、php.iniを開いて設定をいじります。 [VIM] sudo vim /etc/php.ini [/VIM] php.iniを開いたら、以下の記述を修正します。 [VIM] #359行目辺り…OnをOffに修正 expose_php = Off [/VIM] 今回はここだけ修正しましたが、必要であればその他の部分も修正してください。ちなみに、あるディレクトリだけPHPの設定を変えたい場合は、対象ディレクトリに.user.iniという名前の設定ファイルを置けばOKです。後はApacheを再起動すれば、一応PHPが使えるようになります。 [VIM] sudo systemctl restart httpd [/VIM]

PHPのCGIモード化

ここまでの設定でPHPは使えるようになりましたが、現時点ではPHPが「モジュールモード」で稼働しています。モジュールモードはパフォーマンスでは優れているのですが、PHPの実行優ザーが「Apache」となるため、Apacheが書き込める範囲内なら他のユーザーの領域にも書き込めてしまうので、セキュリティ面ではあまりよろしくありません。そこで、ここからはセキュリティ面で勝る「CGIモード」への切り替え作業を行います。

まずは以下のコマンドで、CGI版のPHPがどこにあるかを確かめてください。 [VIM] which php-cgi #おそらくここにあるはず /usr/bin/php-cgi [/VIM]

ここからPHPをCGIモードで動かすための呪文を順次詠唱します。なお、以下の呪文に登場する「hoge」は、PHPを使用するページを公開するユーザーの名前です。複数のユーザーが存在する場合は、各ユーザーについて同様の呪文を詠唱してください。 [VIM] sudo mkdir /var/www/cgi-bin/hoge-cgi sudo chown hoge:hoge /var/www/cgi-bin/hoge-cgi chmod 711 /var/www/cgi-bin/hoge-cgi [/VIM]

ディレクトリを作ったら、シェルスクリプトを作ります。 [VIM] sudo vim /var/www/cgi-bin/hoge-cgi/php-cgi #中身は以下の2行 #!/bin/sh exec /usr/bin/php-cgi [/VIM] 保存したら、以下のコマンドでシェルスクリプトの所有者をPHPを使用するページを公開するユーザーにします。 [VIM] sudo chown hoge:hoge /var/www/cgi-bin/hoge-cgi/php-cgi sudo chmod 755 /var/www/cgi-bin/hoge-cgi/php-cgi [/VIM]

今度はバーチャルホストの設定を書き換えます。 [VIM] sudo vim /etc/httpd/conf.d/vhosts.conf [/VIM] バーチャルホストの設定ファイルを以下のように書き換えます。複数ユーザー・複数ドメイン名でWEBサイトを構築する場合は、ユーザーごとにScriptAliasの設定を記述し、ドメイン名ごとに<VirtualHost *:80>から</VirtualHost>までの部分の設定を書いてください。なお、できればこの時に「秘密のWEBサイト用ディレクトリ」を用意し、設定を施してください。後にphpMyAdminを配置するときなどに使います。 [VIM] NameVirtualHost *:80 ScriptAlias /php-hoge /var/www/cgi-bin/hoge-cgi/php-cgi SuexecUserGroup hoge hoge ServerName example.com ErrorLog /var/log/httpd/example.com_error_log CustomLog /var/log/httpd/example.com_access_log combined DocumentRoot “/home/hoge/public_html/piyo” SetHandler php-cgi Action php-cgi /php-hoge SuexecUserGroup hoge hoge ServerName secret.example.com ErrorLog /var/log/httpd/example.com_error_log CustomLog /var/log/httpd/example.com_access_log combined DocumentRoot “/home/hoge/public_html/secret” SetHandler php-cgi Action php-cgi /php-hoge [/VIM] 書き終えたら保存しましょう。

Suexecのパーミッションを変更します。 [VIM] sudo chmod 4755 /usr/sbin/suexec [/VIM]

ここまで終わったら、Apacheを再起動しましょう。 [VIM] #文法チェック(Syntax OK と表示されれば大丈夫) apachectl configtest #Apache再起動 sudo systemctl restart httpd [/VIM]

Apache再起動後、設定したディレクトリでPHPがCGIモード化されているかを確かめましょう。以下のPHPプログラムをコピペして(任意の半角英数).php という名前で保存し、CGIモード化の設定を行ったディレクトリにアップロードしてください(その時、パーミッションを644にしてください)。 [VIM] \n”; echo $_SERVER[‘DOCUMENT_ROOT’] . “
\n”; phpinfo();?> [/VIM] アップロードしたらブラウザでアクセスしてみましょう。


このように、ディレクトリ所有者名がユーザー名として表示され、「Server API」の項目に「CGI/FastCGI」と表示されていれば、CGIモード化成功です。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: