2021/04/またmacでapacheが動かなくなった (2024-03-12)

(更新:2023/02/27)

macOSにて再起動したらApacheとPHPが動かないことがよくあります。
brew upgradeとかすると、時々発生します。
大抵は、Apacheの設定ファイルに書かれているPHPのバージョンと、自動的にインストールされたPHPのバージョンの不一致が問題です。

# PHPのバージョンを確認しよう
$ php -v
PHP 8.2.3 ...
# Apacheの設定ファイルでバージョンを確認しよう(Appleシリコンモデルの場合)
$ vim /opt/homebrew/etc/httpd/httpd.conf
---
LoadModule php_module /opt/homebrew/Cellar/php/8.2.3/lib/httpd/modules/libphp.so
---
$ brew services restart httpd

その他の問題の時 *

今回は、エラーログにも何もエラーが書き込まれていない。

# Intel Macでエラーログを見る
tail /usr/local/var/log/httpd/error_log
# M1 Macでエラーログを見る
tail /opt/homebrew/var/log/httpd/error_log

続いて、再起動してみる

brew services restart httpd

正常に起動したと出る。でも、実際には起動していない。

そこで、サービスではなく普通に起動してみる。おっと、ようやく理由が表示された。

# Intel Macで再起動
$ /usr/local/bin/apachectl start
httpd: Syntax error on line 542 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/opt/php/lib/httpd/modules/libphp.so into server: dlopen(/usr/local/opt/php/lib/httpd/modules/libphp.so, 10): Library not loaded: /usr/local/opt/icu4c/lib/libicuio.67.dylib
  Referenced from: /usr/local/opt/php/lib/httpd/modules/libphp.so
  Reason: image not found
#------------
# M1Macで再起動
$ /opt/homebrew/bin/apachectl start
httpd: Syntax error on line 166 of /opt/homebrew/etc/httpd/httpd.conf: Cannot load /opt/homebrew/Cellar/php/8.1.5/lib/httpd/modules/libphp.so into server: dlopen(/opt/homebrew/Cellar/php/8.1.5/lib/httpd/modules/libphp.so, 0x000A): tried: '/opt/homebrew/Cellar/php/8.1.5/lib/httpd/modules/libphp.so' (no such file)

どうやら、PHPでlibicuio.67.dylib(M1Macの方では、libphp.so)が存在しないためにエラーが出ているようだ。

そこで、phpをupgradeしてうまく動くようになるときもある。

brew upgrade php

それでも動かない時は、インストールしているPHPのバージョンを確認して、/opt/homebrew/etc/httpd/httpd.confを書き換える必要がある。

$ vim /opt/homebrew/etc/httpd/httpd.conf

今回は、PHPのバージョンが8.1.5→8.1.8にアップデートしたのが原因でエラーが出ていた。

LoadModule php_module /opt/homebrew/Cellar/php/8.1.5/lib/httpd/modules/libphp.so
↓
LoadModule php_module /opt/homebrew/Cellar/php/8.1.8/lib/httpd/modules/libphp.so

最後に改めて再起動して完了。

$ /opt/homebrew/bin/apachectl start
# 問題なく動いたら
$ /opt/homebrew/bin/apachectl stop
$ brew services start httpd

(更新:2024/03/12) *

そもそも、macOS上で、ローカルのApacheとPHPを使うことで、問題が起きている。ローカルであれば、大抵はPHPのローカルサーバー機能を使えば問題なく動くので、無意味にApacheとPHPを使う必要は無いことに気付いた。

ローカルWebサーバーを使いたいときのみ、以下のバッチファイルを実行すれば、brew upgradeを実行して上記の問題が起きるのを回避できる。

#!/bin/sh
cd $HOME
php -S localhost &

ランタン型スピーカー (2021-03-05)

LED+スピーカーが欲しくて探してました。キャンプに持って行って使えたり、プレゼントに良かったり、自宅のベランダでゆったり楽しめたり・・・したら良いなぁと思うのですが。

一番評判良いのは以下。音質もとても良いみたいです。

次点が以下。良さそうですね。

そして、少し安くなるのが以下。評判はそれなりに良いのですがどうなんでしょうか。

手書き数字の画像データセットのリンク (2021-01-25)

UCI機械学習リポジトリより、手書き数字の画像データセットが以下にあります。URLが長いのでここにメモしておきます。

手書き数字のデータセット
(Optical Recognition of Handwritten Digits Data Set)
[URL] https://archive.ics.uci.edu/ml/datasets/optical+recognitio..

Downloadのリンクより、CSVデータの以下の二つのファイルを入手して使いましょう。

  • optdigits.tes
  • optdigits.tra