MacでWebサーバを立ち上げる方法!ローカルでApacheを起動してユーザーディレクトリを公開!

U3
2020/7/14
2024/11/7

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エディタもあります。


コメント

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