CentOSにyumを使ってphpをインストールします。
前回Apache2.2を使用しましたが、Apache2.4版の2015年版備忘録です。
環境
前回とほぼ同じですので細かい部分は省きます。MySQLがインストールされているものとします。
- CentOS 6.6
- Vagrantbox.es のCentOS 6.6 x64
Apache 2.4.16
# epelリポジトリインストール $ sudo yum install epel-release # IUSリポジトリインストール $ sudo rpm -Uvh "https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-14.ius.centos6.noarch.rpm" # Apacheインストール $ sudo yum install httpd24u # 確認 $ apachectl -V ・・・略・・・ Server version: Apache/2.4.16 (CentOS) ・・・略・・・ Server MPM: prefork ・・・略・・・
PHP 5.6.12
同様にIUSからインストールします。
尚、phpについてはhttpd2.2.15とのconflictsで失敗するので、代わりにphp-fpmをインストールします。
- 参考
new package - Apache httpd 2.4 (httpd24u) : Mailing list archive : ius-community team in Launchpad
mod_phpのhttpd24u向けパッケージは作らないから意図的にエラーにしています php-fpm(FastCGI)を使うようにしてください
# phpインストール(失敗) $ sudo yum install php56u php56u-pdo php56u-mysqlnd ・・・略・・・ Error: httpd24u conflicts with httpd-2.2.15-47.el6.centos.x86_64 Error: httpd24u-tools conflicts with httpd-tools-2.2.15-47.el6.centos.x86_64 # php-fpmインストール $ sudo yum install php56u-fpm php56u-mysqlnd # 確認 $ php-fpm -v PHP 5.6.12 (fpm-fcgi) (built: Aug 8 2015 11:30:54) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
起動確認
# Listen Portの確認 $ sudo less /etc/php-fpm.d/www.conf listen = 127.0.0.1:9000 $ sudo /etc/init.d/php-fpm start $ sudo chkconfig php-fpm on # php.confファイルの退避 $ sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.org $ sudo vi /etc/httpd/conf.d/php.conf <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1 $ sudo /etc/init.d/httpd start
接続確認
# phpinfoファイル作成 $ vi /var/www/html/index.php <?php phpinfo(); ?> # pdoサンプルファイル作成 $ vi /var/www/html/pdo.php <?php try{ $dbh = new PDO("mysql:host=localhost;dbname=mysql;charset=utf8", "root", "yourPassword"); $stmt = $dbh->query("SELECT Host,User FROM mysql.user;"); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); var_dump($rows); $stmt = null; } catch(PDOException $e){ echo $e->getMessage(); } ?>