この記事は Mac OS X 10.6 Snow Leopard に Apache,PHP,MySQL を MacPorts を使ってインストールしたときのメモ書きです。
環境
- Mac OS X 10.6 Snow Leopard
- MacPorts 2.0.2
- Apache2
- PHP5.3
- MySQL5.1
目次
- Xcodeのインストール
- MacPortsをインストール
- apache,php,mysqlをインストール
- apache2の初期設定
- mysqlの初期設定
- phpの初期設定
- apache,mysqlの起動について
- phpmyadminをインストール
Xcodeのインストール
MacPortsのインストールにはXcodeが必要です。先にXcodeのインストールを済ませておきます。
Xcodeのダウンロードとインストール方法は下記の記事をご覧ください。
-
MacBook Air Snow LeopardにXcodeをインストールする
環境 MacBook Air 2010年版Mac OS X 10.6 Snow Leopard Apple Develo ...
続きを見る
MacPortsをインストール
MacPortsのインストール方法は下記の記事をご覧ください。
-
MacPortsの使い方まとめ
MacPorts の使い方をまとめました MacPortsをインストールする MacPortsはapt-getやyumの ...
続きを見る
apache,php,mysqlをインストール
apacheをインストール
$ sudo port install apache2
mysqlをインストール
$ sudo port install mysql5-server
phpをインストール
$ sudo port install php5 +apache2 +pear php5-mysql php5-mbstring php5-mcrypt php5-gd
phpの拡張モジュールはひとまず開発でよく使うものをインストールします。その他は必要になったら別途インストールします。
apache2の初期設定
apacheからphpを使うため拡張子の追加
apacheからphpを使うため拡張子を追加します。
httpd.confに下記を追加します。
$ sudo vi /opt/local/apache2/conf/httpd.conf
<IfModule mime_module>
...
AddType application/x-httpd-php .php
...
</IfModule>
php5用モジュールの追加
下記コマンドを実行します。
cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
実行すると、httpd.confのLoadModuleの所に下記が追加されます。
LoadModule php5_module modules/libphp5.so
index.phpを省略可能に
デフォルトの状態ではindex.phpを省略できないので設定します。
$ sudo vi /opt/local/apache2/conf/httpd.conf
<IfModule dir_module>
#DirectoryIndex index.html
DirectoryIndex index.html index.php
</IfModule>
ServerNameの設定
ServerNameをlocalhostに設定しておきます。apache起動時に下記のエラーが出るためです。
httpd: Could not reliably determine the server's fully qualified domain name, using マシン名.local for ServerName
$ sudo vi /opt/local/apache2/conf/httpd.conf
#ServerName www.example.com:80~
ServerName localhost:80
ドキュメントルートの変更
macportsでインストールしたapacheのドキュメントルートは/opt/local/apache2/htdocs/です。私はドキュメントルートを/Users/ユーザー名/Sitesに変更しています。
$ sudo vi /opt/local/apache2/conf/httpd.conf
#DocumentRoot "/opt/local/apache2/htdocs"
DocumentRoot "/Users/ユーザー名/Sites"
#<Directory "/opt/local/apache2/htdocs">
<Directory "/Users/ユーザー名/Sites">
.htaccessによる設定上書きを許可
$ sudo vi /opt/local/apache2/conf/httpd.conf
<Directory "/Users/ユーザー名/Sites">
...
#AllowOverride None
AllowOverride All
...
</Directory>
mysqlの初期設定
PATHを通す
mysqlコマンドのPATHを通します。
.bash_profileに下記を記述。
$ vi ~/.bash_profile
PATH=$PATH:/opt/local/lib/mysql5/bin
export PATH
mysqlデータベースの初期化
$ sudo -u mysql mysql_install_db5
mysql起動
$ sudo /opt/local/share/mysql5/mysql/mysql.server start
rootユーザーのパスワードを変更
$ sudo mysqladmin -u root password '新しいパスワード'
my.cnfの設置
サンプルで用意されたものをベースとして使用します。
私の環境はそれほどスペックがよくないのでmy-small.cnfを選択しました。
$ sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /opt/local/etc/mysql5/my.cnf
my.cnfの編集
MySQLのバージョンは5.1です。ご注意ください。
デフォルトの文字コードをUTF-8に設定しておくと、後々文字化け問題に悩まされにくくなります。
私は下記を追記しています。
$ sudo vi /opt/local/etc/mysql5/my.cnf
[client]
default-character-set=utf8
[mysqld]
default-character-set = utf8 skip-character-set-client-handshake default-storage-engine = innodb
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
phpの初期設定
php.iniの設置
サンプルで用意されたものをベースとして使用します。
developmentをコピーします。
$ sudo cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini
デフォルトのままだと不都合が生じる場合があるのでphp.iniの設定を書き換えます。
timezoneの設定
php5.3以降ではtimezoneの設定が必要です。
$ sudo vi /opt/local/etc/php5/php.ini
[Date]
date.timezone = Asia/Tokyo
mbstringの設定
mbstringで用いる文字エンコーディングはデフォルトではEUCですが、EUCを扱う必要性がなければUTF8に変更したほうが何かと都合がいいです。
$ sudo vi /opt/local/etc/php5/php.ini
[mbstring]
mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_output = UTF-8
mysqlの設定
mysqliのsocketのパスを指定します。下記3箇所を書き換えます。
$ sudo vi /opt/local/etc/php5/php.ini
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
apache,mysqlの起動について
私は、apache,mysqlを必要なときに手動で起動しています。
apache起動
$ sudo /opt/local/apache2/bin/apachectl start
apache停止
$ sudo /opt/local/apache2/bin/apachectl stop
mysql起動
$ sudo /opt/local/share/mysql5/mysql/mysql.server start
mysql停止
$ sudo /opt/local/share/mysql5/mysql/mysql.server stop
.bashrcにaliasを設定して簡単に起動できるようにしています。
$ vi ~/.bashrc
alias startapache='sudo /opt/local/apache2/bin/apachectl start'~
alias stopapache='sudo /opt/local/apache2/bin/apachectl stop'~
alias restartapache='sudo /opt/local/apache2/bin/apachectl restart'~
alias startmysql='sudo /opt/local/share/mysql5/mysql/mysql.server start'~
alias stopmysql='sudo /opt/local/share/mysql5/mysql/mysql.server stop'~
phpmyadminをインストール
インストール
$ sudo port install phpmyadmin
configファイルの設置
$ cd /opt/local/www/phpmyadmin/
$ sudo cp config.sample.inc.php config.inc.php
phpmyadminを動作させる
http://localhost/phpmyadmin/のurlでアクセスできるようにします。
IfModule alias_moduleの中に下記をphpmyadminのaliasを追加します。
ScriptAliasより上に書かないとエラーとなります。
$ 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>