snow leopard環境セットアップ
ということで早速、macportsで開発環境セットアップ。
php5、apache2、mysql5、symfonyセットアップまで。
もうこれでmacportsでの構築は3度目になりますが、いまだに時間かかってしまう。。
MacPortsでインストール
MacPortsの導入まではIT戦記を参照。
http://d.hatena.ne.jp/amachang/20090926/1253982602
パッケージは以下をインストール。
前回のようにシェルスクリプトで一気にインストール。
emacs install_ports.sh
list=" apache2 elk lv nkf tree rsync wget mysql5 +server postgresql83 +server curl +universal php5 +apache2 +fastcgi +macosx +mysql5 +pcntl +pear +readline +sqlite +postgresql83 php5-xdebug subversion +unicode_path " for i in $list do port -v install $i done
※2009/11/1追記
従来のようにmysql5 +server では動作しません。
上記に加え以下のパッケージをインストールする必要があります
参考→http://www.serendip.ws/archives/3234
- mysql5-server
- php5-mysql
- php5-postgresql
- php5-sqlite
実行
sudo sh ./install_ports.sh
apacheの設定
デーモンの起動
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
httpd.confの設定
sudo emacs /opt/local/apache2/conf/httpd.conf
DocumentRootを変更(変更は任意。ディレクトリ名をwwwにするのも任意)
DocumentRoot "/Users/tamac/www"
デフォルトではアクセス制限がかかっているので(apache2.2系かららしい)、
Deny from all をははずしてやる
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
# Deny from all
</Directory>
上記を設定しないとpermission deny が出てハマるときも。。↓
※2009/12/11追記
DocumentRootを変更した際はここも変更しないと。
<Directory "/opt/local/apache2/htdocs"> # # Possible values for the Options directive are "None", "All", # or any combination of: …
これを
<Directory "/Users/TamaC/www"> # # Possible values for the Options directive are "None", "All", # or any combination of: …
conf.d をIncludeする設定にはなっていないので、適当な場所に追加してやる
(htttpd.confに直接設定を記入していくのなら必要なし)
Include conf.d/*.conf
内容:
sudo mkdir -p /opt/local/apache/conf.d
sudo emacs /opt/local/apache/conf.d/php.conf
LoadModule php5_module modules/libphp5.so Include conf/extra/mod_php.conf
↑MacPortsやパッケージのバージョンによっても違うのかな。
自分はmacportsでphp +apache2を導入すると /opt/local/apache/conf/extra/mod_php.conf
がデフォルトで存在したが、前に使っていたPCでは/opt/local/apache/conf/extras-conf/mod_php.confとなっていた。
apacheのシンタックスチェック、再起動
/opt/local/apache2/bin/apachectl configtest
sudo /opt/local/apache2/bin/apachectl graceful
↓ようやくローカルで確認することができます
内容:
cd ~/www
emacs index.php
<?php phpinfo() ?>
php.iniの設定
タイムゾーン設定
date.timezone = Asia/Tokyo
エラーレベル設定
error_reporting = E_ALL
ここまでで、Noticeなどのエラーも出力されるように。(xdebug導入した)
mysqlの設定(パスワードの設定はなし)
初期化
sudo -u mysql mysql_install_db5
mysql起動
sudo /opt/local/share/mysql5/mysql/mysql.server start
※mysqlを動かそうとして以下のようなエラーが出たら、ソケットがない、所有者が違う、mysqlの再起動をしていない、の原因が多い。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (38)
↑の解消のため、socketをつくり、所有者をmysqlに設定する
sudo mkdir -p /opt/local/var/run/mysql5
sudo touch /opt/loacl/var/run/mysql5/mysqld.sock
sudo chown mysql:mysql /opt/local/var/run/mysql5/mysqld.sock
再起動
sudo /opt/local/share/mysql5/mysql/mysql.server restart
phpのほうでもsocketパスの設定をしておく
sudo emacs /opt/local/etc/php5/php.ini
; Default port number for mysql_connect(). If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
; http://php.net/mysql.default-port
mysql.default_port = /opt/local/var/run/mysql5/mysqld.sock; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysql.default-socket
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
ここまでで、mysqlを実際に操作することができるようになる。
↓
mysql5
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.40 Source distributionType 'help;' or '\h' for help. Type '\c' to clear the current input statement.
しかしこのままだとエンコードがlatin1になってるので、あとあと絶対困るのでmy.cnfで設定しておく。(最初はmy.cnfがないのでデフォルトのサンプルをコピーして編集)
[client]、[mysqld]の下にdefault-character-set = utf8を記入
sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /opt/local/etc/mysql5/my.cnf
sudo emacs /opt/local/etc/mysql5/my.cnf
default-character-set = utf8
あとは再起動。
sudo /opt/local/share/mysql5/mysql/mysql.server restart
これでmysql完了。
symfonyを入れる
symfonyチャンネル追加
sudo pear upgrade PEAR
symfonyインストール
sudo pear channel-discover pear.symfony-project.com
sudo pear install symfony/symfonydownloading symfony-1.2.9.tgz ...
Starting to download symfony-1.2.9.tgz (2,700,635 bytes)
..................................................................................................................................done: 2,700,635 bytes
install ok: channel://pear.symfony-project.com/symfony-1.2.9
セットアップ完了!