Apacheの「php値」の起動エラー


12

vpsを更新した後、次のエラーが表示されます。

Apacheの起動に失敗しました:httpdの起動:/etc/httpd/conf.d/php.confの31行目の構文エラー:無効なコマンド 'php_value'、サーバー構成に含まれていないモジュールによってスペルミスまたは定義された可能性があります[失敗]

PHPでモジュールを有効にします。

[PHPモジュール] bz2カレンダーコアctype curl日付dom ereg exifファイル情報フィルターftp gd gettext gmpハッシュiconv imap intl ionCube Loader json libxml mbstring mcrypt mhash mysql mysqli openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar readline Reflection session shmop SimpleXML sockets SPLSQL wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend Modules] ionCube PHPローダー

エラーに関連する行:

php_value session.save_handler "ファイル"

エラーは何を意味し、どのように修正できますか?

回答:


12

最近、CentOSでPlesk 9.5を使用してこの問題に遭遇しました。

Pleskの更新が原因であるかどうかは確かに言えません。お客様は最近変更が行われたとは思わないが、Apacheはこのエラーで開始できなかった。

侵害によるものではないことを確認するためにシステムを評価した後、トラブルシューティングを行いmod_php、Apache構成から削除されたと判断しました。Pleskの設定を確認した後、ボックス上のすべての仮想ホストはFastCGIとSuExecを使用していました。

FastCGIおよびSuExecを使用する場合、php.conf(FastCGI)および.htaccess(SuExec)のPHPディレクティブを変更できません。

顧客は元々問題のある行をコメントアウトしていましたが、これはすべてのセッションのサポートを破りました。解決できた唯一の方法は、mod_phpを手動でhttpd.confに追加し直すことでした。

他のLoadModuleのセクションに次の行を追加します。パス(../modules/)がそこにある残りのモジュールと一致することを確認してください。システムにすでに存在し、更新中に構成から単純に削除された可能性があります。

bash# vi /etc/httpd/conf/httpd.conf
LoadModule php5_module ../modules/libphp5.so

bash# apachectl restart

これにより不意を突かれ、問題を引き起こしたのはアップグレードであるか、これが最善の修正であるかどうかを断言できません。私はコメントを受け付けていますが、PHPディレクティブをコメントアウトしないよう強くお勧めし/etc/httpd/conf.d/php.confます。


デイビッド、ありがとう。私のyumログはphp 5.3.26への自動更新を示していますが、httpd.confが上書きされた理由を本当に理解していません。よろしく

ありがとうございました!httpd.confにアクセスし、LoadModule php5_module pathfilenameという行がコメント化されていることを確認しました。#を削除しただけで、すべてが正常に戻りました。
ニコール

Ubuntu 16.04から18.04.1へのアップグレード後にこのエラーが発生しました。原因はわかりませんが、モジュールディレクトリはありませんが、代わりにmodsが使用可能なmods対応のディレクトリがあります。php7.2.confとphp7.2.loadのシンボリックリンクをmods-availableを指すmods-enabledに追加すると、apache2を起動できました。
クリスジェンクス

5

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

Apache httpd-2.4は、prefork以外のmpmモジュールを使用するように誤って設定した場合、上記のエラーで失敗する可能性があります(prefork mpmのみがLinux(CentOs7 / RHEL7)のphpで正常に動作するため)。問題。

  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


1

これは、mod_prefork以外のMPMを使用するようにApacheを設定した場合に発生する可能性があります。httpd -Vコマンドで使用中のモジュールを確認してください。次のように表示されるはずです。

...
Server MPM: prefork
...

そうでない場合は、確認してください

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

ここで説明しように、次の行がその中に存在し、コメント解除さていることを確認します。

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

他のモジュールを使用する必要がある場合mod_preforkは、これらの行をコメント化または削除する必要があります。


1

前に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

0

これらの行をコメントアウトしてください。

持っていた

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

次に、「Pleskで再構成してから、apacheを再起動する」を実行すると正常に動作するように見えました。plesk update#53 10分前にこれが発生した場合。


こんにちは、Zpanelを使用してPleskを使用していません。再構成が必要なものは?ありがとう
デビッドE.

基本的にこれらの行を削除してから、Apacheの再起動で修正できます。しかし、pleskでvhostを再構成する必要がありました。これは単なるボタンであり、cpanelの同等のものではありません。
ジミー

これは少し不安です。これはコアphpの一部です。セッションサポートを無効にするには、コンパイル時にフープをジャンプする必要があります。また、マニュアルによると、これらは両方ともPHP_INI_ALLで変更可能です(ただし、php_admin_valueを試す価値はあります)。セッションハンドラは動作しますか?mod_phpを使用していますか?
symcbean

1
ちょうどこれが起こった。問題のある行をコメントアウトすると、Apacheを起動できますが、セッションサポートが削除されます。mod_phpが無効になっている可能性があります。Pleskも使用しています。
デビッドハウデ

0

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


0

私は同様の問題を抱えており、php5モジュールがコメントされていることを認識しました。これはロードできず、phpmyadmin confでphp_admin_valueがおそらくphp5_moduleで動作していたためにエラーが発生していたことを意味し、適切ではありませんでした。私はhttpd.confに行き、コメントを外しました:

LoadModule php5_module "c:/wamp/bin/php/php5.5.12/php5apache2_4.dll"

0

編集:以下に私のコメントを実装した後、私はこの問題にぶつかっていた別の理由があることがわかった。サーバーには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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.