RHEL8
https://www.sympa.org/distribution/index sympa-6.2.42.tar.gz
依存するパッケージは EPEL からインストール インストールしたモジュールは設計書参照
mkdir /usr/local/share/perl5 cd /usr/local/share/perl5 cd /usr/share/MHonArc for file in 'ls -1' do ln -s /usr/share/MHonArc/${file} /usr/local/share/perl5/${file} done
# groupadd -g 9001 sympa # useradd -g sympa -u 9001 -d /home/sympa sympa # chmod a+rx /home/sympa
# mysql_secure_installation <-- Sympa 用の DB は Sympa インストール時に作られるので, root のパスワードは Sympa インストール後に設定するほうがいい (root のパスワードが設定されていると自動的には作成されない) # mysql -u root -p MariaDB[none]> GRANT ALL PRIVILEGES ON sympa.* TO 'sympadbuser'@'localhost' -> IDENTIFIED BY '********'";
マニュアル通り
alias_maps = hash:/etc/aliases, hash:/etc/postfix/aliases.sympa, hash:/home/sympa/etc/sympa_aliases alias_database = hash:/etc/aliases, hash:/etc/postfix/aliases.sympa, hash:/home/sympa/etc/sympa_aliases
# yum group install 開発ツール
# cd /root # mkdir build # cd build # tar xvzf ~/src/sympa-6.2.42.tar.gz # cd sympa-6.2.42 # ./configure --with-unitsdir=/usr/lib/systemd/system # make # make install # /home/sympa/bin/sympa_wizard.pl check
足らないモジュールをチェック
# /home/sympa/bin/sympa_wizard.pl 基本メールドメイン名 domain: ml.example.jp リストシステム管理者の電子メールアドレス listmaster: admin@ml.example.jp <--仮 言語の初期値 lang : ja-JP 対応言語 supported lang: ja サービスの題名 title: 私のメーリングリスト Sympa の表示名 gecos: SYMPA 従来キャラクタセットへの対応 legacy_character_support_feature: on データベースの種類 db_type: MySQL データベースのサーバのホスト名 db_host: localhost データベース名 db_name: sympa データベース接続のユーザ名 db_user: sympadbuser データベース接続パスワード db_passwd: ****** syslog ファシリティ syslog: LOCAL1 syslog サーバとの接続方式 log_socket_type: unix メッセージの最大サイズ max_size: 20480000 sendmail のパス sendmail: /usr/sbin/sendmail リストを作成できるのは create_list: public_listmaster ブラックリストの使用 use_blacklist: send,create_list メーリングリストのオーナー owner_domain: なし オーナーのリストごとの最少人数 owner_domain_min: 0 投稿を保管庫に格納する process_archive: off カスタムアーカイブプログラム custom_archiver: なし MHonArc のパス mhonarc: /usr/bin/mhonarc 警告レートの初期値 bounce_warn_rate: 30 スパムの印になるヘッダフィールド antispam_tag_header_name: X-Spam-Status スパムの印になるヘッダフィールドを検査する正規表現 antispam_tag_header_spam_regrexp: ^\s*Yes 非スパムを判定する正規表現 antispam_tag_header_ham_regrexp: ^\s*No 結果を通知するヘッダフィールド spam_status: x-spam-status リストホームディレクトリ home: /home/sympa/list_data 投稿を補完するディレクトリ arc_path: /home/sympa/arc Sympa 電子メールアドレスのローカル部 email: sympa リストの設定をキャッシュする cache_list_config: none ウェブインタフェイスの URL wwsympa_url: http://mailhost.ml.example.jp/sympa 静的コンテンツの URL static_content_url: /static-sympa 静的コンテンツを格納するディレクトリ static_content_path: /home/sympa/static_content ウェブインタフェイス用の syslog ファシリティ log_facility: LOCAL1 メインページの種類 default_home: home 保管庫のデフォルト表示順 archive_default_index: thrd 共有文書置き場の容量制限初期値 default_shared_quota: なし HTML エディタを使う use_html_editor: 0 信頼できる CA 証明書を含むファイル cafile: /home/sympa/default/ca-bundle.crt 信頼できる CA 証明書が置かれるディレクトリ capath: なし リストの秘密鍵の暗号化パスワード key_passwd: なし ウイルス検索エンジン antivirus_path: なし ウイルス検索ソフトのコマンドライン引数 antivirus_args: なし パスワード強度検査 password_validation: なし FastCGI を有効にする use_fast_cgi: 0
sendmail_aliases /home/sympa/etc/sympa_aliases
を追加.
# touch /home/sympa/etc/sympa_aliases # chown sympa:sympa /home/sympa/etc/sympa_aliases # newaliases
$ mysql mysql> CREATE DATABASE sympa CHARACTER SET utf8; mysql> GRANT ALL PRIVILEGES ON sympa.* TO <db_user>@<client host> -> IDENTIFIED BY '<db_passwd>'; mysql> QUIT
テーブル作成
# /home/sympa/bin # sympa.pl --health_check
LoadModule alias_module modules/mod_alias.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so ... <Location /sympa> SetHandler "proxy:unix:$PIDDIR/wwsympa.socket|fcgi://" Require all granted </Location> <Location /static-sympa> Require all granted </Location> Alias /static-sympa $STATICDIR
src/etc/script に wwsympa.service があるらしい
そのスクリプトの
FCGI_OPTS="-M 0600 nginx"
の部分を変更して
FCGI_OPTS="-M 0600 apache"
とする
# cp $SRC/src/etc/script/sympa.service /usr/lib/systemd/system # cp $SRC/src/etc/script/wwsympa.service /usr/lib/systemd/system # cp $SRC/src/etc/script/sympa-archive.service /usr/lib/systemd/system # cp $SRC/src/etc/script/sympa-bounse.service /usr/lib/systemd/system # cp $SRC/src/etc/script/sympa-outgoing.service /usr/lib/systemd/system # cp $SRC/src/etc/script/sympa-task.service /usr/lib/systemd/system # systemctl --now enable sympa # systemctl --now enable wwsympa
local1.* /var/log/sympa.log
http://サーバIP/sympa
http://mailhost.ml.example.jp/sympa/help/admin-bounces.html
データを移行して
sympa --upgrade 的なコマンドを実行 https://sympa-community.github.io/manual/upgrade.html https://sympa-community.github.io/manual/upgrade/notes.html
(1) DB をダンプ,リストア
# mysqldump -u root -p --add-drop-table --create-options sympa > /var/tmp/sympadb.dump Pass: *****
データ転送
# systemctl stop httpd # systemctl stop sympa # systemctl stop wwsympa # mysql -u root -p Pass: R1de_Tech > DROP DATABASE sympa; > CREATE DATABASE sympa CHARACTER SET utf8; > QUIT; # mysql -u root -p sympa < sympadb.dump
(2) $EXPLDIR ディレクトリに ML の設定ファイルが入っている
$EXPLDIR =
これを移す
$SPOOLDIR も alias も
(3) sympa.conf wwsympa.conf(もしあれば) を移すが cookie パラメータをいじると保存されているパスワードが 壊れてしまうので注意.
(4) $SYSCONFDIR カスタマイズ設定が入っているので移す.
$SYSCONFDIR =
(5) $ARCDIR ディレクトリにアーカイブが入っているので移す
$ARCDIR =
(6) /home/sympa/etc/data_structure.version を古いほうのバージョンに合わせる
6.2.16 <- 6.2.42
(7) コマンド実行
sympa.pl --upgrade
確認
# systemctl start sympa # systemctl start wwsympa # systemclt start httpd
admin@ml.example.jp
で管理者ログインできる