プロジェクト

全般

プロフィール

サポート #438

移行テスト

太田 昌宏 さんが12ヶ月前に追加. 9日前に更新.

ステータス:
新規
優先度:
通常
担当者:
開始日:
2025/04/25
期日:
進捗率:

0%

予定工数:

説明

yum -y install ffmpeg

#1

太田 昌宏 さんが12ヶ月前に更新

  • トラッカーバグ から サポート に変更

[ffmpeg]
ffmpegのインストールできない。→RPMFusionリポジトリが死んでると思われる
[httpd]
httpdのインストール時にパスワードを聞かれた。sudoじゃないから?

[php7.4.4]
remiリポジトリがないので以下コマンドできない
yum install -y --enablerepo=remi,remi-php74 php php-mbstring php-bcmath php-pdo php-xml php-mysqlnd php-intl php-gd php-pecl-zip

[git]
入ってないのでインストール
[mariaDB]
curl使う必要ない。以下でOK
dnf -y install mariadb-server

[phpMyAdmin]
epelリポジトリ使う
dnf --enablerepo=epel -y install phpMyAdmin php-mysqlnd

[npm]
入ってないのでいれる
dnf -y install npm

#2

太田 昌宏 さんが12ヶ月前に更新

[手順]

■スワップメモリの設定
 almalinuxはスワップメモリが設定されていないので、なにかのインストール時等ですぐフリーズしてしまう。
 初期にスワップメモリを設定してあげる必要がある

■dnfの更新(AlmaLinuxではyumの後継dnfを使う)

dnf -y update

■アパッチのインストール

sudo dnf -y install httpd
sudo systemctl enable httpd

■ffmpegのインストール


■expectのインストール

sudo dnf -y install expect

■epelリポジトリを追加
dnf -y install epel-release

■phpMyAdmin追加(remiにしか無いと思われる)
dnf --enablerepo=epel install phpMyAdmin

■letencrypt(手間が変わった)
以下を参照
https://www.magic-object.com/apache-%E3%81%AB%E7%84%A1%E6%96%99%E3%81%AE-ssl-%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/

#3

太田 昌宏 さんが4ヶ月前に更新

android録音の場合に録音データがサーバにアップされない問題だけが残っている状態。

#4

太田 昌宏 さんが15日前に更新

android録音の場合に録音データがサーバにアップされない問題の調査

centosとalmalinxの差分調査

テンポラリファイルアップロード先のtmpフォルダのアクセス権・場所は差分がないか。

・centos /tmp 所有者 root:root
・almalinx /tmp 所有者 root:root
→差分なし

php.iniのfile_uploads設定の差分

・centos On
・almalinx On
→差分なし

firewallの設定

 systemctl stop firewalldして停止しても変わらず。
 

android側からサーバのWavController.phpのuploadActionにアップしたときのログ確認

almalinuxのログの場所
・/var/log/php-fpm/www-error.log

androidのアプリからwavController/uploadにアクセスした内容を確認すると、

[01-Apr-2026 11:33:17 Asia/Tokyo] PHP Fatal error: Uncaught Zend_Session_Exception: Zend_Session is not marked as readable. in /var/www/smart-cti/vendor/zendframework/zendframework1/library/Zend/Session/Abstract.php:86
Stack trace:
#0 /var/www/smart-cti/vendor/zendframework/zendframework1/library/Zend/Session.php(830): Zend_Session_Abstract::_namespaceIsset()
#1 /var/www/smart-cti/application/modules/default/controllers/CallListController.php(39): Zend_Session::namespaceIsset()
#2 [internal function]: CallListController->__destruct()
#3 {main}
thrown in /var/www/smart-cti/vendor/zendframework/zendframework1/library/Zend/Session/Abstract.php on line 86
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: upfile in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 174
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Trying to access array offset on value of type null in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 174
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: upfile in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 178
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Trying to access array offset on value of type null in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 178
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: upfile in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 179
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Trying to access array offset on value of type null in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 179
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: upfile in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 181
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Trying to access array offset on value of type null in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 181
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: upfile in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 211
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Trying to access array offset on value of type null in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 211
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: upfile in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 214
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Trying to access array offset on value of type null in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 214
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: upfile in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 216
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Trying to access array offset on value of type null in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 216
[01-Apr-2026 11:33:20 Asia/Tokyo] PHP Notice: Undefined index: extension in /var/www/smart-cti/application/modules/default/controllers/WavController.php on line 229

とある。

google AI検索によると、
thrown in /var/www/smart-cti/vendor/zendframework/zendframework1/library/Zend/Session/Abstract.php on line 86
でエラーが起きるのは、

Zend Framework 1 におけるセッション処理の問題を示しています。これは多くの場合、session_start() の呼び出しが遅すぎる(出力後)か、設定の不一致が原因です。

[解決法]
Zend/Session/Abstract.php:86 のエラーは、通常、Zend Framework 1 におけるセッション処理の問題を示しています。
これは多くの場合、session_start() の呼び出しが遅すぎる(出力後)か、設定の不一致が原因です。Zend_Session::start() が早めに呼び出されていることを確認してください。
セッション初期化前にヘッダーが送信されていないことを確認し、php.ini のセッション設定を検証してください。

一般的な解決策:
早期起動の確保:bootstrap または index.php の先頭で、HTML や echo 文の前に Zend_Session::start() を呼び出してください。
→WavController.phpのIndexActionで試してみたが変わらず。

→/var/www/smart-cti/application/Bootstrap.phpの_initViewの先頭行でZend_Session::start();を入れたら、Zendのエラーログが消えたがphpのエラーUndefined index: upfileは
   まだ残る。

セッションハンドラの競合:カスタムセッションストレージ(データベースや Redis など)を使用している場合は、セッション開始前にハンドラが正しく設定されていることを確認してください。
  → ちょっと原因として考えにくいので後回し。

権限:php.ini で session.save_path に定義されているディレクトリが、Web サーバーユーザーによって書き込み可能であることを確認してください。
→centosと差分なし。

phpのバージョン差分が原因かも。

centos 7.4.27
almalinx 7.4.33

今日はここまで。次回は以下を調査する。

phpバージョンの差分をなくせば、問題ないのか。
→バージョンを同じにして試す。

phpがfpmなのが問題なのではないか。
→これが原因のような気がする。fpmはnginx向けなので。

#5

太田 昌宏 さんが14日前に更新

以下の様な記事を発見。PHPのバージョンがガッツリ一致するので、調査する価値はあると思われる。

https://itc-engineering-blog.netlify.app/blogs/php7-selinux-dontaudit

PHP8 では再現しませんでした。
また、PHP7 の場合は、PHP 7.4.6、PHP 7.4.33 の2種類でしか再現は確認していません。
#6

太田 昌宏 さんが13日前に更新

  • 担当者太田 昌宏 にセット

phpがfpmなのが問題なのではないか。 →予想は当たり。FPMを停止することでファイルアップロードできるようになった。

以下の記事を参考にFPMが起動しないように設定を変更してみる。
https://www.netassist.ne.jp/techblog/31206/

systemctl cat httpd.service

fpmが以下が場所にあることがわかる。

# /etc/systemd/system/httpd.service.d/php-fpm.conf

このphp-fpm.confファイルを移動するか削除する

mv php-fpm.conf mv php-fpm.conf.old

設定を変えたのでdaemonのリロードする。(リロードしないと反映されない)

systemctl daemon-reload

fpmを停止する。

systemctl stop php-fpm

apacheを再起動する。

systemctl restart httpd

fpmを停止してwebサーバにアクセスすると、以下が表示される。

503 Service Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems.
Please try again later.

以下のように修正する。

/etc/httpd/conf.modules.d/00-mpm.conf
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
 :
LoadModule mpm_event_module modules/mod_mpm_event.so
 :

以下の様に反転させる。

/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
 :
#LoadModule mpm_event_module modules/mod_mpm_event.so
 :

apacheを再起動する。

systemctl restart httpd

#7

太田 昌宏 さんが13日前に更新

以下の記事でFPMの理解を深める。

https://ja.stackoverflow.com/questions/37428/apache2-4%E3%81%A7php%E5%8B%95%E4%BD%9C%E3%81%95%E3%81%9B%E3%82%8B%E9%9A%9B-php-fpm%E3%81%AF%E5%BF%85%E9%A0%88

Apache上のPHPの動作方式は、回答1で述べられているようにmodとFastCGIがあります。
ApacheのMPMがprefork以外の場合は、modでは正常に動きません。
Apache2.4からは、デフォルトで使用されるMPMがeventになりました。(※)
PHPをFastCGI方式で動かすためには、PHP-FPMが必要になります。
Apache2.4からは、MPMの切り替えは設定ファイルの書き換え+Apache再起動で切り替えられます。
(※) Apache2.4のインストール方法によっては、デフォルトがpreforkだったりします。
 CentOS系ならyum経由で入れると、preforkがデフォルトなことが多いです。

動作中のapacheの各種確認方法
apachectl -V | grep MPM
apachectl -V | grep ROOT
apachectl -V | grep conf

つまり、apacheのバージョンやインストール方法次第で、module(prefork)か、CGIになってしまうようなので、
最初からpreforkになるようインストール方法の変更を検討する。
→fpmを使わないようにする手順が多すぎるので。

amlalinux用のinstall.shでは、dnf経由でhttpd(apache)をインストールしているが、
これをyum経由でインストールするように変更すれば、最初からprefork設定になっているのではないか。

今日はここまで。

#8

太田 昌宏 さんが12日前に更新

以下記事によるとコメントの付け替えだけでeventかpreforkか変更できるようなので、fpmを削除したりする必要はなさそう。

https://cpoint-lab.co.jp/article/201909/11805/

#9

太田 昌宏 さんが12日前に更新

アップロードできる環境ができあがりましたが、動作している環境を壊したくないので、
もう一つ環境インストール用のalamalinuxサーバを用意してください。
→佐藤さん

#10

佐藤 剛育 さんが10日前に更新

太田 昌宏 さんは #note-9 で書きました:

アップロードできる環境ができあがりましたが、動作している環境を壊したくないので、
もう一つ環境インストール用のalamalinuxサーバを用意してください。
→佐藤さん

下記のmobile CTIの解約済サーバをご使用ください。

(解約後2ヵ月経過) 解約済2024年4月末 プラネットシステム
153.126.188.234

#11

太田 昌宏 さんが9日前に更新

almalinuxの確認の過程で以下のことに気づいた。

既存のアポ放題サーバがgit pullできない。
エラーは以下。

[root@bridge2 smart-cti]# git pull
Updating 0f6216a..f028af6
error: Your local changes to the following files would be overwritten by merge:
        composer.json
        composer.lock
Please, commit your changes or stash them before you can merge.
Aborting

要はローカル(ここでは開発ではないエンドユーザのサーバ)のcomposer.jsonとcomposer.lockがオリジナルから変わってしまってるから、
マージしろとのこと。

マージするわけにいかないので、ローカル環境での変更は破棄することにする。

ローカルの変更を破棄するコマンド

git checkout .

再度git pull.でOK。

もうこの状態になってしまっているものはしょうがないので、
旧サーバ(v2.2.00)でアプデが必要な場合は上記手順。
almalinuxで運用する場合は、.gitignoreにcomposer.jsonとcomposer.lockを追加してgitの対象外にしようと思ったが、
そうするとscpで左記2ファイルを挙げないと行けない手間が増えるので、git pullができていない状況を見かけたら、

git checkout .

を実行するように運用する。
それにしてもcomposer.jsonのファイルは度のタイミングで変わってしまうんだろうか。。

#12

太田 昌宏 さんが9日前に更新

以降の運用方針。

almalinux
・新規顧客はalmalinux os10を使用。
・設置は手動で行う。

centos
・既存顧客のアプデが必要な場合はgit checkoutしてから。
・できれば既存顧客のサーバもcentosからalmalinuxに移行していきたい。→環境がcentos almalinuxと2つある状況が良くないため。
→移行に際して録音データは必要無ければ諦めてもらいたい。(移行がものすごく手間のため)
 

他の形式にエクスポート: Atom PDF