2011年7月16日土曜日

macにapache、mysql、phpをインストールしてWeb開発

macでWeb開発をするときにいつもやってることメモ。

いわゆるMAMPとかを使わずに、apache、mysql、phpをインストールしてローカルで開発する手順です。自分用。
ドメインをhostsに設定して切り替えて開発します。

・ MacPortsを最新版にアップデートしておく
$ sudo port -d selfupdate
$ sudo port -d sync
・ apacheを入れる
$ sudo port install apache2
・ MySQLを入れる
$ sudo port install mysql5 mysql5-server
・ phpを入れる。オプションでpearとか有効にしておく
$ sudo port -d install php5 +apache2 +curl +mysql5 +pear +mbstring
・apache moduleのphp5を有効に。
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" /opt/local/apache2/modules/libphp5.so
[activating module `php5' in /opt/local/apache2/conf/httpd.conf]


・MysqlのDBをセットアップ
$ sudo -u mysql mysql_install_db5
・サーバの起動
$ sudo /opt/local/share/mysql5/mysql/mysql.server restart
・Mysqlのパスワードを設定(以下はrootアカウントを設定する場合)
$ /opt/local/lib/mysql5/bin/mysqladmin -u root password '*********'
・Mysqlにログインしてみる
$ /opt/local/lib/mysql5/bin/mysql -u root -p


・apacheのconfigを修正
$ sudo vim /opt/local/apache2/conf/httpd.conf
httpd.conf
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

<IfModule mime_module>
    AddType application/x-httpd-php .php .html .htm
</IfModule mime_module>

# これをやらないと.htaccessが有効にならない
<Directory "/opt/local/apache2/htdocs">
    AllowOverride All
</Directory>

# Virtual hosts
Include conf/extra/httpd-vhosts.conf


・apacheのVirtualHostを設定
$ sudo cp /opt/local/apache2/conf/extra/httpd-vhosts.conf /opt/local/apache2/conf/extra/httpd-vhosts.conf_bak
$ sudo vim /opt/local/apache2/conf/extra/httpd-vhosts.conf
httpd-vhosts.conf(※hogehoge.comを適当に読み替え)
#
# Virtual Hosts
#
NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/opt/local/apache2/htdocs/phpmyadmin"
    ServerName phpmyadmin
    ErrorLog "/opt/local/apache2/logs/error_log"
    CustomLog "/opt/local/apache2/logs/error_log" common

    <Directory "/opt/local/apache2/htdocs/phpmyadmin">
        Order deny,allow
        Allow from All 
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/opt/local/apache2/htdocs/hogehoge.com"
    ServerName hogehoge.com
    ServerAlias www.hogehoge.com
    ErrorLog "/opt/local/apache2/logs/hogehoge.com/error_log"
    CustomLog "/opt/local/apache2/logs/hogehoge.com/access_log" common

    <Directory "/opt/local/apache2/htdocs/hogehoge.com">
        Order deny,allow
        Allow from All 
    </Directory>
</VirtualHost>
・ログ用ディレクトリを作る
$ sudo mkdir /opt/local/apache2/logs/hogehoge.com
$ sudo chmod 777 /opt/local/apache2/logs/hogehoge.com
・apache再起動など
$ sudo /opt/local/apache2/bin/apachectl start
$ sudo /opt/local/apache2/bin/apachectl stop
$ sudo /opt/local/apache2/bin/apachectl restart


・MySQL用の設定を変更
$ sudo vim /opt/local/etc/mysql5/my.cnf
my.cnf
[mysqld]
max_allowed_packet=256M

・MySQL再起動など
$ sudo /opt/local/share/mysql5/mysql/mysql.server restart
(※必要ならばDB流しこみ)
$ sudo /opt/local/lib/mysql5/bin/mysql -uroot -p****** dbname < ~/hogehoge.sql


・pear関連
$ sudo pear install Cache_Lite
など。

・PHP Extension関連
$ sudo port install php5-mbstring
$ sudo port install php5-curl
$ sudo port install php5-mysql
$ sudo port install php5-iconv
($ sudo port install php5-imagick)

・hostsを編集
$ sudo vim /etc/hosts
/etc/hosts
127.0.0.1   localhost
127.0.0.1   phpmyadmin
127.0.0.1   hogehoge.com

・phpmyadminを設定
$ chmod 777 /opt/local/apache2/htdocs/
phpmyadminを落としてくる(今回は phpMyAdmin-3.4.3.1-all-languages )
$ mv ~/Downloads/phpMyAdmin-3.4.3.1-all-languages /opt/local/apache2/htdocs/.
$ cd /opt/local/apache2/htdocs/
$ ln -s phpMyAdmin-3.4.3.1-all-languages phpmyadmin


・phpの設定ファイルを修正
$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
$ sudo vim /opt/local/etc/php5/php.ini
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
short_open_tag = On