AvantFAXを導入しようとしたが、ちょっと古すぎて(php version 5を想定している)結果的に断念した。Webブラウザで接続するところでどうしても修正できなかった。とりあえず、どのようなことを行ったか、記録だけでも残しておく。
hylafaxが動いているfedora 44の環境にインストールしてみる。
fedora用のインストールスクリプトが現在(fedora 44)の環境に適していないのと、mysqlを前提にスクリプトが書かれているので、そのスクリプトの内容を手動で実施していく。
- mariadbのインストールおよび設定
- その他のソフトのインストール
- AvantFAXのインストール
- AvantFAXのダウンロードと展開
- ファイルの配置
- アクセス権の設定
- AvantFAXのサンプルconfigのコピー
- /etc/mail/trusted-usersの作成
- hylafaxの設定
- httpdの起動
- /etc/httpd/conf.d/avantfax.confの作成とhttpdの再起動
- AvantFAX用データベースにテーブルを作成する
- SYMLINK AVANTFAX SCRIPTS
- FIX FILEINFO
- SETUP SUDO PERMISSIONS
- Make backup of HylaFAX configuration
- CONFIGURE MODEMS TO USE AVANTFAX
- ADD MODEMS TO DATABASE
- ADD CRONTAB ENTRIES
- Log into the Administrative interface
mariadbのインストールおよび設定
mariadbのインストール
% sudo dnf -y install mariadb mariadb-server mariadb-devel
/etc/my.cnf.d/charset.cnfの作成
以下の内容で作成する。
[mysqld]
character-set-server = utf8mb4
[client]
default-character-set = utf8mb4
mariadbの起動
% sudo systemctl enable mariadb
% sudo systemctl start mariadb
% sudo systemctl status mariad
mariadbの初期化
パスワードだけ設定しあとはEnterを入力した。
% sudo mysql_secure_installation
AvantFAX用のデータベースの作成
AvantFAX用のデータベースを作成する。
% sudo mariadb -u root -p
MariaDB [(none)]> CREATE DATABASE avantfax;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON avantfax.* TO 'avantfax'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
その他のソフトのインストール
パッケージのインストール
以下のパッケージをインストールした。
% sudo dnf install -y httpd
% sudo dnf install -y php php-fpm php-mysqlnd php-gd
% sudo dnf install -y php-pear php-mbstring php-soap php-process
% sudo dnf install -y netpbm-progs
% sudo dnf install -y php-pear-Mail-Mime php-pear-Mail
% sudo dnf install -y php-pear-Net-SMTP
% sudo dnf install -y php-pear-MDB2-Driver-mysql
% sudo dnf install -y ImageMagick ImageMagick-devel ghostscript
% sudo dnf install -y giflib cronie php-pear-MDB2-Driver-mysqli
/etc/php-fpm.d/www.confの修正とphp-fpmの起動
以下のように修正する。
user = apache
group = apache
listen.owner = apache
listen.group = apache
listen.mode = 0660
;listen.acl_users = apache,nginx ;コメントにする
あとで、nginxに変更する予定。
% sudo systemctl enable php-fpm
% sudo systemctl start php-fpm
% sudo systemctl status php-fpm
AvantFAXのインストール
AvantFAXのダウンロードと展開
AvantFAXソース用のディレクトリを作成しダウンロードし、展開する。
% mkdir -p ~/src
% cd ~/src
% wget http://downloads.sourceforge.net/avantfax/avantfax-3.3.5.tgz
% tar -zxvf avantfax-3.3.5.tgz
ファイルの配置
以下のようにwebサーバのディレクトリへ配置する。
% cd ~src/avantfax-3.3.5
% sudo mv avantfax /var/www/html
アクセス権の設定
以下のコマンドを実行してアクセス権の設定を行う。
% cd /var/www/html
% sudo chown -R apache:apache avantfax
% sudo chmod 0770 avantfax/includes/templates/admin_theme/templates_c/ \
% sudo chmod 0770 avantfax/includes/templates/admin_theme/cache/ \
% sudo chmod 0770 avantfax/includes/templates/main_theme/templates_c/ \
% sudo chmod 0770 avantfax/includes/templates/main_theme/cache/
% sudo chmod 0755 avantfax/includes/faxcover.php \
% sudo chmod 0755 avantfax/includes/faxrcvd.php \
% sudo chmod 0755 avantfax/includes/notify.php \
% sudo chmod 0755 avantfax/tools/update_contacts.php \
% sudo chmod 0755 avantfax/tools/faxcover.php \
% sudo chmod 0755 avantfax/includes/avantfaxcron.php \
% sudo chmod 0755 avantfax/includes/dynconf.php
% sudo chmod -R 0770 avantfax/tmp avantfax/faxes
% sudo chown -R apache:uucp avantfax/tmp avantfax/faxes
AvantFAXのサンプルconfigのコピー
以下のコマンドを実行する。
% sudo cp /var/www/html/avantfax/includes/local_config-example.php /var/www/html/avantfax/includes/local_config.php
/etc/mail/trusted-usersの作成
本来は、以下の内容を追加するのだが、まだ作成していない。
apache
hylafaxの設定
/etc/hylafax/hyla.confに以下の行を追加する。
#
## JobFmt for AvantFAX
#
JobFmt: "%-3j %3i %1a %15o %40M %-12.12e %5P %5D %7z %.25s"
httpdの起動
% sudo systemctl enable httpd
% sudo systemctl start httpd
% sudo systemctl status httpd
/etc/httpd/conf.d/avantfax.confの作成とhttpdの再起動
以下の内容でavantfax.confを作成する。
Alias /avantfax "/var/www/http/avantfax/"
<Directory "/var/www/http/avantfax/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
上記のファイルを作成したら、apacheを再起動する。
% sudo systemctl restart httpd
AvantFAX用データベースにテーブルを作成する
以下のコマンドを実行する。
% cd ~src/avantfax-3.3.5
% mariadb --user=avantfax --password=password avantfax < create_tables.sql
SYMLINK AVANTFAX SCRIPTS
% sudo ln -s /var/www/html/avantfax/includes/faxrcvd.php /var/spool/hylafax/bin/faxrcvd.php
% sudo ln -s /var/www/html/avantfax/includes/dynconf.php /var/spool/hylafax/bin/dynconf.php
% sudo ln -s /var/www/html/avantfax/includes/notify.php /var/spool/hylafax/bin/notify.php
FIX FILEINFO
ln -s /usr/share/file/magic* /usr/share/misc/
SETUP SUDO PERMISSIONS
sudo visudoコマンドで以下の行を追加する。
apache ALL= NOPASSWD: /sbin/reboot, /sbin/halt, /usr/sbin/faxdeluser, /usr/sbin/faxadduser -u * -p * *
Make backup of HylaFAX configuration
HylaFAXの定義のバックアップ。
% sudo mkdir -p /var/spool/hylafax/etc/abackup
% sudo cp /var/spool/hylafax/etc/config* /var/spool/hylafax/etc/abackup/
CONFIGURE MODEMS TO USE AVANTFAX
/var/spool/hylafax/etc/config.ttyIAX0に以下の行を追加
#
## AvantFAX
#
FaxRcvdCmd: bin/faxrcvd.php
DynamicConfig: bin/dynconf.php
UseJobTSI: true
ADD MODEMS TO DATABASE
以下のシェルスクリプトを実行してモデム(ttyIAX0など)をデータベースに登録する。
#!/bin/sh
SPOOL=/var/spool/hylafax
USER=avantfax
PASS=password
DB=avantfax
# ADD MODEMS TO DATABASE
for i in `ls $SPOOL/etc/config.*`; do
if [ "$i" != "$SPOOL/etc/config.sav" ]; then
if [ "$i" != "$SPOOL/etc/config.devid" ]; then
tilde=`echo $i | grep '~'`
if [ "$?" -eq "1" ]; then
if [ -f $i ]; then
modem=`echo $i | awk -F'/' '{print $6}' | awk -F'.' '{print $2}'`
exists=`mariadb --user=$USER --password=$PASS $DB -sNe "select count(*) existe from Modems where device='$modem'"`
if [ "$exists" -eq "0" ]; then
# ADD MODEMS TO AVANTFAX DATABASE
mariadb --user=$USER --password=$PASS -e "INSERT INTO Modems SET device='$modem', alias ='$modem'" $DB
echo "Configuring $modem for AvantFAX"
fi
fi
fi
fi
fi
done
ADD CRONTAB ENTRIES
とりあえず、以下の内容でファイル(/etc/cron.d/avantfax)を作成するが、あとでsystemd timersへ移行する。
0 0 * * * /var/www/http/avantfax/includes/avantfaxcron.php -t 2
Log into the Administrative interface
以下のURLにアクセス。
http://IPアドレス/avantfax/
この後、Geminiに聞きながら修正していったが、動作させることはできなかった。
コメント