ホーム » ブログ » Mac OS X LionでApache、PHP、MySQLを動かす

Mac OS X LionでApache、PHP、MySQLを動かす

Mac OS X LionでApache、PHP、MySQLを動かす

Mac OS X LionでApache、PHP、MySQLを動かす方法です。

目次



環境

Mac OS X 10.7.2
Apache 2.2.20
PHP 5.3.6
MySQL 5.1.57


1.PHPの有効化とApacheの起動

1-1.httpd.confの編集

まずは、httpd.confからみていきましょう。httpd.confの場所は以下です。
/etc/apache2/httpd.conf

管理者権限が必要なのでsudoでエディタ(例ではvi)を実行します。
$ sudo vi /etc/apache2/httpd.conf

httpd.conf内の以下の行のコメントアウトを解除(先頭の#を削除)して、PHPを有効にします。
1
#LoadModule php5_module libexec/apache2/libphp5.so

1-2.Apacheの起動

「システム環境設定」 > 「共有」を開き、サービス一覧にある「Web共有」にチェックを入れます。


NOTE
2012年08月28日追記
OS X Mountain Lionでは、「Web共有」の項目がなくなってました。

以下、Appleのサイトから抜粋。
OS X Mountain Lion では、システム環境設定の「共有」パネルに Web 共有のオプションが含まれていません。Mountain Lion には、オープンソースの Web サーバ「Apache HTTP Server」が含まれています。Apache を有効にする方法および使い方については、http://httpd.apache.org を参照してください。
OS X Mountain Lion:Web 共有のオプション

ですので、OS X Mountain Lionをお使いの場合は、以下のコマンドをターミナルから実行してApacheを起動してください。
$ sudo /usr/sbin/apachectl start

1-3.PHPの動作確認

Apacheが起動したので、ドキュメントルートに簡単なPHPプログラムを作成して確認します。

初期状態のドキュメントルートは/Library/WebServer/Documentsになるので、その直下に、test.phpというファイルを作成します。

/Library/WebServer/Documents/test.php
1
<php phpinfo; ?>

test.phpをブラウザで表示してみましょう。


以下のようにPHPの設定情報が表示されたら成功です。



1-4.Apacheのコマンド(起動/終了/再起動)

起動
$ sudo /usr/sbin/apachectl start

停止
$ sudo /usr/sbin/apachectl stop

再起動
$ sudo /usr/sbin/apachectl restart


2.パーソナルWEBサイト

パーソナルWEBサイト(http://localhost/~username/)の動作も確認してみましょう。

usernameの部分をご自身のユーザー名に置き換えてください。

パーソナルWEBサイトのドキュメントルートは以下です。
/Users/username/Sites

ドキュメントルートに確認用のindex.htmlを作成します。

/Users/username/Sites/index.html
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>My Site.</title>
</head>
<body>
<p>My Site.</p>
</body>
</html>

パーソナルWEBサイト用のhttpd.confが存在しているか確認してください。

/etc/apache2/users/username.conf
1
2
3
4
5
6
<Directory "/Users/username/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

※上記ファイルが存在しない場合は作成してください。
※作成後、Apacheの再起動も忘れないように。

パーソナルWEBサイトをブラウザで確認します。

先ほど作成したindex.htmlが表示されたら成功です。
NOTE
パーソナルWEBサイト用のhttpd.confを設置しても403 Forbiddenになる場合は、ホームディレクトリの権限を適宜変更します(Apacheユーザーがファイルにアクセスできればよいので、例えば、755など)。
Forbidden
You don’t have permission to access /~username/ on this server.
$ sudo chmod 755 /Users/username

3.バーチャルホストの設定

バーチャルホストも設定してみます。

例として、http://my-1st-domain.comとhttp://my-2nd-domain.comの2つのサイトを設定します。

サイト用のディレクトリを作成します。
$ mkdir /Users/username/my-1st-domain
$ mkdir /Users/username/my-2nd-domain
※/Users/usernameディレクトリ以外でも可です。

ついでに、確認用のindex.htmlも作成しておきます。

/Users/username/my-1st-domain/index.html
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>My 1st domain.<title>
</head>
<body>
<p>My 1st domain.</p>
</body>
</html>

/Users/username/my-2nd-domain/index.html
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>My 2nd domain.<title>
</head>
<body>
<p>My 2nd domain.<p>
</body>
</html>

/etc/apache2/httpd.confの以下の行のコメントアウトを解除します。(先頭の#を削除)
1
#Include /private/etc/apache2/extra/httpd-vhosts.conf

続いて、/etc/apache2/extra/httpd-vhosts.confを開き、以下の設定を追加します。

/etc/apache2/extra/httpd-vhosts.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<VirtualHost *:80>
    ServerAdmin webmaster@my-1st-domain.com
    DocumentRoot "/Users/username/my-1st-domain"
    ServerName my-1st-domain.com
    ErrorLog "/private/var/log/apache2/my-1st-domain.com-error_log"
    CustomLog "/private/var/log/apache2/my-1st-domain.com-access_log" common
    <Directory "/Users/username/my-1st-domain/">
        order deny,allow
        allow from All
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@my-2nd-domain.com
    DocumentRoot "/Users/username/my-2nd-domain"
    ServerName my-2nd-domain.com
    ErrorLog "/private/var/log/apache2/my-2nd-domain.com-error_log"
    CustomLog "/private/var/log/apache2/my-2nd-domain.com-access_log" common
    <Directory "/Users/username/my-2nd-domain/">
        order deny,allow
        allow from All
    </Directory>
</VirtualHost>

hostsファイルに以下を追加します。

/etc/hosts
1
2
127.0.0.1 my-1st-domain.com
127.0.0.1 my-2nd-domain.com

Apacheを再起動します。
$ sudo /usr/sbin/apachectl restart

2つのサイトをブラウザで確認してみます。

それぞれ、「My 1st domain.」、「My 2nd domain.」と表示されたら成功です。


4.MySQLのインストール

4-1.インストール

今回はMacPortsでインストールします。
$ sudo port install mysql5-server
2012/12/22追記
MacPortsをインストールする場合はこちらを参考にしてみてください。

4-2.初期化

$ sudo -u _mysql mysql_install_db5

4-3.起動

$ sudo /opt/local/share/mysql5/mysql/mysql.server start

4-4.接続確認

$ mysql5 -u root

4-5.自動起動設定

$ sudo port load mysql5-server


5.PHPからMySQLへの接続

5-1.mysqld.sockの確認

MySQLに接続後、statusコマンドでmysqld.sockの場所を確認します。
mysql> status

(中略)

UNIX socket: /opt/local/var/run/mysql5/mysqld.sock

(中略)


5-2.php.iniの編集

php.iniに書き込み権限を与えエディタで開きます。
$ sudo chmod u+w /etc/php.ini

mysql.default_socketの値に上記mysqld.sockまでのパスを指定します。

/etc/php.ini
1
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock

Apacheを再起動させます。
$ sudo /usr/sbin/apachectl restart

5-3.接続確認

接続確認用のPHPプログラムをドキュメントルートに用意します。

/Users/username/Sites/test_mysql.php
1
2
3
4
5
6
<?php
if (!$conn = mysql_connect('localhost', 'root', '')) {
    die('MySQL接続失敗');
}
echo 'MySQL接続成功';
mysql_close($conn);

ブラウザで確認しましょう。

「MySQL接続成功」と表示されたら成功です。

以上です。詳細な設定は各自にお任せします。

お疲れ様でした。
前の記事 «
次の記事 »