fedora 44にAvantFAXをインストールしてみる(結果的に断念したよ)

AvantFAX

AvantFAXを導入しようとしたが、ちょっと古すぎて(php version 5を想定している)結果的に断念した。Webブラウザで接続するところでどうしても修正できなかった。とりあえず、どのようなことを行ったか、記録だけでも残しておく。

hylafaxが動いているfedora 44の環境にインストールしてみる。

fedora用のインストールスクリプトが現在(fedora 44)の環境に適していないのと、mysqlを前提にスクリプトが書かれているので、そのスクリプトの内容を手動で実施していく。

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に聞きながら修正していったが、動作させることはできなかった。

コメント

タイトルとURLをコピーしました