MacでWebサーバを立ち上げる方法!ローカルでApacheを起動してユーザーディレクトリを公開!
Apache
ターミナルを開いて下記のコマンドを打ち込むだけでApacheが起動します。
起動
sudo apachectl start
確認方法:http://localhost にアクセスして It works! が表示されれば起動されている。
ちなみにその他のコマンドは下記の通り。
停止
sudo apachectl stop
再起動
sudo apachectl restart
PHPを使えるようにする
Apacheの設定ファイルを変更する
設定ファイルの場所は、/etc/apache2/httpd.conf
これを、Visual Studio Codeで開く
ターミナル: (最初にsudoをつけた方が良いかも?)
code /etc/apache2/httpd.conf
bash: vscode: command not foundというメッセージが返ってくる場合
MacBookで上記メッセージが出ました。この場合はVisual Studio CodeのPATHを通す必要があります。
解決法(パスの通し方)は下記サイトを参照
https://qiita.com/ayatokura/items/69c96306e3dee501e19b
PHPの有効化
【Visual Studio Code】
#LoadModule php7_module libexec/apache2/libphp7.so
の先頭の#を消します。
設定ファイルを編集するときは書き込み権限の問題から、スーパーユーザーになる必要があるかもしれません。
具体的には、コマンドの前に su を付けます。
su code ***.cnf のような感じです。
VSCodeの保存時に、スーパーユーザーとして保存するようメッセージが出ましたので、選択肢から「Retry as Sudo・・・」を選んでパスワードを入力し、保存しました。
設定ファイルの更新内容を反映させるためにApacheを再起動
ターミナル:
sudo apachectl restart
参考サイト
https://qiita.com/shuntaro_tamura/items/bdabcb77926dc92617b1
上記サイトのvimまたはviの部分をcodeに置き換え、それ以外は記載の通り実行
(エディタとしてvimの代わりにVisual Studio Codeを使うため)
ユーザディレクトリの有効化
参考サイト
https://qiita.com/kanejun/items/4a94300c2e363f75dc29
ターミナル:設定ファイル/etc/apache2/httpd.confを、Visual Studio Codeでスーパーユーザーで開く
sudo code /etc/apache2/httpd.conf
【Visual Studio Code】mod_userdir.soをロードする行を有効化(#を取る)
#LoadModule userdir_module libexec/apache2/mod_userdir.so
【Visual Studio Code】userdir用の設定ファイルをインクルードするための行も有効化(#を取る)。
# User home directories Include /private/etc/apache2/extra/httpd-userdir.conf
なお、
# User home directories
の前の#を外すとシンタックスエラーが出た。
余計なところのコメントはずすとSyntax errorが出る
User takes one argument, Effective user id for this server
の前に行数も書かれているので、そこを確認
【Visual Studio Code】有効化(#を取る)。→もともと有効だった
LoadModule authz_core_module libexec/apache2/mod_authz_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so
ユーザ設定ファイルの読み込み設定
$ sudo vi /etc/apache2/extra/httpd-userdir.conf
UserDir Sites
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
</IfModule>
#Includeの前の#を取る
ターミナル:ユーザディレクトリの作成
mkdir ~/Sites
/etc/apache2/users/以下にユーザ単位の設定ファイルを作る
ターミナル:
sudo code /etc/apache2/users/ユーザ名.conf
【Visual Studio Code】/etc/apache2/users/
DocumentRoot "/Users/{username}/Sites/"
<Directory "/Users/{username}/Sites/">
AllowOverride All
Options Indexes FollowSymLinks Multiviews
Require all granted
</Directory>
昔の情報では1行目がありませんでしたが、現在1行目を追記しないと正しく動かなくなっています。
参考サイト
https://qiita.com/kanejun/items/4a94300c2e363f75dc29
PHPが動いているか確認する
参考サイト
https://www.adminweb.jp/apache/php/index4.html
テキストエディタで下記のように記述、例えばphpinfo.phpという名で保存。
<?php phpinfo(); ?>
保存したファイルはApacheのドキュメントルートに配置。
「http://localhost/phpinfo.php」へアクセスしてPHPに関する情報が表示されればOK.
ファイルに記載した内容がそのままブラウザに表示されるなど、上記と異なる動きをした場合は、PHPが動いていない。
補足:
コマンドライン・テキストエディタについて
上記ではエディタにVSCodeを使いました。他のCLIエディタもあります。

コメント
コメントはまだありません。