サポート #438
移行テスト
0%
説明
yum -y install ffmpeg
太田 昌宏 さんが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
太田 昌宏 さんが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/
太田 昌宏 さんが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向けなので。
太田 昌宏 さんが14日前に更新
以下の様な記事を発見。PHPのバージョンがガッツリ一致するので、調査する価値はあると思われる。
https://itc-engineering-blog.netlify.app/blogs/php7-selinux-dontaudit
PHP8 では再現しませんでした。 また、PHP7 の場合は、PHP 7.4.6、PHP 7.4.33 の2種類でしか再現は確認していません。
太田 昌宏 さんが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
太田 昌宏 さんが13日前に更新
以下の記事でFPMの理解を深める。
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設定になっているのではないか。
今日はここまで。
太田 昌宏 さんが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のファイルは度のタイミングで変わってしまうんだろうか。。