MacPorts + MySQL5 + Apache2 + PHP5

MacPorts で MySQL5 と Apach2 と PHP5 を入れたメモ。

インストール完了まで意外と時間をくってしまった。

MySQL5

ややこしいことに mysql5 と mysql5-server の2つが対象としてあるので要注意。

mysql5 を選ぶと mysql_install_db5 で一手間必要だったり、 plistを自前で書く必要がでてくるので、mysql5-server を選ぶ。

  
$ sudo port install mysql5-server  
--->  Computing dependencies for mysql5-server  
--->  Fetching mysql5  
--->  Verifying checksum(s) for mysql5  
--->  Extracting mysql5  
--->  Applying patches to mysql5  
--->  Configuring mysql5  
--->  Building mysql5  
--->  Staging mysql5 into destroot  
--->  Installing mysql5 @5.1.46_0  
The MySQL client has been installed.  
If you also want a MySQL server, install the mysql5-server port.  
--->  Activating mysql5 @5.1.46_0  
--->  Cleaning mysql5  
--->  Fetching mysql5-server  
--->  Verifying checksum(s) for mysql5-server  
--->  Extracting mysql5-server  
--->  Configuring mysql5-server  
--->  Building mysql5-server  
--->  Staging mysql5-server into destroot  
--->  Creating launchd control script  
###########################################################  
# A startup item has been generated that will aid in  
# starting mysql5-server with launchd. It is disabled  
# by default. Execute the following command to start it,  
# and to cause it to launch at startup:  
#  
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist  
###########################################################  
--->  Installing mysql5-server @5.1.46_0  
******************************************************  
* In order to setup the database, you might want to run  
* sudo -u _mysql mysql_install_db5  
* if this is a new install  
******************************************************  
--->  Activating mysql5-server @5.1.46_0  
--->  Cleaning mysql5-server  

無事インストールが終わったら、mysql_install_db5 を実行する。

  
$ sudo -u _mysql mysql_install_db5  
Installing MySQL system tables...  
...略  
Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script!  

ログイン時、MySQLが自動で起動するように設定。

  
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist  

これで、mysqld が勝手に立ち上がる。
最後にログイン出来るか確認して、インストール完了。

  
$ mysql5 -u root  
...略  
mysql>   

Apach2 と PHP5

Apach2 と PHP5 をいっぺんにインストール。

  
$ sudo port install php5 +apache2 +mysql5 +pear  
Password:  
--->  Computing dependencies for php5  
...略  
--->  Building apache2  
--->  Staging apache2 into destroot  
--->  Creating launchd control script  
###########################################################  
# A startup item has been generated that will aid in  
# starting apache2 with launchd. It is disabled  
# by default. Execute the following command to start it,  
# and to cause it to launch at startup:  
#  
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist  
###########################################################  
Note: apache2 installs files outside the common directory structure.  
--->  Installing apache2 @2.2.15_1+darwin+preforkmpm  
--->  Activating apache2 @2.2.15_1+darwin+preforkmpm  
--->  Cleaning apache2  
...略  
--->  Configuring php5  
The +mysql5 variant is obsolete. Please install the php5-mysql port instead.  
--->  Building php5  
--->  Staging php5 into destroot  
Note: php5 installs files outside the common directory structure.  
--->  Installing php5 @5.3.2_0+apache2+darwin_10+macosx+mysql5+pear  
--->  Activating php5 @5.3.2_0+apache2+darwin_10+macosx+mysql5+pear  
To customize php, copy  
/opt/local/etc/php5/php.ini-development (if this is a development server) or  
/opt/local/etc/php5/php.ini-production (if this is a production server) to  
/opt/local/etc/php5/php.ini and then make changes.  
  
If this is your first install, you need to activate PHP in your web server.  
  
To enable PHP in Apache, run  
  cd /opt/local/apache2/modules  
  /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so  
--->  Cleaning php5  

ログイン時、Apache2 が自動で起動するように設定。

  
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist  

php.ini をコピー。

  
$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini  

php5 単体では、MySQLインターフェースがインストールされない。
なので、別途インストールする必要がある。

  
$ sudo port install php5-mysql  
...略  
--->  Staging php5-mysql into destroot  
--->  Installing php5-mysql @5.3.2_0+mysqlnd  
To use mysqlnd with a local MySQL server, edit /opt/local/etc/php5/php.ini and set  
mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket  
to /opt/local/var/run/mysql5/mysqld.sock  
--->  Activating php5-mysql @5.3.2_0+mysqlnd  
--->  Cleaning php5-mysql  

MySQLに関わる設定をする為、php.ini を修正する。

  
$ sudo 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  

mbstring も分離されているので、別途インストールする。

  
$ sudo port install php5-mbstring  
...略  
--->  Installing php5-mbstring @5.3.2_0  
--->  Activating php5-mbstring @5.3.2_0  
--->  Cleaning php5-mbstring  

以上で、port を使ったインストール作業は完了。
続いて、httpd.conf の設定を行う。

httpd.conf に php5 モジュールを追加。

  
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so   
[activating module `php5' in /opt/local/apache2/conf/httpd.conf]  

httpd.conf に php の設定を追加。

  
$ sudo vi /opt/local/apache2/conf/httpd.conf  
...  
  
    AddType application/x-httpd-php .php  
    AddType application/x-httpd-php-source .phps  
  
      
        DirectoryIndex index.html index.php  
      
  

httpd を再起動。

  
$ sudo /opt/local/apache2/bin/apachectl restart  

最後に、php ファイルを用意しブラウザからアクセス出来ることを確認して、インストール完了。

なんか・・・

意外と手間取った。