#author("2020-06-03T20:24:33+09:00","default:tanak0to","tanak0to") RIGHT:[[フリーソフトウェアのコンパイル]] RHEL8 *インストール [#j480a7ea] **ソース [#yd7d6c65] https://www.sympa.org/distribution/index sympa-6.2.42.tar.gz http://sympa-ja.org/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB_(%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8) 依存するパッケージは 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 **ユーザ作成 [#j6bec647] # groupadd -g 9001 sympa # useradd -g sympa -u 9001 -d /home/sympa sympa # chmod a+rx /home/sympa **MariaDB [#v9730bab] # 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 '********'"; **Postfix の設定 [#zb586e67] マニュアル通り 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 *Sympa インストール [#df85ab73] # 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 --- */etc/sympa.conf を編集 [#c7c16004] sendmail_aliases /home/sympa/etc/sympa_aliases を追加. # touch /home/sympa/etc/sympa_aliases # chown sympa:sympa /home/sympa/etc/sympa_aliases # newaliases *Sympa 用 DB 作成 [#fd7b3db2] $ 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 *Apache 設定 [#u71221be] 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 *Sympa 起動 [#t70f4bab] 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 *syslog [#c41e5b95] local1.* /var/log/sympa.log *初回アクセス [#j2cba6aa] http://サーバIP/sympa *配送エラー処理 [#m0ae02b7] http://mailhost.ml.example.jp/sympa/help/admin-bounces.html ---- *バージョンアップ方法は,Web サイトに. [#d957adca] データを移行して 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 で管理者ログインできる