8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【CentOS】PHP5.6 → PHP7.0へアップデートする

Last updated at Posted at 2016-09-17

Drupal7 では PHP 5.6 を使っていましたが、Drupal8 では 高速動作が期待できる PHP7を使いたいですね。
今回は、Vagrantで管理している CentOS6.7 の PHP をバージョンアップを行ったときのメモです。

##作業環境

  • MAC OS X El Capitan
  • Vagrant 1.7.4
  • CentOS release 6.7 (Final)
  • PHP 5.6.17(yum管理) → PHP 7.0.11(ソースからインストール)
  • Apache 2.4.23(yum管理) → Apache 2.4.23(ソースからインストール)
  • MySQL 5.6.33
  • Drupal7/8

以上の CentOS6.7 環境下で、Apache 2.4、PHP5.6 はyumでパッケージ管理をしていましたが、新たにインストールする PHP7 はソースからインストールします。
合わせて mod_php と依存関係にある Apache 2.4 もソースからインストールし直しました。

##各種ライブラリをインストールする

PHP7 のコンパイルに必要なライブラリをあらかじめyumコマンドでインストールしておきます。

# yum install pcre-devel
# yum install libxml2-devel
# yum install openssl-devel
# yum install bzip2
# yum install bzip2-devel
# yum install libbz2
# yum install libbz2-dev
# yum install lbzip2-utils
# yum install lbzip2-devel
# yum install libssl-dev
# yum install curl-devel
# yum install db4-devel
# yum install libXpm-devel
# yum install gmp-devel
# yum install libc-client-devel
# yum install openldap-devel
# yum install postgresql-devel
# yum install aspell-devel
# yum install libxslt-devel
# yum install libxml2-devel
# yum install pcre-devel
# yum install t1lib-devel.x86_64
# yum install libmcrypt-devel.x86_64
# yum install libpng-devel
# yum install libjpeg-devel
# yum install libfreetype-dev
# yum install freetype-devel.x86_64

##Apache2.4をセットアップする

インストール済みのApacheをいったん削除して、新たにソースからインストールします。

まず、ソースファイルをダウンロードします。

Apache HTTP Server 2.4
http://httpd.apache.org/download.cgi#apache24

Apache2.4 では APR と APR-util が必要なのでこちらもダウンロードします。
http://apr.apache.org/download.cgi

ダウンロードファイルは、Vagrantマシン上の /vagrant に保存します。
(環境に合わせて任意の場所に保存して構いません)

##yumで管理されている Apache2.4 を削除する

# yum remove httpd24*
# rm -rf /opt/rh/httpd24/root/etc/httpd
# rm -rf /etc/httpd

##Apache2.4をソースからインストールする

# cd /vagrant
# tar -xjvf httpd-2.4.18.tar.bz2
# tar -xzvf apr-1.5.2.tar.gz
# cp -r apr-1.5.2 httpd-2.4.18/srclib/apr
# tar -xzvf apr-util-1.5.4.tar.gz
# cp -r apr-util-1.5.4 httpd-2.4.18/srclib/apr-util
# cd httpd-2.4.18
# ./configure
# make
# make install

###http.confファイルを編集する

# vim /usr/local/apache2/conf/httpd.conf

mod_rewriteのコメントアウトを外してロードできるようにします。

LoadModule rewrite_module modules/mod_rewrite.so

DirectoryIndexの設定行を見つけたら index.php を追加します。

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

http.conf の最終行に SetHandler を追加します。

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

http.conf の構文テストを行います。

"Syntax OK"と表示されれば編集完了です。

# /usr/local/apache2/bin/httpd -t
Syntax OK

###PHP7が動作することを確認する

PHPが動作することを確認するために phpinfo() の結果を表示します。

phpinfo.php ファイルを作成します。

# cd /usr/local/apache2/htdocs
# vim phpinfo.php
<?php phpinfo(); ?>

Apache2.4を起動します。

# /usr/local/apache2/bin/apachectl start

ブラウザから表示できることを確認します。
http://[サーバのIPアドレス]/phpinfo.php

###Apacheの自動起動を設定する

# cp /vagrant/httpd-2.4.23/build/rpm/httpd.init /etc/init.d/httpd
# vim /etc/init.d/httpd

前) httpd=${HTTPD-/usr/sbin/httpd}
後) httpd=${HTTPD-/usr/local/apache2/bin/httpd}

前) pidfile=${PIDFILE-/var/run/${prog}.pid}
後) pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid}

前) CONFFILE=/etc/httpd/conf/httpd.conf
後) CONFFILE=/usr/local/apache2/conf/httpd.conf

###Apacheをサービスに登録する

chkconfigコマンドを使ってサービス登録します。

$ chkconfig --add httpd

サービス一覧に登録されたことを確認します。

$ chkconfig --list httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

サービスをオンにします。

$ chkconfig httpd on

サービスが自動起動されることを確認します。

$ chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

以上でApache2.4の設定は完了ですが、その他、必要に応じてバーチャルホストを設定してください。

##PHP7をセットアップする

PHP7のソースファイルをダウンロードします。

Current Stable PHP
http://www.php.net/downloads.php

ダウンロードファイルは、Vagrantマシン上の /vagrant に保存します。
(環境に合わせて任意の場所に保存して構いません)

###古いPHPを削除する

インストール済みのPHP5.6をいったん削除して、新たにソースからインストールします。

まず、作業前に Apache をいったん停止します。

# /usr/local/apache2/bin/apachectl stop

では、yumで管理されている PHP5.6 を削除します。

$ sudo yum remove php*

PHP5.6が削除されたことを確認します。

$ yum list installed | grep php

###PHP7をソースからインストールする

# tar -xjvf php-7.0.2.tar.bz2
# cd php-7.0.2
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --libdir=/usr/lib64 --with-libdir=lib64 --with-curl --disable-debug --with-pic --disable-rpath --without-pear --with-bz2 --with-freetype-dir --with-png-dir --with-xpm-dir --enable-gd-native-ttf --without-gdbm --with-gettext --with-iconv --with-jpeg-dir --with-openssl --with-pcre-regex --with-zlib --enable-exif --enable-ftp --enable-sockets --enable-calendar --with-libxml-dir --enable-xml --with-mhash --enable-mbstring --enable-mbregex --with-gd --enable-bcmath --with-xmlrpc --with-mysqli --with-pdo-mysql --with-curl --with-pdo-mysql --enable-json --enable-zip --without-readline --with-mcrypt

# make
# make install
# cp php.ini-development /usr/local/php7/lib/php.ini

php.iniファイルを編集します。

# vim /usr/local/php7/lib/php.ini

DrupalはMySQLへの接続にPDOを利用するので MysqL PDO の接続設定をします。

pdo_mysql.default_socket=/var/lib/mysql/mysql.sock

大規模サイトにも耐えられるようにパラメーターをチューニングします。

memory_limit = 256M
realpath_cache_size = 256k
realpath_cache_ttl = 3600
upload_max_filesize = 20M
post_max_size = 64M

Apacheを起動します。

# /usr/local/apache2/bin/apachectl start

##環境変数を設定する

Apache2.4、PHP7 の実行ファイルへのパスを通します。

# export PATH=$PATH:/usr/local/apache2/bin:/usr/local/php7/bin

通したパスを全ユーザーへ反映されるように /etc/profile の最終行にも追加します。

# vim /etc/profile
export PATH=$PATH:/usr/local/apache2/bin:/usr/local/php7/bin

以上です。 これでDrupal7/8が動作できる環境が整いました。

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?