Help us understand the problem. What is going on with this article?

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

More than 5 years have 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を再起動してください。

is0me
ベトナムで働くエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away