1

私はこれを行うことに少し慣れていませんが、私の目標は、Apache 2.4 と PHP 5.5 を起動して、Ubuntu 12.10 を実行するアンマネージド VPS で実行することでした。html および PHP コンテンツの両方を操作して提供することに成功しましたが、セットアップのいくつかの領域で問題が発生しています。最初に opcache.so を使用します。これが、PHP 5.5 を使用したかった主な理由です。conf ファイルにモジュール opcache.so がありますが、Apache から次のエラーが表示されます。

Apache エラー ログ: Tue Mar 04 15:19:00.624085 2014] [mpm_event:notice] [pid 1853:tid 140683657721600] AH00489: Apache/2.4.8-dev (Unix) PHP/5.5.11-dev 構成 -- 通常の状態に戻ります操作 /usr/lib/php5/20100525/opcache.so の読み込みに失敗しました: /usr/lib/php5/20100525/opcache.so: 未定義のシンボル: compiler_globals

調査したところ、この問題を解決した人は見つかりませんでした。私が見つけたいくつかの以前の投稿は、PHP を別の方法でコンパイルする必要があるかもしれないことを示唆していました。それが私の特定の構成に関連しているかどうかはわかりませんが、github ソースからコンパイルしたのはこれが初めてでした。私のphp情報は「PHPバージョン5.5.11-dev」を示しています...それは私がコンパイルできる最新のものですか?

以下で使用した構成は正しいですか?

このエラーを修正するための提案は大歓迎です。

cd /usr/local/src/
git clone --branch PHP-5.5 https://github.com/php/php-src.git php55
cd /usr/local/src/php55
rm -rf configure
./buildconf --force

./configure \
--enable-opcache \
--enable-bcmath \
--enable-calendar \
--enable-dba \
--enable-exif \
--enable-ftp \
--enable-mbstring \
--enable-shmop \
--enable-sigchild \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-wddx \
--enable-zip \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-bz2 \
--with-config-file-path=/usr/local/apache2/conf \
--with-curl \
--with-gd \
-–with-jpeg-dir=/usr/lib \
--with-gettext \
--with-mcrypt \
--with-mysql-sock=/run/mysqld/mysqld.sock \
--with-mysqli \
--with-openssl \
--with-pdo-mysql \
--with-pdo-pgsql \
--with-xmlrpc \
--with-zlib

make && \
make test && \
make install
4

1 に答える 1

1

Apache2 MPMを使用しています。したがって、PHP は ZTS (Zend Threaded System) ビルドをビルドします。これに関する議論については、Apache Prefork vs Worker MPMを参照してください。MPM を使用すると、PHP はそのコンパイラ グローバルをスレッド配列に格納します。ただし、OPcache は、この構造体compiler_globalsのスレッド化されていないバージョンを探しています。

IMO、PHP を使用している場合、MPM の使用は間違いです。(i) PHP の実行速度が 25 ~ 50% 遅くなります。(ii) 多くの拡張機能が機能しません。(iii) OPcache は ZTS ビルドで適切にテストされていません。Prefork ワーカー構成に固執し、再構築します。

Squid や nginx などのリバース プロキシを使用するより高いパフォーマンス オプションがありますが、これらを構成するにはより多くのシステム管理者のスキルが必要です。

于 2014-03-07T16:56:03.207 に答える