Raspberry PiのRocky LinuxにFML8にインストールしたが、設定が不明な点が有り動作させられなかった。
FML4を動作させるために、perl-5.8.9をコンパイルするがエラーとなった。
対応をwebで検索していたら、デフォルトインストールされているperl-5.32上でFML4を動作させるためのパッチを発見した。
若干修正が必要で有るため記録する。
以下のURLからfml4のパッチをダウンロードする。
「Satoru Yamane」さん、パッチ作成ありがとうございます。
FML4 patch :: Yamane’s Home (carina.gr.jp)
パッチを適用する。
FML4のソースディレクトリと同じところにパッチを展開して、FML4のソースディレクトリに移動後パッチを適用するため適用するパッチのファイルパスは、「../fml-4.0-stable-20040215.diff 」になります。
# tar xvfz fml-4.0.3.tar.gz # cd fml-4.0.3/ # patch -p1 --follow-symlinks < ../fml-4.0-stable-20040215.diff patching file cf/config patching file libexec/fml_local.pl patching file libexec/fmlserv.pl patching file makefml patching file sbin/makefml patching file src/fml.pl patching file src/jcode.pl patching file src/libconfirm.pl patching file src/libenvf.pl patching file src/libkern.pl
makefmlのperlコマンドのパスを修正する。
標準のperlコマンドを利用するため、シェル内のperlのパスを「/usr/bin/perl」に変更する。
# cp sbin/makefml sbin/makefml_org # vi sbin/makefml # diff sbin/makefml_org sbin/makefml 1c1 < #!/usr/local/bin/perl --- > #!/usr/bin/perl
WebUIのモジュールを修正する。
「getopts.pl」はperl-5.32では利用できないため、「Getopt::Std 」を利用するように修正する。
# cd /usr/local/fml/www/lib # cp libcgi_kern.pl libcgi_kern.pl_org # vi libcgi_kern.pl # diff libcgi_kern.pl_org libcgi_kern.pl 21,22c21,24 < require 'getopts.pl'; < &Getopts("dh"); --- > #require 'getopts.pl'; > #&Getopts("dh"); > use Getopt::Std; > getopts('dh');
FMLをインストール
/usr/local/fmlにfmlをインストールする。
# makefml install
fmlユーザを登録してfmlユーザにfmlのコマンドのパスを追加する。
fmlのインストールパスは、fmlユーザでのみ使用するのでfmlユーザにのみに、fmlのインストールパスを「.bashrc」のPATH設定に追加する。
# groupadd fml
# useradd -G fml -m fml
# cp .bashrc .bashrc_org # vi .bashrc # diff -c .bashrc_org .bashrc *** 8,13 **** # User specific environment ! if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]] then ! PATH="$HOME/.local/bin:$HOME/bin:$PATH" fi export PATH --- 8,13 --- # User specific environment ! if ! [[ "$PATH" =~ "/usr/local/fml:$HOME/.local/bin:$HOME/bin:" ]] then ! PATH="/usr/local/fml:$HOME/.local/bin:$HOME/bin:$PATH" if export PATH
postfixにfmlのaliases定義を追加する。
fmlで使用する「/var/spool/ml/etc/aliases」をposfixに追加する。
# cd /etc/postfix # cp main.cf main.cf_org # vi main.cf # diff main.cf_org main.cf 413c413,414 < alias_maps = hash:/etc/aliases --- > #alias_database = hash:/etc/aliases > alias_database = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases 826a829,830 > # FMLのための設定 > allow_mail_to_commands = alias,forward,include <--- 追加
FML用のaliasesを作成する。
ファイルは存在しないため、touchコマンドでファイルを作成し、postaliasコマンドでDBを作成する。
# touch /var/spool/ml/etc/aliases # postalias /var/spool/ml/etc/aliases
fmlで使用するファイルの所有権をfmlに変更する。
/var/spool/mlと/usr/local/fmlの所有権をfmlユーザに変更する。
# chown -R fml:fml /var/spool/ml # chown -R fm:fml /usr/local/fml
nginxにWebUIを設定する。
nginxにfml用の設定を追加する。
# cd /etc/nginx/default.d # vi fml.conf # cat fml.conf location /fml/admin/ { root /usr/local/fml/www/share/cgi-bin; location ~ \.(pl|sh|cgi)$ { try_files $uri =404; fastcgi_pass unix:/run/fcgiwrap/fcgiwrap.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
nginxを再起動する。
# nginx -t # systemctl restart nginx
fmlのGUIサイトにアクセスでる。
以下のURLでGUIの画面が表示される。
https://<IPアドレス|ホスト名>/fml/admin/index.cgi
メールアドレスの追加や削除なめ画面遷移すると、アクセスするファルのアクセス権がfmlのためHTTP(nginxユーザ)からはアクセス(更新処理など)できません。
修正方法は今後調査して公開します。