CentOS 5.6で最低限のWebアプリ開発環境を構築する
半ば個人的な手順書。少々怪しいかも。すべてCUIで行う場合を想定。
PHP5.3をインストール
デフォルトのPHPは5.1なので、5.3をインストール。ただし、php53-pearが無いのでpearはPHP5.1のをインストール後アップグレード。最初はメッセージが色々出るけど気にしない。(参考:http://d.hatena.ne.jp/Akkiesoft/20110411/1302488866)
# yum remove php php-* # yum install php53 php53-* # yum install php-pear # pear upgrade --force Archive_Tar # pear upgrade --force Console_Getopt # pear upgrade PEAR
"pear list" でバージョンの確認が出来る。
Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Console_Getopt 1.3.1 stable PEAR 1.9.2 stable Structures_Graph 1.0.4 stable XML_RPC 1.5.0 stable XML_Util 1.2.1 stable
Xdebugのインストール
# pecl install xdebug
ビルドが終わったら/etc/php.iniに以下の項目を追加する。
[zend] zend_extension="/usr/lib/php/modules/xdebug.so" xdebug.remote_enable=On xdebug.remote_host=192.168.X.X
xdebug.remote_hostはリモートデバッグをする場合の接続元のIPアドレス。
"system-config-securitylevel"ツールを使用してXdebugが使用するポート9000を開ける。
# system-config-securitylevel
Apacheの動作を確認
# chkconfig --list | grep httpd # chkconfig httpd on # /etc/init.d/httpd restart
PHPの動作を確認
関数phpinfoはプラグインの状態も表示してくれる。Xdebugが正しくインストールされればその情報も。
<?php phpinfo(); ?>
動作しない場合は、コマンドラインで実行してエラーメッセージを調べる。
# php /var/www/html/index.php
SELinux関連
SELinuxの管理ツールをインストール。SELinuxは有効にした方が無難かも。*1
# yum install setroubleshoot # chkconfig setroubleshoot on # /etc/init.d/setroubleshoot start
SELinuxの生ログは/var/log/audit/audit.log。「sealert -a /var/log/audit/audit.log」で詳細な内容をわかりやすく表示してくれる。
SELinux関連はこれらが参考になる。
一般ユーザーとsambaの設定
お約束の一般ユーザーの追加。SELinuxが有効なときにSambaのファイル共有を許可するにはsamba_enable_home_dirsの値を1にする。
# adduser a7m # passwd a7m # pdbedit -a a7m # setsebool -P samba_enable_home_dirs=1 # chkconfig --list | grep smb # chkconfig smb on # /etc/init.d/smb start
MySQL関連
初期設定
/etc/my.cnfを編集する。エンジンはInnoDBを使用し、デフォルトのエンコーディングをUTF-8にする。
[mysqld] default-character-set = utf8 ; ←追加 default-storage-engine=InnoDB ; ←追加 [mysql] default-character-set = utf8 ; ←追加
セキュリティ関連
"system-config-securitylevel"ツールを使用してMySQLが使用するポート3306を開ける。
# system-config-securitylevel # setsebool -P httpd_can_network_connect=1
MySQLのデーモンの起動
# chkconfig --list | grep mysqld # chkconfig mysqld on # /etc/init.d/mysqld start
パッケージのアップデート
最後にインストール済みのパッケージを更新する。
# yum check-update # yum update
*1:本当は完全に無効化したかったのだけど、ポリシーを理解すればそんなに敷居が高くない。