suPHPの導入のやり方 メモ

CentOSのサーバーにsuPHPを導入するやり方のメモ書きです。

手順のもくじ

  • suPHPのダウンロード
  • suPHPのコンパイル・インストール
  • suPHPの設定
詳細は以下

詳しく解説

suPHPのダウンロード

suPHPの公式ページから、ファイルをダウンロードしてきましょう。当方が確認した2015年8月7日時点での最新版はVer.0.7.2です。Tera Termなんかでサーバーにログインし、適当な作業用ディレクトリに移動してから [VIM] wget http://www.suphp.org/download/suphp-0.7.2.tar.gz [/VIM] でソースコードをダウンロードします(suphp-0.7.2.tar.gzのところはバージョンアップがあったら適宜置き換えてください)。その後、 [VIM] tar xvzf suphp-0.7.2.tar.gz #ダウンロードしたファイルを解凍 cd suphp-0.7.2 #生成されたディレクトリに移動 [/VIM] ここまでのコマンドを打っていってください。

suPHPのコンパイル・インストール

次に、suPHPをコンパイルする準備をします。 [VIM] sudo yum -y install httpd-devel gcc-c++ autoconf libtool apr apr-util [/VIM] このコマンドで、コンパイルに必要なパッケージを入れます。パッケージのインストールが完了したら、 [VIM] autoreconf –force –install [/VIM] このコマンドはおまじないです。当方の環境では、これをやってからこの後の操作を行うとうまくいきました。必要性は(先ほどのパッケージと並んで)謎です。ここから、、 [VIM] ./configure –prefix=/usr –with-apxs=/usr/sbin/apxs –with-apr=/usr/bin/apr-1-config make sudo make install [/VIM] この3つのコマンドを上から順に打っていってください。正常に終了すれば、インストール成功です。

suPHPの設定

インストールが完了しても、まだまだ作業は続きます。むしろここからが本番です。Vimを使って作業するので、必要なら当サイトのメモ(見難いかもしれない)か「Vim 使い方」でググルかしてVimの使い方マニュアルを引っ張りだしておきましょう。まずは設定ファイルを用意します。なお、
  • httpdのユーザーはapache
  • バーチャルホスト設定ファイルは/etc/httpd/conf.d/vhost.confにある
  • バーチャルホストでセットする利用ユーザーはhoge1,hoge2
とします。 [VIM] sudo cp doc/suphp.conf-example /usr/etc/suphp.conf #設定ファイルを所定の位置にコピー(./configure –prefixで指定したディレクトリ/etc/suphp.conf) sudo vim /usr/etc/suphp.conf [/VIM] ここから設定ファイルを編集していきます。(変更箇所のみ・一応上から記述) [VIM] ;User Apache is running as webserver_user=apache #httpd.confのUserに合わせておく ;Path all scripts have to be in docroot=/var/www #必要に応じて変更 ;Send minor error messages to browser errors_to_browser=true #エラーを画面に出力させないならfalse ;Umask to set, specify in octal notation umask=0022 #ファイルのパーミッションを755にするならこうなる [handlers] ;Handler for php-scripts application/x-httpd-php=”php:/usr/bin/php-cgi” #php-cgiのパスは合わせておくこと [/VIM] ここまで完了したら、バーチャルホスト側の設定になります。 [VIM] sudo vim /etc/httpd/conf.d/vhost.conf [/VIM] 編集内容はこんな感じになります。あくまで設定例です。必要に応じて変更してください。 [VIM] LoadModule suphp_module modules/mod_suphp.so #httpd.confで追記してもOK DocumentRoot /var/www/hoge1 ServerName hoge1.example.com suPHP_Engine on suPHP_UserGroup hoge1 hoge1 suPHP_ConfigPath /var/www/hoge1 #指定したディレクトリにphp.iniを用意すること(/etc/php.iniあたりをコピーすると楽)。.htaccessで指定してもOK。 ErrorLog /var/log/httpd/hoge1_example-error.log CustomLog /var/log/httpd/hoge1_example-access.log “%h %l %u %t \”%r\” %>s %b” AddType application/x-httpd-php .php suPHP_AddHandler application/x-httpd-php Options ExecCGI FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all DocumentRoot /var/www/hoge2 ServerName hoge2.example.com suPHP_Engine on suPHP_UserGroup hoge2 hoge2 suPHP_ConfigPath /var/www/hoge1 #指定したディレクトリにphp.iniを用意すること(/etc/php.iniあたりをコピーすると楽)。.htaccessで指定してもOK。 ErrorLog /var/log/httpd/hoge2_example-error.log CustomLog /var/log/httpd/hoge2_example-access.log “%h %l %u %t \”%r\” %>s %b” AddType application/x-httpd-php .php suPHP_AddHandler application/x-httpd-php Options ExecCGI FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all [/VIM] こんな感じでバーチャルホストごとに設定します。私の場合はこの後/etc/httpd/conf.d/php.confを無効化しました。これも必要性は謎です。ともかく設定作業が終わったら、 [VIM] sudo service httpd restart [/VIM] でApacheを再起動します。正常に稼働すれば成功です。

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

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

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

Bitcoin:

Monacoin:

Litecoin: