web-dev-qa-db-ja.com

エラー「Apache "php value"」を開始

私の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 "ファイル"

エラーの意味とその修正方法を教えてください。

12
David E.

最近、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ディレクティブをコメントアウトしないように強くお勧めします。

12
David Houde

無効なコマンド「php_value」、おそらくスペルが間違っているか、サーバー構成に含まれていないモジュールによって定義されています

Apache httpd-2.4は、誤ってprefork以外のmpmモジュールを使用するように構成した場合に失敗する可能性があります(Linux(CentOs7/RHEL7)のphpで正常に機能するのはprefork mpmのみです)prefork mpmを使用するようにApache httpd構成を修正すると解決します問題。

  1. /etc/httpd/conf.modules.d/10-php.conf

    LoadModule php5_module modules/libphp5.so

  2. /etc/httpd/conf.modules.d/00-mpm.conf

    LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

6

これは、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以外のモジュールを使用する必要がある場合は、これらの行をコメント化または削除する必要があります。

1
Alex Langer

以前に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
1
ywarnier

それらの行をコメントアウトするだけです。

持っていた

#php_value session.save_handler "files"
#php_value session.save_path    "/var/lib/php/session"

次に、「Pleskで再構成する場合は、Apacheを再起動してください」を実行すると、正常に機能するように見えました。これはplesk update#53 10分前に発生しました。

0
Jimmy

私は同様の問題を抱えており、php5モジュールがコメント化されていることを認識しました。つまり、ロードできず、phpmyadmin confではphp_admin_valueがphp5_moduleで機能していて、配置されていなかったためにエラーが発生していました。私はhttpd.confに行ってコメントを外しました:

LoadModule php5_module "c:/wamp/bin/php/php5.5.12/php5Apache2_4.dll"
0
Nickool

編集:以下のコメントを実装したところ、この問題が発生した別の理由があることがわかりました。サーバーには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

0
ymdahi

Atomicからのアップグレードを実行する前に、ファイルphp.confのバックアップを作成してください。次に、アップグレードが完了したら、新しいファイルを古いファイルで上書きします。

0
David E.