PHP on Apache2.4 & RedHat 6 (by SCL)
利用している RedHat 6 のサーバーに、PHPを追加サポートする事に。以前 Redhat6.x + SCL 使う時に気をつけたい3つのポイント - AWS / PHP / Python ちょいメモ で書いた SCLの仕組みを使って構築しました。
たぶん、CentOS 6 + SCL のケースも同じで行けるのではないかと。
環境とパッケージ
CakePHP を Apache で動作させようと構成しました。PHPは、php-fpm (FirstCGI Process Manager) で、デフォルト9000番で待ち受けするサービスを起動。Apacheからは、mod_proxy_fcgi (FastCGI support module for mod_proxy) でProxyをあげて、前述のFPMにリクエストを流す形。
パッケージ
- php55-php-mysqlnd (ref: PHP: Mysqlnd - Manual)
- php55-php-pdo (ref: PHP: PDO - Manual)
- php55-php-fpm (ref: PHP: FastCGI Process Manager - Manual)
- mod_proxy_fcgi (ref: mod_proxy_fcgi - Apache HTTP Server Version 2.4)
後は、CakePHP の動作のために、PHPのPDO経由でMySQL NativeDriverを使いMySQLへの接続という構成です。
なおパッケージは、すべてSCLリポジトリからの取得となります。
設定
PHP FPM
listenするポートの設定と、サービスの起動を行います。
// /opt/rh/php55/root/etc/php-fpm.d/www.conf ... listen = 127.0.0.1:9000
// サービス デフォルト起動条件 $ chkconfig | grep fpm php55-php-fpm 0:off 1:off 2:off 3:off 4:off 5:off 6:off // 手動でサービスON $ sudo service php55-php-fpm start Starting php-fpm: [ OK ]
その他
参考
- Apache2.4+PHP-FPMのhttpd.confの個人的メモ - Qiita
- ProxyPassMatchの使い方に、なるほどと思った
- Apache2.4 で PHP を php-fpm を使って実行するたった1つの正しい方法 - Qiita
- ぬぬぬ、.htaccessファイルとの優先順位やセキュリティを意識したノウハウが。リリース前には再確認して設定をブラッシュアップしたい
- Apache with various PHP versions, using SCL | Red Hat Developer Blog
- Ubuntu 14.04 の Apache mod_proxy_fcgi で php 動かすのは厳しい話 - はざまブログ
- .htaccess などの制御は、FPMから参照するようになると無効などのポイントが
- PHP-FPM - Httpd Wiki
- ステップ by ステップで基本的な設定が紹介されてます
- Apache&Cakephpを連携させたときにハマってワロタ - ITの隊長のブログ
- 数少ない、CakePHP2.x + Apache2.4なエントリーだと思われます