XAMPP を Mac にインストール
以下は Mac OSX 環境への XAMPP(XAMPP for OS X)のインストール方法と基本的な使い方についての覚書です。
XAMPP は無償で使える MariaDB、PHP、および Perl を含んだ Apache ディストリビューションで簡単にローカル環境を構築することができます。
MariaDB は MySQL から派生したデータベースで利用出来るコマンドはほぼ同じです。
Mac OSX 環境に簡単にローカル環境を構築するには他に MAMP を使うこともできます。
関連ページ:MAMP のインストールと初期設定
XAMPP の Mac 版には、XAMPP for OS X と XAMPP-VM が配布されています。
XAMPP for OS X は /Applications/XAMPP フォルダに直接 XAMPP をインストールしますが、XAMPP-VM は Mac 上に Linux 仮想マシン(VM)を構成してインストールします。
以下は、XAMPP for OS X についての説明です。
作成日:2020年4月13日
XAMPP のダウンロード
XAMPP のダウンロードページ(https://www.apachefriends.org/download.html)に Mac 版のリストがあります。
XAMPP for OS X と XAMPP-VM(VM 版)の複数のバージョンが表示されています。サイズの軽いほうが XAMPP for OS X になります。
ファイル名は例えば、xampp-osx-7.4.4-0-installer.dmg のように最後が -installer.dmg となっています(VM 版の方は 最後が -vm.dmg となっています)。
使用したいバージョンのダウンロードボタン Download (64bit) をクリックするとファイルをダウンロードすることができます。
XAMPP のインストール
ダウンロードしたインストーラのファイル(例:xampp-osx-7.4.4-0-installer.dmg)をダブルクリックすると以下が表示されるので、XAMPP.app をダブルクリックします。
以下が表示されるので「開く」をクリックします。
パスワードを求められるので入力して「OK」をクリックします。
「Next」をクリックします。
インストールするコンポーネントの選択画面が表示されるので、特に理由がなければデフォルトのまま「Next」をクリックします。
/Applications/XAMPP フォルダにインストールされると表示されるので「Next」をクリックします。
以下の画面が表示されます。「Learn more about Bitnami for XAMPP」にチェックが入っているとその説明が表示されるので、チェックを外して「Next」をクリックします。
XAMPP のインストール開始の確認画面が表示されるので、「Next」をクリックするとインストールが開始されます。
インストールには少なくとも数分はかかります。
しばらくするとインストールが完了して以下のような表示になります。
「Launch XAMPP」にチェックが入っている状態で「Finish」をクリックすると XAMPP が起動します。
Manage Servers のタブをクリックすると、Apache や MySQL を停止したり起動することができます。
また、インストールが完了するとアプリケーションフォルダ(Applications)には XAMPP のフォルダが作成されています。
XAMPP フォルダの中は以下のようになっていて、XAMPP の起動(manager-osx.app)のショートカットなどが入っています。
- manager-osx.app のエイリアス:ダブルクリックすると XAMPP を起動します
- bin や htdocs などのエイリアス:それぞれのフォルダへのショートカット
- xamppfiles フォルダ:実際の bin や htdocs などのフォルダが格納されているフォルダ
- uninstall.app:XAMPP の削除に使うアンインストーラー
xamppfiles フォルダの中には以下のようになっています。
XAMPP の使い方
LaunchPad の「XAMPP(その他)」というフォルダの manager-osx や /Applications/XAMPP/manager-osx.app または /Applications/XAMPP/xamppfiles/manager-osx.app をダブルクリックすることで XAMPP を起動することができます。
XAMPP を起動すると Application Manager が開きます。
右下の「Go to Application」をクリックすると、ブラウザが起動して XAMPP のダッシュボード(http://localhost/dashboard/)が開きます。
右上の「PHP Info」をクリックすると、PHP Info のページが開くので システムや Apache、PHP、MySQL(Maria DB)の各種情報を確認することができます。
「phpMyAdmin」をクリックすると phpMyAdmin が開きます。
但し、まだ MySQL Database(Maria DB)を起動していない場合は、以下のように接続エラーのページが表示されます。
バーチャルホストの設定
例えば、ローカル環境(MAMP や XAMPP)で htdocs に example と言うフォルダを配置してブラウザでアクセスする場合、通常 http://localhost/example/ と言う URL になります。
これを http://example.localhost/ と言う URL でアクセスできるようにするにはバーチャルホストと言う機能を利用します。
Virtual hosts の有効化
バーチャルホストを利用するには httpd.conf ファイルを編集して Virtual hosts の機能を有効化する必要があります。
XAMPP の場合、/Applications/XAMPP/xamppfiles/etc/httpd.conf にファイルがあるので httpd.conf をテキストエディターで開いて編集します。または「Apache Web Server」の「Open Conf File 」をクリックしても httpd.conf を開くことができます。
デフォルトでは、おそらく以下のように Virtual hosts の次の行の Include ... がコメントアウトされているので、その場合はコメントアウトを外します。
# Virtual hosts #Include etc/extra/httpd-vhosts.conf
以下のように変更して(httpd-vhosts.conf を読み込むようにして)保存します。
# Virtual hosts Include etc/extra/httpd-vhosts.conf
httpd-vhosts.conf の編集
上記で読み込みを有効にした httpd-vhosts.conf をテキストエディターで開いて編集します。
httpd-vhosts.conf は /Applications/XAMPP/xamppfiles/etc/extra/httpd-vhosts.conf にあります。
ファイルを開くと最後の方に以下のようなバーチャルホストの設定サンプルが記載されています。
# VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/Applications/XAMPP/xamppfiles/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/Applications/XAMPP/xamppfiles/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common </VirtualHost>
バーチャルホストの設定 <VirtualHost *:80>〜</VirtualHost> は複数設定することができます。
設定項目は、少なくとも DocumentRoot と ServerName は指定する必要があります。
- DocumentRoot:サイトのディレクトリのパス
- ServerName:ローカル環境でアクセスしたいホスト名(URL)
また、以下の例の場合 *:80 としてあるのでポート 80 を指定してある必要があります(Apache Web Server)。
以下は追加例です(URL を http://example.localhost/ でアクセスできるようにする場合)。
<VirtualHost *:80> DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/example" ServerName example.localhost </VirtualHost>
ドキュメントルートを変更している場合など環境によっては、<Directory> ディレクティブを使った以下のような記述の追加が必要かも知れません。
<Directory "/path/to/directory"> #上記と同じパス order deny,allow allow from ALL </Directory>
hosts ファイルの編集
hosts ファイルを編集してホスト名と IP アドレスをマッピングします。
hosts ファイルは隠しファイルになっているので、Shift + Command + . を押して表示させることができます。
ファイルの場所は /private/etc/hosts になります。
private └── etc └── hosts
hosts ファイルを開くと初期状態ではおそらく以下のようになっていると思います。
## # 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
このファイルにホストを追加します。
テキストエディタで編集
テキストエディタで編集するには、一度デスクトップなどにファイルをコピーして編集します。IP アドレス(127.0.0.1)とホスト名を追加します。
## # 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 127.0.0.1 example.localhost 127.0.0.1 foo.localhost #必要なだけ追加します
元の位置に戻して上書きします。
ファイルを上書きする際には以下のようなメッセージが表示されるので「認証」をクリックします。
続いて以下が表示されるので「置き換える」をクリックし、パスワードの入力を求められるので入力します。
ターミナルで編集
ターミナルを起動して sudo vi /private/etc/hosts と入力して enter を押すとパスワードを求められるので入力すると hosts ファイルが開きます。
i を押して INSERT モードにして矢印キーを使ってカーソルを一番下の右端まで移動し、改行して IP アドレスとホスト名を追加します。
IP アドレスとホスト名の間は tab キーを押すと適当なスペースが入力されます。
追加したら、esc キーを押して INSERT モードを終了し :wq と入力後 enter を押して保存します。
関連ページ:vim の基本的な使い方
Apache を再起動
Apache の設定ファイルを変更しらた、Application Manager の Manage Servers タブで Apache を再起動(Restart)します。設定した URL にアクセスできるようになっているかを確認します。
ターミナルから Apache を再起動することもできます。コマンドラインから Apache を制御するには apachectl コマンドを使用します。
XAMPP の場合、Apache のコマンドは /Applications/XAMPP/xamppfiles/bin/ に保存されています。
以下は XAMPP の Apache を再起動する例です。
sudo /Applications/XAMPP/xamppfiles/bin/apachectl restart Password: # パスワードを入力
Error 403 / Access Forbidden
以下は今回 Mac に XAMPP(7.4.4)をインストールして使用した際に発生した問題とその解決策です。
特定のディレクトリで 403 エラーが発生してページを表示することができない現象が発生しました。ページへアクセスすると以下のように表示されてしまいます。
Access forbidden!
要求されたディレクトリへのアクセス権限がありません。 インデックスドキュメントが存在しないか、 ディレクトリの読み込みが許可されていません。
サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。
Error 403
localhost
Apache/2.4.41 (Unix) OpenSSL/1.1.1e PHP/7.4.4 mod_perl/2.0.8-dev Perl/v5.16.3
また、WordPress をインストールする際に「wp-config.php ファイルに書き込みできません」という現象も発生しました。
上記に関しては wp-config.php を手動で作成して WordPress をインストールすることはできましたが、アップデートやプラグインをインストールしようとすると以下のような FTP 情報入力画面が表示されてしまいました。
アクセス権限の問題のようなので chmod コマンドでパーミッションの変更をしたり、chown コマンドでファイルの所有者を変更してみましたが現象は変わりませんでした。
解決策
httpd.conf の以下の User daemon(10行目)の daemon の部分を自分(Mac のユーザ名)に変更することで、上記の問題が全て解決しました。但し、これが正しい解決方法かどうかは定かではありません。
また、これにより次項のエラーが発生しました。
<IfModule unixd_module> # # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User daemon Group daemon </IfModule>
ユーザ名が foo であれば10行目を以下のように変更します。
<IfModule unixd_module> # # If you wish httpd to run as a different user or group, you must run # httpd as root initially and it will switch. # # User/Group: The name (or #number) of the user/group to run httpd as. # It is usually good practice to create a dedicated user and group for # running httpd, as with most system services. # User foo Group daemon </IfModule>
以下が参考にさせていただいたサイトです。
MacOS XAMPP Access Forbidden Error 403 - You don't have permission to access the requested directory
phpMyAdmin エラー
おそらく上記の変更により、今度は phpMyAdmin で以下のエラーが発生。
ls コマンドで確認すると以下のようになっていました。
ls -al /Applications/XAMPP/xamppfiles/phpmyadmin/tmp total 0 drwxrwxr-x 3 root daemon 96 4 13 14:33 . drwxrwxr-x 118 root admin 3776 4 13 16:29 .. drwxr-x--- 24 daemon daemon 768 4 13 14:33 twig
前項のエラーの対処で daemon を foo に変更したのが原因の可能性があるので、chown コマンドで phpmyadmin/tmp/twig のオーナーを Mac ユーザ(この例の場合は foo)に変更したらエラーが解消されました。こちらもこの方法が正しい解決方法かどうかは定かではありません。
sudo chown foo /Applications/XAMPP/xamppfiles/phpmyadmin/tmp/twig
ls -al /Applications/XAMPP/xamppfiles/phpmyadmin/tmp total 0 drwxrwxr-x 3 root daemon 96 4 13 14:33 . drwxrwxr-x 118 root admin 3776 4 13 16:29 .. drwxr-x--- 24 foo daemon 768 4 13 14:33 twig #変更