フリーソフトウェアのコンパイル

RHEL8

インストール

ソース

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

ユーザ作成

# groupadd -g 9001 sympa
# useradd -g sympa -u 9001 -d /home/sympa sympa
# chmod a+rx /home/sympa

MariaDB

# 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 の設定

マニュアル通り

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 インストール

# 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 を編集

sendmail_aliases /home/sympa/etc/sympa_aliases

を追加.

# touch /home/sympa/etc/sympa_aliases
# chown sympa:sympa /home/sympa/etc/sympa_aliases
# newaliases

Sympa 用 DB 作成

$ 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 設定

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 起動

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

local1.*                  /var/log/sympa.log

初回アクセス

http://サーバIP/sympa

配送エラー処理

http://mailhost.ml.example.jp/sympa/help/admin-bounces.html


バージョンアップ方法は,Web サイトに.

データを移行して

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

で管理者ログインできる


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-03 (水) 20:24:33