0

Apache サーバーの再起動で問題が発生しました。サーバーの ulimit を変更しましたが、httpd を再起動できません。でサーバーを実行していますCentOS 5.8 x64。httpd -V からの出力:

Server version: Apache/2.2.3
Server built:   Jan 10 2013 08:19:28
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   64-bit

実行中に発生するエラー/sbin/service httpd restart(ホールの出力を印刷するつもりはありません):

Syntax error on line 210 of /etc/httpd/conf/httpd.conf: 
Syntax error on line 6 of /etc/httpd/conf.d/php.conf: 
Cannot load /etc/httpd/modules/libphp5.so into server: libidn.so.11: 
wrong ELF class: ELFCLASS32

私はこのエラーをグーグルで検索し、問題を掘り下げようとしました。私が見つけたのは、 32ビットであるのlibphp5.soに対し、64ビットアーキテクチャであるということlibidn.so.11です。通常、私が知っているように、64 ビット アーキテクチャで 32 ビット プログラムを使用しても問題はないはずですが、この場合、64 ビット プログラムで使用される 32 ビット ライブラリがあります (****この関連する質問を参照してください** )。

ライブラリの 64 ビット バージョンをインストールしようとしましたが、私の OS( centOS 5.8) で見つかったのは libidn_x86_64 バージョンで、これも 32 ビットです。

サーバーにインストールされたプログラム:

squid - Proxy
ffmpeg - for video streaming
csf-lfd -> firewall
Apache

問題を見つけるための助けをいただければ幸いです。

4

1 に答える 1

1

CentOS 5.1 の libidnのバージョンは5.9 と同じであるため (実際には同じファイルです)、おそらく 5.8 にインストールされるのが安全な賭けです。

私のOS(centOS 5.8)はlibidn_x86_64バージョンで、これも32ビットです。

いいえ、名前はそれが 64 ビット版であることを暗示しています - 32 ビットのオブジェクト ファイルが含まれている場合、何かが間違っています - さらに、CentOS が広く使用されており、libidn があらゆる種類のものに必要であることを考えると、私は確信しています。 rpm に間違ったファイルが含まれていた場合、誰かが今頃気付いていたでしょう。

サーバーがどのようにしてこの状態になったのかを考えてみてください。適切な依存関係が配置された Centos リポジトリから PHP をインストール/アップグレードすることはできませんでした (それらを無視するように強制しない限り)。

于 2013-10-31T12:30:48.413 に答える