Linux (old) Newbies

古いWindows環境からLinux環境へと移り住んだ日々の出来事

PHP をインストールしたら Apache2 も付いてきた😅

Python3 は標準でインストールされているけれど PHPUbuntu 24.04 に標準では入っていなかったのでインストールしました。特に PHP のバージョンに拘りがないことから指定なしで
sudo apt install php
としたところ、インストールされたのは PHP 8.3 でした。
コンソール画面を見ていると PHP だけでなく Apache2 もインストールされた模様。
セット物なのか理由は分かりませんが、まぁ Httpd も使う場面もあるだろうから良しとしましょう。

とりあえず自動起動を無効にする

http://127.0.0.1/ を叩くと Apache2 さんコンニチハ!!って、即時に起動している様子。使いたいときだけ起動すればいいので自動起動の変更を施しました。
systemctl のコマンドで設定の方法で行いました。

自動起動の有効化
sudo systemctl enable サービス名
自動起動の無効化
sudo systemctl disable サービス名
自動起動の確認
sudo systemctl is-enabled サービス名

Apache2 のサービス名は、私の Ubuntu 環境では "apache2" ですが、他の Linux 環境では "httpd" というサービス名となっていたりと環境によっては異なるようです。

とりあえず自動起動はしないように出来たので使いたいときに手動で開始/停止
サービスの開始
sudo systemctl start サービス名
サービスの停止
sudo systemctl stop サービス名

AH00558 エラー? の対処

Apache2 を自動起動にしていると見えないので分かりませんが、コマンドで開始/停止としていると何やら妙なメッセージを見かけました。

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

なんだか分からないので検索してみると
127.0.0.1localhost という名前で bind されているけれど
127.0.1.1 に割り当てている名前が未解決なのでこの問題が発生するそうです。

・・・なにも設定してないのですが😅😅😅

どうやら Ubuntu へのインストール時に、127.0.0.1 に加えて、127.0.1.1 で Ubuntu のサーバー名でエントリーが自動で作成されることに起因しているとのこと。

対処としてはローカルの hosts ファイルに追記で 127.0.1.1 のエントリーを設けるとかでもいいそうです。

私の場合は Apache2 の conf への追加で対処しました。
sudo sh -c "echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf"
sudo a2enconf fqdn
systemctl reload apache2
systemctl start apache2

Apache2のconfのテストで正しいかどうか分かります
sudo apache2ctl configtest

Syntax OK
と出ていれば大丈夫

これって、ちょとしたライフハックらしく
sudo echo ServerName $HOSTNAME > /etc/apache2/conf-available/fqdn.conf
bash: /etc/apache2/conf-available/fqdn.conf: 許可がありません

普通に bash に渡すとリダイレクトの部分が通常の権限になるので
sudo で起動した sh に -c でやらせて書き込むという小技

足りないモジュールを追加でインストール

libapache2-mod-php はセットで入っていました。

追加したのは(入っていなかったのは)

php-curl(HTTP通信)
sudo apt install php-curl

php-mbstring(マルチバイト文字対応)
sudo apt install php-mbstring


これ以外にも必要なモジュールがありそうだけど、とりあえずはこれだけでいいかな。