MacでApache+PHPの環境を構築する

  • 186
    Like
  • 2
    Comment
More than 1 year has passed since last update.

MAMPを使わず標準でインストールされているApacheとPHPを使い、複数のWEBサイトをローカルで開発できるようにします。

MAMPを使っている場合は、停止させること。

Apacheの設定

複数のWEBサイトをローカルで開発できるようにするには、以下のファイルを設定する必要があります。

/etc/apache2/httpd.conf
/etc/hosts
/etc/apache2/extra/httpd-vhosts.conf

まずは、Apacheの起動です。

$ sudo /usr/sbin/apachectl start

1. /etc/apache2/httpd.confの設定

ApacheでPHPを有効にしつつ、複数サイトを動かすための設定を行います。

$ sudo vi /etc/apache2/httpd.conf

1-1. PHP5モジュールを有効化する

コメントアウトを外してPHPを有効化します。

- #LoadModule php5_module libexec/apache2/libphp5.so
+ LoadModule php5_module libexec/apache2/libphp5.so

1-2. バーチャルホスト設定を有効化する

コメントアウトを外し、後述するバーチャルホストの設定を有効化します。

# Virtual hosts
- #Include /private/etc/apache2/extra/httpd-vhosts.conf
+ Include /private/etc/apache2/extra/httpd-vhosts.conf

2. /etc/hostsの設定

特定のドメイン名は、ネットではなくローカルを参照するようにします。

2-1. アクセスする時の名前を追記

$ sudo vi /etc/hosts

例えば以下のように書くと、sandbox.localhostでアクセスできるようになります。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost

127.0.0.1 sandbox.localhost

2-2. /etc/apache2/extra/httpd-vhosts.confの設定

バーチャルホストの設定です。

以下をhttpd-vhosts.confに追記し、サイトのパス(/Users/is0me/Dev/sandbox)を自分のパスに書き換えてください。

先ほど/etc/hostsに追記した名前をServerNameに指定します。

そして、参照先ディレクトリをDocumentRootに指定します。

<VirtualHost *:80>
    DocumentRoot "/Users/is0me/Dev/sandbox"
    ServerName sandbox.localhost
    ErrorLog "/private/var/log/apache2/sandbox-error_log"
    CustomLog "/private/var/log/apache2/sandbox-access_log" common
    DirectoryIndex index.php index.html

    <Directory "/Users/is0me/Dev/sandbox">
        Options Includes ExecCGI FollowSymLinks
        AllowOverride All    
        order deny,allow
        allow from All
    </Directory>
</VirtualHost>

確認

DocumentRootに指定したディレクトリにテストファイルを作ってください。

$ touch /Users/is0me/Dev/sandbox/index.php && echo '<?php phpinfo();' >> /Users/is0me/Dev/sandbox/index.php

Apacheを再起動

$ sudo /usr/sbin/apachectl restart

sandbox.localhostへアクセスして、phpinfoが表示されたら完了です。

完了後にサイトを追加する場合

/etc/hostsとhttpd-vhosts.confに追記しApacheを再起動してください。