*559

Ventura local serve

プログラムとか全然興味ないけどwebページを作ったり、しょうがなくphpをちょっと触るような『必要だから設定しないといけないけどなぜそうするかはまったく興味がない』人向けのMacローカルサーバー設定の覚え書きメモです。
ここではmacOS Ventura(13.4)でローカルサーバーを動かしてphpの実行環境を作るまでの工程を記載。
なお個人的なニーズで、phpが動くこと以外にバーチャルホストの設定もしています。
なるべく簡素にわかりやすく・・・と思って書いてみるもめちゃくちゃわかりにくいっていう。
やっぱりこういうのはわかりにくいのがデフォルトやね。

なお状態は移行ツールで過去の設定を引き継いでるのが前提なのでここに書かれてることも環境による、となってしまうのがつらいところ。

phpを入れる、その前に…

どこかの段階でphpは入らなくなったらしいので別途インストールする必要がある。
ググった限りHomebrewで入れるのが簡単とあったのでそうする。
なお作業はほぼ全てターミナルから行う。
アプリケーション>ターミナル.appを立ち上げてコマンドラインでの作業になる。
またSitesフォルダがなくなってるので作っておく。
Sitesという名前じゃなくていいと思うけど他を試してないのでわからない。

1:Homebrewのインストール

ここのHomebrewサイトの説明を元にHomebrewをインストールする。
/bin/bas・・・とある部分をターミナルにコピペ。
パスワードを求められたら管理者パスワードを入れる。
完了まで待つと下記が出るのでパスを通すようにする。
(ユーザーフォルダ名)は環境によって違う。

==> Next steps: - Run these two commands in your terminal to add Homebrew to your PATH: (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/(ユーザーフォルダ名)/.profile eval "$(/opt/homebrew/bin/brew shellenv)" - Run brew help to get started - Further documentation: https://docs.brew.sh
ここは要するに下記のように入力すること。
profileファイルが作られて入力される。 echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/(ユーザーフォルダ名)/.profile 出来たらsource ~/.profileで反映させる。
profileなのかzprofileなのか環境によって違うみたい。
brew -vとコマンドラインで打って何か返ってきたらちゃんとインストールできてる。

2:phpのインストール

ここのページを参照した。
brew search phpでインストール可能なパッケージを探す
brew install php@8.0でインストールスタート
完了したら下記のように次にやることをお知らせしてくる。 To enable PHP in Apache add the following to httpd.conf and restart Apache: LoadModule php_module /opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp.so <FilesMatch \.php$>  SetHandler application/x-httpd-php </FilesMatch> Finally, check DirectoryIndex includes index.php DirectoryIndex index.php index.html The php.ini and php-fpm.ini file can be found in: /opt/homebrew/etc/php/8.0/ php@8.0 is keg-only, which means it was not symlinked into /opt/homebrew, because this is an alternate version of another formula. If you need to have php@8.0 first in your PATH, run: echo 'export PATH="/opt/homebrew/opt/php@8.0/bin:$PATH"' >> ~/.profile echo 'export PATH="/opt/homebrew/opt/php@8.0/sbin:$PATH"' >> ~/.profile For compilers to find php@8.0 you may need to set: export LDFLAGS="-L/opt/homebrew/opt/php@8.0/lib" export CPPFLAGS="-I/opt/homebrew/opt/php@8.0/include" To start php@8.0 now and restart at login: brew services start php@8.0 Or, if you don't want/need a background service you can just run: /opt/homebrew/opt/php@8.0/sbin/php-fpm --nodaemonize

2-1:LoadModule文の追加

To enable PHP in Apache add the following to httpd.conf and restart Apache: LoadModule php_module /opt/homebrew/opt/php@8.0/lib/httpd/modules/libphp.so httpd.confにLoadModule文を追加せよと言っている。だがこの通り書いても、homebrewがインストールしたlibphp.soに対して署名がないのでロードできないと言われるのでコード署名証明書を作成、紐付けする。
ここのページを参照した。

2-2:httpd.confの修正

<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> 上記をhttpd.confのどこかに書け、と。
場所はhttpd.confの中にFilesMatchの箇所がすでにあるので、そのブロックの下に追記した。

その他バーチャルホスト、SSLの設定用に下記も修正。

・SSIを有効(先頭の#を消す)
LoadModule include_module libexec/apache2/mod_include.so AddType text/html .shtml AddOutputFilter INCLUDES .shtml
・ユーザーディレクトリを有効化(これも先頭の#を消す)
LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf
・バーチャルホストを有効化(#消し)
Include /private/etc/apache2/extra/httpd-vhosts.conf
・ServerNameが設定できてないというエラー?警告?が出るので下記も修正
#ServerName www.example.com:8080 ServerName localhost:8080 ← この行を追記

2-3:環境変数の追加

下記をターミナルでコピペ。入力してリターンしたらsource ~/.profileしておく。 echo 'export PATH="/opt/homebrew/opt/php@8.0/bin:$PATH"' >> ~/.profile echo 'export PATH="/opt/homebrew/opt/php@8.0/sbin:$PATH"' >> ~/.profile ああ・・・これも同じ様にやったかな・・・あんまり覚えてねえわ(笑) export LDFLAGS="-L/opt/homebrew/opt/php@8.0/lib" export CPPFLAGS="-I/opt/homebrew/opt/php@8.0/include"

3:httpd-userdir.confを編集

sudo vi /private/etc/apache2/extra/httpd-userdir.conf この行から#を消す。 Include /private/etc/apache2/users/*.conf あとこれも必要らしいのでどこかに追記しておく。 UserDir enabled

4:ユーザーファイルの作成

(ユーザーフォルダ名)は環境によって違う。
sudo vi /private/etc/apache2/users/(ユーザーフォルダ名).conf
<Directory "/Users/(ユーザーフォルダ名)/sites"> Options Indexes FollowSymLinks Multiviews AllowOverride all Require all granted </Directory> 下記のように*で書いちゃうのが一番楽かな。 <Directory "/Users/*/sites"> Options Indexes FollowSymLinks Multiviews AllowOverride all Require all granted </Directory>

5:httpd-vhost.confを編集

sudo vi /private/etc/apache2/extra/httpd-vhosts.conf
下記設定を必要なだけ追加。ServerNameは後で使う。英語名だったらなんでもいいはず。 Listen 8080 <VirtualHost *:8080> DocumentRoot "/Users/(ユーザーフォルダ名)/Sites" ServerName (任意のサーバー名) <Directory "/Users/(ユーザーフォルダ名)/Sites"> Require all granted DirectoryIndex index.html Options Includes AddType text/html .html AddOutputFilter INCLUDES .html </Directory> </VirtualHost> Listen 8081 <VirtualHost *:8081> DocumentRoot "/Users/(ユーザーフォルダ名)/Sites/(新しく作ったフォルダ名)" ServerName (任意のサーバー名) <Directory "/Users/(ユーザーフォルダ名)/Sites/(新しく作ったフォルダ名)"> Require all granted DirectoryIndex index.html Options Includes AddType text/html .html AddOutputFilter INCLUDES .html </Directory> </VirtualHost>

6:hostsファイルを編集

sudo vi /etc/hosts
下記を追加。任意の名前は「5」で設定したServerNameを記載。 127.0.0.1  (任意のサーバー名)

7:アパッチの再起動

ここまでで設定は全部完了。
httpd -tでテストしてSyntaxOKだったらsudo apachectl restartでアパッチの再起動。
http://(任意のサーバー名):8080/でhttpd-vhost.confで設定した上のやつ、
http://(任意のサーバー名):8081/でhttpd-vhost.confで設定した下のやつが見える。はず。

パーミッションがどうこうってい言われるときはSitesとかその上のユーザーフォルダのパーミッションを確認したらいいかと。
chmod 755 フォルダ名

2023/06/22

post_parent

  • no page

parent

life

デザイニングナスカはwebデザインなどのweb系、およびDMデザインなどの平面デザインを行っています。

安く、手早く、それなりに。をコンセプトとしてデザイン活動を行っています。
デザイニングナスカという言葉は創立時に多くの知り合いの方のアイデアを元に作った造語です。
この名前をずっと長く使えるように頑張っていきたいと思っています。
サイトメニューを見る ページトップに戻る

Twitter Facebook mail