私のvpsを更新した後、次のエラーが表示されます。
Apacheの開始に失敗しました:httpdの開始:/etc/httpd/conf.d/php.confの31行目の構文エラー:無効なコマンド 'php_value'、サーバーの構成に含まれていないモジュールによってスペルが間違っているか、定義されている可能性があります[失敗]
PHPでモジュールを有効にします。
[PHPモジュール] bz2カレンダーコアctype curl日付dom ereg exif fileinfoフィルターftp Gd gettext gmpハッシュiconv imap intl ionCubeローダーjson libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar readlineリフレクションセッションshmop SimpleXMLソケットスタンダードソケットSPLsql splsql wddx xml xmlreader xmlrpc xmlwriter xsl Zip zlib [Zend Modules] ionCube PHPローダー
エラーに関連する行:
php_value session.save_handler "ファイル"
エラーの意味とその修正方法を教えてください。
最近、CentOSでPlesk 9.5を使用してこの正確な問題に遭遇しました。
Pleskのアップデートが原因であったのかどうかは、はっきりとは言えません。顧客は最近変更が加えられたとは考えていませんが、Apacheはこのエラーで開始できませんでした。
違反が原因ではないことを確認するためにシステムを評価した後、いくつかのトラブルシューティングを行い、mod_php
がApache構成から削除されていることを確認しました。 Plesk設定を確認した後、ボックス上のすべての仮想ホストはFastCGIとSuExecを使用していました。
FastCGIおよびSuExecを使用する場合、php = conf(FastCGI)および.htaccess(SuExec)のPHPディレクティブを変更することはできません。
顧客は元々問題のある行をコメントアウトしていましたが、これはすべてのセッションサポートを壊しました。私がそれを解決できた唯一の方法は、http_.confにmod_phpを手動で追加することでした。
次の行を他のLoadModuleのセクションに追加します。パス(../modules/)がそこにある残りのモジュールと一致していることを確認してください。システムにすでに存在していて、更新中に単に構成から削除された可能性があります。
bash# vi /etc/httpd/conf/httpd.conf
LoadModule php5_module ../modules/libphp5.so
bash# apachectl restart
これは不意を突かれて、問題を引き起こしたのはアップグレードであるのか、これが最善の修正であるのかは確かではありません。私はコメントを受け付けていますが、/etc/httpd/conf.d/php.conf
のphpディレクティブをコメントアウトしないように強くお勧めします。
無効なコマンド「php_value」、おそらくスペルが間違っているか、サーバー構成に含まれていないモジュールによって定義されています
Apache httpd-2.4は、誤ってprefork以外のmpmモジュールを使用するように構成した場合に失敗する可能性があります(Linux(CentOs7/RHEL7)のphpで正常に機能するのはprefork mpmのみです)prefork mpmを使用するようにApache httpd構成を修正すると解決します問題。
/etc/httpd/conf.modules.d/10-php.conf
LoadModule php5_module modules/libphp5.so
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
これは、mod_prefork以外のMPMを使用するようにApacheを構成した場合に発生する可能性があります。 httpd -V
コマンドで使用中のモジュールを確認してください。次のように表示されます。
...
Server MPM: prefork
...
そうでない場合は、確認してください
/etc/httpd/conf.modules.d/00-mpm.conf
説明したように here で、次の行がその中にあり、コメント化されていないことを確認してください:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
mod_prefork
以外のモジュールを使用する必要がある場合は、これらの行をコメント化または削除する必要があります。
以前にDavidがコメントしたように、これはおそらくPHP modがApache2から無効にされているためです。
私には、Apacheを(再)起動するとエラーとして表示されました。
制御プロセスがエラーコードで終了したため、Apache2.serviceのジョブが失敗しました。詳細については、「systemctl status Apache2.service」および「journalctl -xe」を参照してください。
次に、journalctl -xe内で:
AH00526:/etc/Apache2/sites-enabled/Host.confの31行目の構文エラー無効なコマンド 'php_value'、おそらくサーバー設定に含まれていないモジュールによってスペルが間違っているか、定義されています
これは、Ubuntu 17.10から18.04にアップグレードすると(その結果、PHP7.1から7.2に)、libapache2-mod-php *が完全に無効になったようです。
Ubuntuでは、次のように修正する必要があります。
Sudo a2enmod php7.2
Sudo systemctl restart Apache2
それらの行をコメントアウトするだけです。
持っていた
#php_value session.save_handler "files"
#php_value session.save_path "/var/lib/php/session"
次に、「Pleskで再構成する場合は、Apacheを再起動してください」を実行すると、正常に機能するように見えました。これはplesk update#53 10分前に発生しました。
私は同様の問題を抱えており、php5モジュールがコメント化されていることを認識しました。つまり、ロードできず、phpmyadmin confではphp_admin_valueがphp5_moduleで機能していて、配置されていなかったためにエラーが発生していました。私はhttpd.confに行ってコメントを外しました:
LoadModule php5_module "c:/wamp/bin/php/php5.5.12/php5Apache2_4.dll"
編集:以下のコメントを実装したところ、この問題が発生した別の理由があることがわかりました。サーバーにはPHP-FPMが実装されています。 PHP-FPMの実装の一部により、/etc/httpd/conf.d/php.conf
が無効になりました(つまり、php.conf.bakに名前が変更されました)。最近の更新により、新しいphp.confが導入されました。その結果、PHP-FPM構成が競合し、上記のエラーが発生していました。修正は、php.confの名前をphp.conf.bak.feb2019
のような名前に変更することでした。その結果、php.confは読み込まれず、php-fpmとの競合は発生しません。
///編集前://///
私にとっての解決策は、ここで提供された答えの組み合わせでした。
長い間更新されていないOracle Linux 7サーバーを更新した後、このエラーに気付きました
@ dasharathmasirkar、@ davidhoude @alexlangerによって示唆されているように、この問題は、更新後にmpm prefork構成がオーバーライドされることが原因です。
これに対処するには:
/etc/httpd/conf.modules.d/00-mpm.conf
を確認し、次の行のコメントが外されていることを確認します。
# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.Apache.org/docs/2.4/mod/prefork.html
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
また、競合しないように、他のワーカーのmpmがコメント化されていることを確認してください。
# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.Apache.org/docs/2.4/mod/worker.html
# LoadModule mpm_worker_module modules/mod_mpm_worker.so
次にApacheを再起動します:apachectl restart
Atomicからのアップグレードを実行する前に、ファイルphp.conf
のバックアップを作成してください。次に、アップグレードが完了したら、新しいファイルを古いファイルで上書きします。