FML8にインストールしたが、設定が不明な点が有り動作させられなかった。
FML4を動作させるために、perl-5.8.9をコンパイルするがエラーとなった。
対応をwebで検索していたら、デフォルトインストールされているperl-5.32上でFML4を動作させる修正情報を発見した。修正パッチも見つけたが、間違っている部分が当たっためCGIが正常に動作しなった。
WEBで検索した情報は、makefmlファイルのみを修正するためMLの作成削除やユーザの登録削除が正常に動作するか不明であるため、修正箇所をすべて修正する事にした。
- ファイルを修正する。
- fmlをインストールする。
- perlコマンドのシンボリック・リンクを作成する。
- fmlユーザを登録してfmlユーザにfml関連コマンドのパスを追加する。
- postfixにfmlのaliases定義を追加する。
- FML用のaliasesを作成する。
- fmlで使用するファイルの所有権をfmlに変更する。
- MLを作成する。
- MLにユーザを登録する。
- GUI操作のnginxユーザが操作できる様に、拡張aclを設定する。
- GUIを利用する設定を行う。
- nginxにWebUIを設定する。
- nginxを再起動する。
- fmlのGUIサイトにアクセスでる。
- GUIによる操作とmakefmlコマンドによる操作の住み分け
- バーチャルドメインでFMLを利用する。
- バーチャル・ドメイン用のfmlをインストールする。
- バーチャル・ドメインのMLを操作するfml2ユーザを作成し、fml関連コマンドのパスを追加する。
- postfixにfmlのaliases定義を追加する。
- バーチャル・ドメイン用のaliasesを作成する。
- バーチャル・ドメイン用のfmlで使用するファイルの所有権をfml2に変更する。
- バーチャル・ドメインで使用するMLを作成する。
- バーチャル・ドメイン用のユーザを内部配送設定をpostfixに設定する。
- MLにユーザを登録する。
- バーチャル・ドメインをnginxユーザが操作できる様に、拡張aclを設定する。
- バーチャル・ドメイン用のWebUIをnginxに設定する。
- nginxを再起動する。
- バーチャル・ドメイン用のGUIサイトにアクセスでる。
- まとめ
- 閑話休題
ファイルを修正する。
ファイルを修正利用は、fmlが古いバージョンのperlで作成されているため、新しいバージョンのperlでは修正しないと動作しないためである。
修正する内容は、以下の様な内容であれる。
旧perlの記述 | 新perlの記述 | 備考 |
---|---|---|
require 'getopts.pl'; &Getopts("dhf:A:O:p:D:vwV:mi:u:UF"); | use Getopt::Std; getopts('dhf:A:O:p:D:vwV:mi:u:UF'); | getopts.plが利用できなくなった |
if (defined @entry) { | if (@entry) { | definedで配列が空かどうか調べることや、ハッシュが空かどうか調べるのに使うことが非推奨になった |
パッチを当てるファイル
以下のファイルに対して修正が必要である。WEBでの利用の考えているのでcgiに関するファイルも修正する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
bin/archive.pl bin/base64decode.pl bin/base64encode.pl bin/cksum.pl bin/daily.pl bin/emumail.pl bin/expire.pl bin/fwix.pl bin/gen_summary.pl bin/more_secure_cf.pl bin/passwd.pl bin/pmail.pl bin/resend.pl bin/translate.pl cf/config contrib/localhack/release-1/vote/vote.pl contrib/mail2fax/libfax.pl contrib/mail2irc/libirc.pl contrib/mail2pager/euc2jiskuten.pl databases/examples/ldap-toymodel/dump.pl databases/ldap/toymodel.pl databases/postgresql/dynamic_active.pl libexec/confirmd.pl libexec/fml_local.pl libexec/fmlserv.pl libexec/mead.pl makefml sbin/makefml src/fml.pl src/jcode.pl src/libconfirm.pl src/libdatabases.pl src/libenvf.pl src/libkern.pl src/libtraffic.pl sys/WINDOWS_NT4/ntfml.pl sys/WINDOWS_NT4/wrapper.pl www/cgi-bin/admin/index.cgi www/cgi-bin/admin/makefml.cgi www/cgi-bin/admin/menu.cgi www/cgi-bin/admin/menubar.cgi www/cgi-bin/admin/mlmenu.cgi www/cgi-bin/admin/newml.cgi www/cgi-bin/admin/rmml.cgi www/cgi-bin/ml-admin/makefml.cgi www/cgi-bin/ml-admin/menu.cgi www/lib/libcgi_kern.pl |
パッチを入手する。
修正するファイルが多いためパッチファイルを作成しました。
以下のURLからパッチ(fml-4.0-stable-20040215_patch)を入手する。
パッチを当てる。
fmlの圧縮ファイルを解凍し、fmlのソースファイルディレクトリに移動して、上位ディレクトリにあるパッチファイルを適用する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# cd /tmp # tar xvfz fml-4.0-stable-20040215.tar.gz fml-4.0-stable-20040215/ fml-4.0-stable-20040215/src/ fml-4.0-stable-20040215/src/fml.pl : fml-4.0-stable-20040215/INSTALL.jp fml-4.0-stable-20040215/INSTALL.en # # cd fml-4.0-stable-20040215 # # patch -p1 --follow-symlinks < ../fml-4.0-stable-20040215_patch patching file bin/archive.pl patching file bin/base64decode.pl patching file bin/base64encode.pl patching file bin/cksum.pl patching file bin/daily.pl patching file bin/emumail.pl patching file bin/expire.pl patching file bin/fwix.pl patching file bin/gen_summary.pl patching file bin/more_secure_cf.pl patching file bin/passwd.pl patching file bin/pmail.pl patching file bin/resend.pl patching file bin/translate.pl patching file cf/config patching file contrib/localhack/release-1/vote/vote.pl patching file contrib/mail2fax/libfax.pl patching file contrib/mail2irc/libirc.pl patching file contrib/mail2pager/euc2jiskuten.pl patching file databases/examples/ldap-toymodel/dump.pl patching file databases/ldap/toymodel.pl patching file databases/postgresql/dynamic_active.pl patching file libexec/confirmd.pl patching file libexec/fml_local.pl patching file libexec/fmlserv.pl patching file libexec/mead.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/libdatabases.pl patching file src/libenvf.pl patching file src/libkern.pl patching file src/libtraffic.pl patching file sys/WINDOWS_NT4/ntfml.pl patching file sys/WINDOWS_NT4/wrapper.pl patching file www/cgi-bin/admin/index.cgi patching file www/cgi-bin/admin/makefml.cgi patching file www/cgi-bin/admin/menu.cgi patching file www/cgi-bin/admin/menubar.cgi patching file www/cgi-bin/admin/mlmenu.cgi patching file www/cgi-bin/admin/newml.cgi patching file www/cgi-bin/admin/rmml.cgi patching file www/cgi-bin/ml-admin/makefml.cgi patching file www/cgi-bin/ml-admin/menu.cgi patching file www/lib/libcgi_kern.pl # |
fmlをインストールする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# ./makefml install unshift(@INC, /usr/local/src/fml/fml-4.0-stable-20040215/src) ---NOT USING configuration file (for the first time) THIS HOST (pc.office.hoge.com) IS [x86_64-unknown-linux-gnu] ---Please Define Your Fml System Configurations Personal Use or ML-Admin-Group-Shared or fmlserv you use? Personal, Group, Fmlserv (personal/group/fmlserv) [personal] DOMAIN NAME [office.hoge.com] hege.com FQDN [pc.office.hoge.com] hoge.com EXEC FILES DIRECTORY [/usr/local/fml] TOP LEVEL ML DIRECTORY [/var/spool/ml] Language (Japanese or English) [English] Japanese TimeZone (TZ: e.g. +0900, -0300) [+0900] --- summary --- DOMAIN: hoge.com FQDN: hoge.com EXEC_DIR: /usr/local/fml ML_DIR: /var/spool/ml Language: Japanese TimeZone: +0900 The current configuration is saved in /usr/local/fml/.fml/system mkdir /var/spool/ml ---Install the Fml system to /usr/local/fml. (y/n) [n] y Installing fml system to /usr/local/fml Fixing Path: src ............................................................................ libexec ..... sbin . cf . bin .................... www/cgi-bin ......... www/lib ... sys ......... module .. Done. Generate nroff manuals: Installing bin .... Installing sbin . Installing libexec . Installing cf . Installing etc .... Installing sys .. Installing src ........ Installing drafts .. Installing messages ..... Installing www ...... Installing module ................................... Installing databases ... Installing doc ..................................................................................... Done. Setup CGI examples ........ CGI configuration is saved in /usr/local/fml/.fml/cgi.conf -- Enjoy Internetworking! # |
perlコマンドのシンボリック・リンクを作成する。
fmlで使用するシェルはperlコマンドが/usr/local/binディレクトリあることを想定しているため、シンボリック・リンクを作成して/usr/local/binからでもperlコマンドが実行できるようにする。
1 2 3 4 |
# cd /usr/local/bin # # ln -s /usr/bin/perl perl # |
fmlユーザを登録してfmlユーザにfml関連コマンドのパスを追加する。
メーリングリストを操作するfmlのグループとユーザを作成して、fmlのインストールパスを「.bashrc」のPATH設定に追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# groupadd fml # # useradd -G fml -m fml # # cd /home/fml # # cp .bashrc .bashrc_org # # vi .bashrc # # diff -c .bashrc_org .bashrc 9c9 < if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]] --- > if ! [[ "$PATH" =~ "/usr/local/fml:$HOME/.local/bin:" ]] 11c11 < PATH="$HOME/.local/bin:$HOME/bin:$PATH" --- > PATH="/usr/local/fml:$HOME/.local/bin:$HOME/bin:$PATH" # |
postfixにfmlのaliases定義を追加する。
fmlで使用する「/var/spool/ml/etc/aliases」をposfixの設定ファイルに追加する。
また、fmlでaliasesファイルに設定されるinclude定義を処理できる様にallow_mail_to_commands設定を追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# cd /etc/postfix # # cp main.cf main.cf_org # # vi main.cf # # diff main.cf_org main.cf 405c413,414 < alias_maps = hash:/etc/aliases --- > #alias_maps = hash:/etc/aliases > alias_maps = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases 416,417c425,426 < alias_database = hash:/etc/aliases < #alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases --- > #alias_database = hash:/etc/aliases > alias_database = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases 738a738,739 > # FMLのための設定 > allow_mail_to_commands = alias,forward,include # |
FML用のaliasesを作成する。
aliasesファイルは存在しないため、touchコマンドでファイルを作成し、postaliasコマンドでDBを作成する。
1 2 3 4 |
# touch /var/spool/ml/etc/aliases # # postalias /var/spool/ml/etc/aliases # |
fmlで使用するファイルの所有権をfmlに変更する。
/var/spool/mlと/usr/local/fmlの所有権をfmlユーザに変更する。
1 2 3 4 |
# chown -R fml:fml /var/spool/ml # # chown -R fml:fml /usr/local/fml # |
MLを作成する。
新しいメーリングリストを作成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# su - fml $ $ which makefml /usr/local/fml/makefml $ $ makefml newml test DO "newml" for test mailing list. ---Creating test mailing list directory /var/spool/ml/test is created as UID=1004 directory /var/spool/ml/test/spool is created as UID=1004 ---Generting configuration examples. Generate template files in /var/spool/ml/test/ include include-ctl include-mead aliases Makefile crontab fmlwrapper.c fmlwrapper.h Generate qmail template files in /var/spool/ml/etc/qmail/alias/ .qmail-test .qmail-test-ctl .qmail-test-default .qmail-test-admin .qmail-test-request .qmail-owner-test .qmail-owner-test-ctl Update /var/spool/ml/etc/qmail/users/assign Generate qmail template files in /home/fml You need the following rule in /var/qmail/control/virtualdomains to use /home/fml/.qmail-lnxdvr:com-* files lnxdvr.com:fml-lnxdvr.com Update /var/spool/ml/etc/crontab/fml Create config.ph(/var/spool/ml/test/config.ph): /var/spool/ml/test/cf -> config.ph ... Done. Create template files for commands (help, guide ...) help help-admin deny guide welcome confirm objective Update /var/spool/ml/etc/aliases The next step: update your MTA configuration. For example % su root # cat /var/spool/ml/test/aliases >> /etc/aliases # newaliases FYI: See templates in '/var/spool/ml/test/' done. $ |
メーリングリストのヘッダ情報を設定する。
Subjcctに表示に以下の情報を付加する。
「HEADER CONFIGURATIONS」でSubjectにMLの情報を追加する。
[test:0001]テストメール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
$ makefml config test DO "config" for hoge mailing list. ---Configure hoge mailing list ... ************************************************************ <<< makefml --- FML Configuration Interface --- >>> === TOP MENU === Mailing List Addresses FOR POST test@hoge.com FOR COMMAND test-ctl@hoge.com _______________________ 0 END 1 POLICY OF ACCESS (WHO CAN POST AND USE COMMANDS) [POST] PERMIT_POST_FROM members_only WHEN POST FROM NOT MEMBER reject [COMMAND] PERMIT_COMMAND_FROM members_only WHEN COMMAND FROM NOT MEMBER reject 2 REGISTRATION METHOD TYPE AUTO_REGISTRATION_TYPE confirmation UNSUBSCRIBE_AUTH_TYPE 3 SETTINGS AROUND COMMANDS address for command test-ctl@hoge.com 4 REMOTE ADMINISTRATION PERMIT ? NO AUTH_TYPE crypt 5 HEADER CONFIGURATIONS 6 OPTION 7 SECURITY & FILTERING ************************************************************ Which section? :0-7) [0] 5 ************************************************************ <<< makefml --- FML Configuration Interface --- >>> 0 END * Subject: TAG 1 SUBJECT_TAG_TYPE [:] 2 SUBJECT_TAG_FIGURE 4 * To: 3 REWRITE_TO To: is original (pass through) * Date: 4 DATE_TYPE original-date 5 PASS_ALL_FIELDS YES 6 PASS_RECEIVED_THROUGH YES ************************************************************ which type (0-6) [0] 0 Configuration is saved in /var/spool/ml/test/cf. Create config.ph(/var/spool/ml/test/config.ph): /var/spool/ml/test/cf -> config.ph ... Done. (configuration is backuped in /var/spool/ml/test/config.ph.bak) done. $ |
MLにユーザを登録する。
1 2 3 4 5 6 7 8 |
$ makefml add test hoge@ymail.ne.jp DO "add hoge@ymail.ne.jp" for test mailing list. done. $ $ cat /var/spool/ml/test/members hoge@ymail.ne.jp $ |
GUI操作のnginxユーザが操作できる様に、拡張aclを設定する。
通常のアクセス権では、fmlユーザとnginxユーザの2人にアクセス権を設定できない。
chmodコマンドでotherのアクセス権を設定すれば利用可能となるが、誰でも操作できる状態になってしまう。
よって、拡張aclアクセス権でnginxユーザも所有者となるような設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# ls -l /var/spool/ml 合計 8 drwxr-sr-x 5 fml fml 4096 4月 5 20:17 etc drwxr-sr-x 5 fml fml 4096 5月 25 19:39 test # # setfacl -R -m u:nginx:rwx /var/spool/ml # # getfacl /var/spool/ml getfacl: Removing leading '/' from absolute path names # file: var/spool/ml # owner: fml # group: fml # flags: -s- user::rwx user:nginx:rwx group::r-x mask::rwx other::r-x # |
GUIを利用する設定を行う。
「makefml admin.cgi config」コマンドで管理用cgiプログラムをインストールする情報がインターネットで検索できるが、標準のインストールでcgiが利用できることを確認したので、作業不要である。
nginxにWebUIを設定する。
nginxにfml用の設定を追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# cd /etc/nginxc/defult.d # # vi fml.conf # # cat fml.conf location /fml/ { alias /usr/local/fml/www/cgi-bin/admin/; index menu.cgi auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; location ~ \.(pl|sh|cgi)$ { try_files $uri =404; fastcgi_pass unix:/run/fcgiwrap.socket; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param PATH_INFO $fastcgi_path_info; } } # |
nginxを再起動する。
1 2 3 4 5 6 |
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # # systemctl restart nginx # |
fmlのGUIサイトにアクセスでる。
以下のURLでGUIの画面が表示されることを確認する。
https://<IPアドレス|ホスト名>/fml/
GUIなので、操作は想像がつくと思います。
MLの作成・削除、ユーザの登録は確認しました。
GUIによる操作とmakefmlコマンドによる操作の住み分け
当たり前であるが以下特性がある。
・makefmlコマンドでメーリングリストを作成するとfmlユーザの権限でMLが作成されtため、GUIで操作できない。
・CGIでメーリンリストを作成するとnginxユーザ権限のMLが作成されれるため、CUIで操作できない。
よって、CUIとGUIで操作する線引きが必要になる。
一つの解決方法として以下の方法が考えられる。
CUIでの操作:
①新しいMLを作成する。
②newaliasesコマンドを作成したMLを登録する。
③/var/spool/mlディレクトリ配下に新しく作成したMLをGUIでのアクセス権を与える。
GUIでの操作:
①MLへのユーザ登録・削除の操作に限定する。
バーチャルドメインでFMLを利用する。
aliasesファイルにMLの設定を記述するが、aliasesファイルはローカル配送専用のためバーチャル・ドメインのユーザでは直接利用できない。
よって、バーチャル・ドメインのユーザで受信したメールをmydestinationに定義されいるデフォルト・ドメイン名のユーザに転送して、MLを送信を行う。
バーチャル・ドメイン用のfmlをインストールする。
/usr/local/fmlディレクトリ以外の場所にバーチャル・ドメイン用のfmlをインストールする。
「-U」を付けけてインストールする。理由は忘れました。すみません。
/usr/local/fmlディレクトリとは違う場所にインストールする。
バーチャル・ドメイン用のfmlを/usr/local/hoge.jpにインストールする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ./makefml -U install Personal, Group, Fmlserv (personal/group/fmlserv) [personal] DOMAIN NAME [lnxdvr.com] hoge.jp FQDN [office.hoge.com] hoge.jp EXEC FILES DIRECTORY [/usr/local/fml] /usr/local/hoge.jp TOP LEVEL ML DIRECTORY [/var/spool/ml] /var/spool/hoge.jp Language (Japanese or English) [English] Japanese TimeZone (TZ: e.g. +0900, -0300) [+0900] --- summary --- DOMAIN: hoge.jp FQDN: pc.hoge.jp EXEC_DIR: /usr/local/hoge.jp ML_DIR: /var/spool/hoge.jp Language: Japanese TimeZone: +0900 : # |
バーチャル・ドメインのMLを操作するfml2ユーザを作成し、fml関連コマンドのパスを追加する。
バーチャル・ドメインで利用するfml2ユーザを作成して、fmlのインストールパスを「.bashrc」のPATH設定に追加する。
fml2にログインスすると、バーチャル・ドメインのMLが操作できるようにする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# useradd -G fml -m fml2 # cd /home/fml2 # cp .bashrc .bashrc_org # vi .bashrc # diff -c .bashrc_org .bashrc 9c9 < if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]] --- > if ! [[ "$PATH" =~ "/usr/local/hoge.jp:$HOME/.local/bin:" ]] 11c11 < PATH="$HOME/.local/bin:$HOME/bin:$PATH" --- > PATH="/usr/local/hoge.jp:$HOME/.local/bin:$HOME/bin:$PATH" # |
postfixにfmlのaliases定義を追加する。
バーチャル・ドメインで使用する「/var/spool/hoge.jp/etc/aliases」をposfixに追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# cd /etc/postfix # cp main.cf main.cf_org # vi main.cf # diff main.cf_org main.cf 405c413,414 < alias_maps = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases --- > alias_maps = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases, hash:/var/spool/hoge.jp/etc/aliases 416,417c425,426 < #alias_database = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases --- > alias_database = hash:/etc/aliases, hash:/var/spool/ml/etc/aliases, hash:/var/spool/hoge.jp/etc/aliases # |
バーチャル・ドメイン用のaliasesを作成する。
ファイルは存在しないため、touchコマンドでファイルを作成し、postaliasコマンドでDBを作成する。
1 2 3 |
# touch /var/spool/hoge.jp/etc/aliases # postalias /var/spool/hoge.jp/etc/aliases # |
バーチャル・ドメイン用のfmlで使用するファイルの所有権をfml2に変更する。
/var/spool/test.jpと/usr/local/test.jpの所有権をfml2ユーザに変更する。
1 2 3 |
# chown -R fml2:fml /var/spool/hoge.jp # chown -R fml2:fml /usr/local/hoge.jp # |
バーチャル・ドメインで使用するMLを作成する。
新しいメーリングリストを作成する。
1 2 3 4 5 6 7 8 9 10 11 12 |
# su - fml2 $ $ which makefml /usr/local/hoge.com/makefml $ $ makefml newml hoge DO "newml" for hoge mailing list. ---Creating test mailing list : FYI: See templates in '/var/spool/hoge.jp/hoge/' done. $ |
メーリングリストのヘッダ情報を設定する。
Subjcctに表示に以下の情報を付加する。
「HEADER CONFIGURATIONS」でSubjectにMLの情報を追加する。
[hoge:0001]テストメール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ makefml config hoge DO "config" for hoge mailing list. ---Configure hoge mailing list ... ************************************************************ <<< makefml --- FML Configuration Interface --- >>> === TOP MENU === Mailing List Addresses FOR POST hoge@hoge.jp FOR COMMAND hoge-ctl@hoge.jp _______________________ : $ |
バーチャル・ドメイン用のユーザを内部配送設定をpostfixに設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# grep mydomain /etc/postfix/main.cf : mydomain = hoge.com : # # grep mydestination /etc/postfix/main.cf : mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain : # # cd /etc/postfix # # grep virtual_alias_maps main.cf # /etc/passwd, /etc/aliases, or the $virtual_alias_maps files. virtual_alias_maps = hash:/etc/postfix/virtual_aliases # # cp virtual_aliases virtual_aliases_org # # vi virtual_aliases # # diff virtual_aliases_org virtual_aliases 10a11,13 > > #virtual domein ML User > hoge@hoge.jp hoge@localhost.hoge.com # # postmap virtual_aliases # |
MLにユーザを登録する。
1 2 3 4 5 6 7 8 |
$ makefml add hoge hoge@gmail.com DO "add hoge@gmail.com" for test mailing list. done. $ $ cat /var/spool/hoge.jp/hoge/members hoge@gmail.com $ |
バーチャル・ドメインをnginxユーザが操作できる様に、拡張aclを設定する。
拡張aclアクセス権でnginxユーザも所有者となるような設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# ls -l /var/spool/hoge.jp 合計 8 drwxr-sr-x 5 fml2 fml 4096 4月 5 20:17 etc drwxr-sr-x 5 fml2 fml 4096 5月 25 19:39 hoge # # setfacl -R -m u:nginx:rwx /var/spool/hoge.jp # # getfacl /var/spool/hoge.com getfacl: Removing leading '/' from absolute path names # file: var/spool/hoge.com # owner: fml2 # group: fml # flags: -s- user::rwx user:nginx:rwx group::r-x mask::rwx other::r-x # |
バーチャル・ドメイン用のWebUIをnginxに設定する。
バーチャル・ドメイン用のnginxにfmlの設定を追加する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# cd /etc/nginxc/dfefult.d # # vi fml2.conf # # cat fml2.conf location /fml2/ { alias /usr/local/hoge.jp/www/cgi-bin/admin/; index menu.cgi location ~ \.(pl|sh|cgi)$ { try_files $uri =404; fastcgi_pass unix:/run/fcgiwrap/fcgiwrap.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param PATH_INFO $fastcgi_path_info; } } # |
nginxを再起動する。
1 2 3 4 5 6 |
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # # systemctl restart nginx # |
バーチャル・ドメイン用のGUIサイトにアクセスでる。
以下のURLでGUIの画面が表示されることを確認する。
https://<IPアドレス|ホスト名>/fml2/
ユーザを追加登録し、登録したユーザでメールを受信できることを確認しました。
まとめ
WEBでは利用していたMLがperlのバージョンが上がったために動作しなくなった対応のみを記載しているだけのため、GUIで操作を含めた修正が無いように思われる。
今回、全体的な修正が行えたことが良かったと思われる。
閑話休題
以下のコマンドでパッチを作成する。
1 |
diff -uprN <修正前のソースファイルディレクトリ> <修正したソースファイルのディレクトリ> > <パッチファイル> |