Mac OS X バージョン 10.7.4 に port を利用して PHP のデバッグ環境を作成した際の手順を記します。
※ eclipse と PDT も別途インストールしておくこと
1. PHP5 をインストールする
php をインストールする(pear を利用したい場合)
1
| $ sudo port install php5 +apache2 +pear |
$ sudo port install php5 +apache2 +pear
php.ini の設定
1
| $ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini |
$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| ;timezone の設定
[Date]
date.timezone = Asia/Tokyo
;mbstring の設定
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
;エクステンションの設定
;930 行目付近 (mac の場合)
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
:
extension=php_mysql.so
:
extension=php_pdo_mysql.so |
;timezone の設定
[Date]
date.timezone = Asia/Tokyo
;mbstring の設定
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
;エクステンションの設定
;930 行目付近 (mac の場合)
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
:
extension=php_mysql.so
:
extension=php_pdo_mysql.so
2. MySQL5 をインストールする
1
| $ sudo port install mysql5-server |
$ sudo port install mysql5-server
データベースのセットアップ
上記コマンドのメッセージで以下のコマンドでセットアップするよう指示される
1
2
| $ sudo port load mysql5-server
$ sudo -u mysql mysql_install_db5 |
$ sudo port load mysql5-server
$ sudo -u mysql mysql_install_db5
root パスワードの設定
1
| $ sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password' |
$ sudo /opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password'
文字コードの設定
1
2
| $ sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /opt/local/etc/mysql5/my.cnf
$ sudo vi /opt/local/etc/mysql5/my.cnf |
$ sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /opt/local/etc/mysql5/my.cnf
$ sudo vi /opt/local/etc/mysql5/my.cnf
my.cnf ファイルに以下の設定を追加する
1
2
3
4
5
6
7
8
| [mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8 |
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
接続確認
3. Apache2 をインストールする
– PATH 設定
環境変数を参照する
1
2
3
| $ printenv PATH
$ sudo port install apache2 |
$ printenv PATH
$ sudo port install apache2
– 設定ファイル
port でインストールした場合
/opt/local/apache2/conf/httpd.conf
– ドキュメントルートの設定
1
2
| $ sudo mkdir -p /var/www/(ドキュメントルートにするディレクトリ)
$ sudo chown (ユーザ名) /var/www/(ドキュメントルートにするディレクトリ) |
$ sudo mkdir -p /var/www/(ドキュメントルートにするディレクトリ)
$ sudo chown (ユーザ名) /var/www/(ドキュメントルートにするディレクトリ)
– hosts にドメイン設定
– バーチャルホストの設定
/opt/local/apache2/conf/httpd.conf から、以下のコメントを外す
1
| Include conf/extra/httpd-vhosts.conf |
Include conf/extra/httpd-vhosts.conf
/opt/local/apache2/conf/extra/httpd-vhosts.conf に以下の設定を追記する
1
2
3
4
5
6
7
8
9
10
| <VirtualHost *:80>
ServerName (ドメイン名:localhost など)
DocumentRoot /var/www/(ドキュメント ルート)
DirectoryIndex index.php index.html
<Directory "/var/www/(ドメイン名)">
AllowOverride All
Allow from All
</Directory>
</VirtualHost> |
<VirtualHost *:80>
ServerName (ドメイン名:localhost など)
DocumentRoot /var/www/(ドキュメント ルート)
DirectoryIndex index.php index.html
<Directory "/var/www/(ドメイン名)">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
– php5モジュールの追加設定
1
| $ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so |
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
httpd.conf の LoadModule に以下の設定が追記される
1
| LoadModule php5_module modules/libphp5.so |
LoadModule php5_module modules/libphp5.so
動作確認
1
| $ ps aux | grep apache2 |
$ ps aux | grep apache2
ブラウザから php が動かない場合
/opt/local/apache2/conf/httpd.conf
ディレクディブに以下の設定を追加する
1
| AddType application/x-httpd-php .php |
AddType application/x-httpd-php .php
4. xDebug をインストールする
以下のコマンドで xdebug に関する記述がない場合、インストールする必要がある
PECL で xDebug をインストールする
(PEAR がインストールされていることとする)
2012/08時点、xDebug のパッケージがあるみたい?
php.ini に xDebug に関する設定をする
1
| $ sudo vi /opt/local/etc/php5/php.ini |
$ sudo vi /opt/local/etc/php5/php.ini
1
2
3
4
5
| [xDebug]
zend_extension="/opt/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost |
[xDebug]
zend_extension="/opt/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
上記の作業中に問題となった箇所
– 最初に port で php5 がインストールできなかった
– php5 を variants 指定でインストールできなかった
$ sudo port upgrade ncursesw
$ sudo port install ncurses
他、違うバージョンの PHP をインストールしたりしているうちにインストールできるようになった。^_^;
– eclipse (PDT) でデバッグ時にブレークポイントで処理を中断することができなかった
xDebug がインストールされてなかったので、インストールすることで対処した。
(まぁ当然ですが、知らなかったので気づかなかった (T-T) )
5.phpmyadmin をインストール
インストール
1
| $ sudo port install phpmyadmin |
$ sudo port install phpmyadmin
config ファイルの設置
1
2
| $ cd /opt/local/www/phpmyadmin/
$ sudo cp config.sample.inc.php config.inc.php |
$ cd /opt/local/www/phpmyadmin/
$ sudo cp config.sample.inc.php config.inc.php
phpmyadmin へのアクセス
http://localhost/phpmyadmin/ でアクセスさせる場合
1
2
3
4
5
6
7
8
9
10
11
12
13
| $ sudo vi /opt/local/apache2/conf/httpd.conf
<IfModule alias_module>
...
Alias /phpmyadmin "/opt/local/www/phpmyadmin/"
<Directory /opt/local/www/phpmyadmin>
Order allow,deny
Allow from all
</Directory>
...
ScriptAlias /cgi-bin/ "/opt/local/apache2/cgi-bin/"
...
</IfModule> |
$ sudo vi /opt/local/apache2/conf/httpd.conf
<IfModule alias_module>
...
Alias /phpmyadmin "/opt/local/www/phpmyadmin/"
<Directory /opt/local/www/phpmyadmin>
Order allow,deny
Allow from all
</Directory>
...
ScriptAlias /cgi-bin/ "/opt/local/apache2/cgi-bin/"
...
</IfModule>
(注意) ScriptAlias より上に記述すること
その他、便利そうなコマンド
MySQL5 の起動、停止
1
2
3
| $ sudo /opt/local/share/mysql5/mysql/mysql.server start
$ sudo /opt/local/share/mysql5/mysql/mysql.server stop
$ sudo /opt/local/bin/mysqladmin5 -u root -p shutdown (手動停止) |
$ sudo /opt/local/share/mysql5/mysql/mysql.server start
$ sudo /opt/local/share/mysql5/mysql/mysql.server stop
$ sudo /opt/local/bin/mysqladmin5 -u root -p shutdown (手動停止)
apache2 の起動、停止、再起動
1
2
3
| $ sudo /opt/local/apache2/bin/apachectl start
$ sudo /opt/local/apache2/bin/apachectl stop
$ sudo /opt/local/apache2/bin/apachectl restart |
$ sudo /opt/local/apache2/bin/apachectl start
$ sudo /opt/local/apache2/bin/apachectl stop
$ sudo /opt/local/apache2/bin/apachectl restart
apache2, mysql の alias 設定
1
2
3
4
| alias apache_start="sudo /opt/local/apache2/bin/apachectl start"
alias apache_stop="sudo /opt/local/apache2/bin/apachectl stop"
alias mysql_start="sudo /opt/local/lib/mysql5/bin/mysqld_safe &"
alias mysql_stop="sudo /opt/local/bin/mysqladmin5 -u root -p shutdown" |
alias apache_start="sudo /opt/local/apache2/bin/apachectl start"
alias apache_stop="sudo /opt/local/apache2/bin/apachectl stop"
alias mysql_start="sudo /opt/local/lib/mysql5/bin/mysqld_safe &"
alias mysql_stop="sudo /opt/local/bin/mysqladmin5 -u root -p shutdown"
設定ファイルの更新
色々便利そうなワンライナーが紹介されていたので、メモしておく。
1
2
3
4
5
6
7
8
9
10
| sudo perl -p -i.bk -e 's/;date.timezone =/date.timezone = Asia\/Tokyo/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/pdo_mysql.default_socket=/pdo_mysql.default_socket = \/opt\/local\/var\/run\/mysql5\/mysqld.sock/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/mysqli.default_socket =/mysqli.default_socket = \/opt\/local\/var\/run\/mysql5\/mysqld.sock/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.language = Japanese/mbstring.language = Japanese/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.internal_encoding = EUC-JP/mbstring.internal_encoding = UTF-8/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.http_input = auto/mbstring.http_input = auto/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.detect_order = auto/mbstring.detect_order = auto/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;default_charset = "iso-8859-1"/default_charset = "UTF-8"/g' /opt/local/etc/php5/php.ini |
sudo perl -p -i.bk -e 's/;date.timezone =/date.timezone = Asia\/Tokyo/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/pdo_mysql.default_socket=/pdo_mysql.default_socket = \/opt\/local\/var\/run\/mysql5\/mysqld.sock/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/mysqli.default_socket =/mysqli.default_socket = \/opt\/local\/var\/run\/mysql5\/mysqld.sock/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.language = Japanese/mbstring.language = Japanese/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.internal_encoding = EUC-JP/mbstring.internal_encoding = UTF-8/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.http_input = auto/mbstring.http_input = auto/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;mbstring.detect_order = auto/mbstring.detect_order = auto/g' /opt/local/etc/php5/php.ini
sudo perl -p -i -e 's/;default_charset = "iso-8859-1"/default_charset = "UTF-8"/g' /opt/local/etc/php5/php.ini