OS X Yosemiteでlocalhostを使えるようにするための各種設定

OSXをMavericksからYosemiteにアップグレードした際に、Apacheのバージョン違いのためにlocalhostが動かなくなってしまい、復旧するための各種設定でつまづいたので、httpd.confとかhttpd-vhosts.confあたりの設定を備忘録的にまとめてみました。

はじめに

設定する項目は、以下になります。

  • Apache を自動で起動させるようにする
  • PHP を使えるようにする
  • ~/Sites(~/サイト)を使えるようにする
  • バーチャルホストを使えるようにする
  • SSI を使えるようにする

編集するファイルは以下になります。

  • httpd.conf
  • httpd-userdir.conf
  • {username}.conf
  • httpd-vhosts.conf

なお、各ファイルの編集はvimを使用しています。
ターミナルで、以下のようにして編集してください。

$ sudo vim /etc/apache2/{filename}

上記コマンド入力後、ファイルが表示されたら、[A]キーを押すと編集開始、[esc]+[:]+[w]+[return]で保存、[esc]+[:]+[q]+[return]で編集終了です。省略して[esc]+[:]+[w]+[q]+[return]としても大丈夫みたいです。

Apache

Yosemiteにははじめからインストールされていますが、これを自動的に起動させるために、ターミナルで以下のコマンドを入力します。

$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist

手動で(再)起動させる時は、以下のコマンドを入力します。

$ sudo apachectl restart

このコマンドは、各種ファイルを編集した際にApacheに反映されているかを確認するためによく使います。

Apacheが起動しているかどうかチェック

http://localhost/ にアクセスして、「It works!」が出ればOK。

httpd.conf を編集する

Apacheの起動が確認できたら、次はhttpd.confを編集します。
ここでPHPやバーチャルホスト等を使うための設定をして行きます。

ファイルの場所

/etc/apache2/httpd.conf

変更箇所

103、160、166、168、169行目あたりにある以下のコメントアウトを外す

#LoadModule include_module libexec/apache2/mod_include.so
#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
#LoadModule userdir_module libexec/apache2/mod_userdir.so
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
#LoadModule php5_module libexec/apache2/libphp5.so

↓
LoadModule include_module libexec/apache2/mod_include.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php5_module libexec/apache2/libphp5.so

212行目あたりのServerNameのコメントアウトを外して編集

#ServerName www.example.com:80
↓
ServerName {※自分の場合:PCのlocal IPに変更}

※この部分、Apacheのconfigtestで出るエラーを回避するために編集しましたが、Mavericksではエラーは出るものの触らなくても大丈夫だったので、この編集は必要ないかもしれません。

221、222行目あたり Directoryの内容を編集

AllowOverride none
Require all denied
↓
AllowOverride all
Require all granted

250行目あたり、OptionsにIndexes、Includesを追加

Options FollowSymLinks Multiviews
↓
Options FollowSymLinks Multiviews Indexes Includes

430、431行目あたりにある以下のコメントアウトを外してSSIを有効に、さらに.htmlも有効にする

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
↓
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml .html

493、499行目あたりのコメントアウトを外す

#Include /private/etc/apache2/extra/httpd-userdir.conf
#Include /private/etc/apache2/extra/httpd-vhosts.conf
↓
Include /private/etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf

httpd-userdir.conf を編集する

ファイルの場所

/etc/apache2/extra/httpd-userdir.conf

変更箇所

16行目 コメントアウトを外す

#Include /private/etc/apache2/users/*.conf
↓
Include /private/etc/apache2/users/*.conf

ユーザーのホームにSitesフォルダを作成する

ユーザーのホームにSites(サイト)フォルダがない場合、以下のコマンドを入力します。

$ mkdir ~/Sites

{username}.conf を作成・編集する

作成する場所

/etc/apache2/users/{username}.conf

{username}.conf を作成する

以下のコマンドを入力して、{username}.conf を作成します。

$ sudo vim /etc/apache2/users/{username}.conf

{username}.conf を編集する

以下のように書き込みます。
{username} 以外はコピペしても良いかと思います。

<Directory "/Users/{username}/Sites">
   AddType text/html .shtml .html
   AddHandler server-parsed .shtml .html
   Options Indexes MultiViews FollowSymlinks Includes
   AllowOverride all
   Require all granted
</Directory>

AddTypeとAddHandler、それとOptionsのIncludesはSSIを使うための記述なので、必要なければトルツメでも構いません。

httpd-vhosts.conf を編集する

ファイルの場所

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

編集内容

以下のような内容を追記します。
私の場合、~/Sites 以下に複数のバーチャルホストを作成するので、下記の体裁で必要な分追記していきます。

下記ではポートを変更していませんが、ウチでは [http://localhost:80xx] として使用しているので、[:80] を[:80xx] のように変更しています。

また、httpd.conf にも[Listen 80] の下に [Listen 80xx] を必要な分だけ追記しています。
なお、[Options] はSSIを使うための記述なので、必要なければトルツメで。

<VirtualHost *:80>
    DocumentRoot "/Users/{username}/Sites/yourdocs"
    ServerName {yourservername}
    <Directory "/Users/{username}/Sites/yourdocs">
        Require all granted
        DirectoryIndex index.html
        Options Includes
    </Directory>
</VirtualHost>

さいごに

Apacheを再起動して確認します。

$ sudo apachectl restart

各設定が反映させているか確認できればおしまい。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする