Apache + PHP + MySQL インストールメモ on Snow Leopard

MacPorts を使うよー

Apache

# port install apache2

とすると、db46 のところで error:checksum Checksum (md5) mismatch for patch.4.6.21.1 と言われる。調べてみると必要なファイルがダウンロードされていないということが書かれている。
そこで、db46 だけ個別にインストールする。

# port clean -f --all db46
# port install db46
# port install apache2

Apache を起動する。

# /opt/local/apache2/bin/apachectl start

MySQL

# port install mysql5-server

それから初期設定

# sudo -u _mysql mysql_install_db5
# cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf
# vi /opt/local/etc/mysql5/my.cnf

[mysqld]
default-character-set=utf8

[mysql]
default-character-set=utf8

設定が終わったら MySQL サーバを起動する。

# /opt/local/share/mysql5/mysql/mysql.server start

PHP

まずオプションの確認。

# port variants php5
php5 has the variants:
   apache: Add Apache 1 web server module
     * conflicts with apache2 no_web
[+]apache2: Add Apache 2.2 web server module
     * conflicts with apache no_web
   debug: Enable debug support (useful to analyze a PHP-related core dump)
   fastcgi: Add FastCGI web server binary
     * conflicts with no_web
   ipc: Add semaphore, shared memory and IPC functions
   no_web: Don't include any web server support
     * conflicts with apache apache2 fastcgi
   pear: Add PEAR
   suhosin: Add Suhosin patch
   universal: Build for multiple architectures

Apache2 と PEAR を入れる。

# port install php5 +apache2 +pear

PHPMySQL を使うための php5-mysql も入れる。

# port install php5-mysql

そのあとソケットファイル?の設定

# vi /opt/local/etc/php5/php.ini

pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
mysql.default_socket =/opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket =/opt/local/var/run/mysql5/mysqld.sock

PHP を入れたら Apache も設定しなくちゃね。モジュールをロードする記述はしてくれるけど、AddType はしてくれないので手動でする。

# cd /opt/local/apache2/modules/
# /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
# vi /opt/local/apache2/conf/httpd.conf

# ついでに ServerName を設定
ServerName harapeco.local:80

<IfModule mime_module>
    # この行を追加
    AddType application/x-httpd-php .php
</IfModule>

<IfModule dir_module>
    # index.php を追加
    DirectoryIndex index.html index.php
</IfModule>

設定を書き換えたら Apache を再起動。

# /opt/local/apache2/bin/apachectl restart