以前Fedora39からFedora40に移行について,記事にしましたが,Webサーバーからのファイル出力やデバイスの制御ができなくなってしまい,かなり手を焼きました。
症状としては,Fedora39からFedora40にアップデートしてから,FAXサーバー(efax)と知識の整理に使っていた「YukiWiki」というウェブアプリケーションが使えなったことです。
eFAXは,受信も送信も使えなくなりましたが,送受信それぞれ原因は異なりました。FAXの送信ができない理由とYukiWikiが使えなくなった理由は一緒でした。
FAX受信のほうは,もともとtiff形式で受信するため,tiffをPDFに変換するソフトが必要で,今までは「tiff2pdf」を利用していましたが,Fedora40からバンドルされなくなったのが原因です。
これについては,他のツール「ImageMagick」のconvertというコマンドを使うことにして解決しました。
convertの使い方は
convert recivefax.000.tiff recivefax.001.tiff recivefax.pdf
というように,複数のtiffファイルを1冊のPDFにすることも可能なので比較的移行が簡単にできました。
FAX送信のほうはかなりたいへんでした。症状としては,httpd(Apacheサーバー)から,/home以下にファイルの出力ができなくなったことと,/dev/serial といったモデムデバイスにアクセスできなくなったことです。
例えば,次のcgiを作成してWebサーバー上からアクセスした場合,
open(DATAFILE, “> ./test.txt”) or die(“Error:$!”);
print DATAFILE “長野県\n”;
close(DATAFILE);
通常なら,cgiのあるディレクトリ上にtest.txtというファイルが作成され,長野県と文字が入力されますが,作成されず,エラーログを確認すると
[cgid:error] [pid xxxxxx:tid xxxxxx] [client ::1:xxxxx] AH01215: stderr from /home/hoge/test.cgi: Error:Read-only file system at /home/hoge/test.cgi line 1.
が「/var/log/httpd/error_log」上に出力されます。他にも,PukiWikiを実行して,テキストの書換えを行うと
AH01215: stderr from /home/hoge/test.cgi: Permission denied at /home/hoge/test.cgi line x.
や
AH01215: stderr from /home/hoge/wiki.cgi: [Fri May x xx:xx:xxx 2024] wiki.cgi: /home/home/hoge//diff/XXXXXXXXXXXXXXXXXXXX.txt cannot be created at Yuki/YukiWikiDB.pm line 84., referer:(略)
等,大体同じようなアクセス制御系のエラーが表示されました。
httpdのコンフィグやファイル,ディレクトリのアクセス権限等,いろいろあたってみましたが,全然解決せず,途中でFedoraフォーラムに問い合わせてみましたが,書いたあとにたまたまsystemdでhttpdのファイル制御している記事(Webuzo:「How to increase the number of open files allowed for Apache2」)を見つけて,自己解決できました。
理由は,どうやら,systemdの制御のコンフィグが変わったのが原因のようでした。解決の方法としては,
vim /usr/lib/systemd/system/httpd.service
以下追記
DeviceAllow=/dev/ttyS0 rw
ProtectHome=read-only
PrivateDevices=yes
↓
ProtectHome=false
PrivateDevices=no
に変更
のちに,
sudo systemctl daemon-reload
sudo systemctl restart httpd
を実行したらうまくいきました。/homeディレクトリと/devをsystemdでアクセスを制限していたようです。無事Fedora40でもefaxサーバーの運用ができるようになりました。
(”PrivateDevices=yes”と” sudo systemctl restart httpd”は,5/11追記 )