私は Ubuntu 12.04 LTS を使用しており、7.0 正式バージョンの ppa をオンラインで見つけたので、コンパイルする必要はありません。次のコマンドを使用して直接インストールできます。
sudo add-apt-repository ppa:ondrej/php-7.0 sudo apt-get update sudo apt-get install php7.0-fpm php7.0-cli php7.0-common php7。 0-json php7.0-mysql php7.0-opcache php7.0-curl Memcached および Redis 拡張機能は pecl で PHP7 をサポートする最新バージョンをリリースしていないため、手動でコンパイルおよびインストールするには Github で PHP7 ブランチを見つける必要があります。
redisとmemcachedのgithubアドレスは以下の通りです
https://github.com/phpredis/phpredis/ https://github.com/rlerdorf/php-memcachedgit clone https: //github .com/phpredis/phpredis/ cd phpredis
git checkout phpize
./configure make
インストール方法
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz
libmemcached-1.0.18
make
sudo apt-get install pkg-config
github.com/rlerdorf/php-memcached.git
cd php-memcached
git checkout phpize
/> sudo make install
自分でコンパイルしたこれら 2 つの拡張機能は、構成ファイルに手動でロードする必要があります
sudo touch /etc/php/mods-available/redis.ini sudo touch /etc/php/mods-available/ memcached .ini
そして 2 つのファイルの内容を書き込みます
extension=redis.so extension=memcached.so cd /etc/php/7.0/fpm/conf.d sudo ln -s /etc/php/mods-available / redis.ini ./ sudo ln -s /etc/php/mods-available/memcached.ini ./
コマンドラインで拡張機能を有効にする必要がある場合は、cli/conf でも拡張機能をリンクする必要があります。 dディレクトリ。 最後にサーバーを再起動します
sudoサービス php7.0-fpm restart
設定ファイルの調整 PHP7.0の最大の改善はパフォーマンスなので、opcacheが最大限の役割を果たせるように必ずopcacheを有効にしてください。 php.ini で次の設定を有効にします。
opcache.enable_cli=1
opcache.file_cache=/tmp
opcache.error_log=/var/log/opcache_errors.log
デフォルトでインストールされるパッケージエラー表示が消えています。 また、エラーログはコメント化されているため、問題発生時に情報を参照することができません。
次の設定を書いてください
error_log=/var/log/php_errors.log sudo chown www-data.www-data /var/log/php_errors.log
Nginxサーバーをインストールしました。 user 独自の Web サーバーと同じになるようにアレイを変更します。変更しない場合、プロンプトは表示されません。 opcache_errors.log ファイルについても同様です。
opcache の詳細については、こちらをご覧ください。 http://www.laruence.com/2015/12/04/3086.html
例外処理と解決
09-Dec-2015 12:27:48 Asia/Chongqing] PHP Fatal error: Uncaught Error: Call to unknown function set_magic_quotes_runtime() in /init です。 .php:46
set magic quotes_runtime 関数はもう存在しません。互換性を持たせたい場合は、判断する必要があります
if(PHP_VERSION_ID < 70000){ set_magic_quotes_runtime() }
モニタリングとチューニング
これより前は、より多くの人が xhprof を使用して検出と最適化を行うでしょう。ただし、xhprof はプログラム全体のパフォーマンス収集サンプルを適切に要約できず、視覚的な曲線グラフや Web トランザクション追跡が不十分なため、システムのボトルネックを短期間で評価することが困難です。
そこで、OneAPM の PHP エージェントを使用してこれらのタスクを完了します。OneAPM はスケジュールされたサンプリングとレポートを使用してパフォーマンス情報を収集し、リソース消費は 5% 未満であると公式に主張しています。ただし、パフォーマンスが数倍向上した PHP7.0 を使用する場合、これらの損失は無視できるため、クラスター内の複数のマシンに 1 つだけデプロイしました。
以下では、基本的なパフォーマンス分析とトラブルシューティング方法を紹介します。
たとえば、ダッシュボードで特定の期間におけるシステム全体の安定性を確認できます。写真では午前 6 時頃の異常なピークが見られました。リスト フィルターから WEB 外部を削除して、以下を確認します。絵。 。
他の業務は正常です。最後の PHP 層までの平均実行時間はわずか 10 ミリ秒です。上の図に戻り、波のピークのインジケーターをクリックして、具体的な詳細を確認します。
詳細を開くと、WeChat インターフェースが 6 時に切断されたことがはっきりとわかります。このページでは、サードパーティのサービス呼び出しへの応答を監視することもできます。たとえば、api.hitokoto.us サービスには 217 ミリ秒かかります。
SQL の遅延監視について簡単に見てみましょう。
Web トランザクションの応答時間の比率から、スクリプトの実行時間が比較的長いことがわかります。上の図から、データベース クエリに 579 ミリ秒かかっていることがわかります
詳細に切り替えると、このページでは、スクリプト プロセス全体の呼び出しが確認できますが、プログラム mysqli.php の 88 行目で実行されるクエリに時間がかかりすぎることが最終的に判明しました。
上記は、OneAPM を通じてプログラムの安定性を継続的にチェックするための基本的な方法にすぎません。
毎日の運用でプログラムが受け取る訪問は異なるため、同時実行数の突然の増加や、ただし、Apdex インジケーターは通常、「非常に美しい」と表示しますが、OneAPM を使用すると、コードの改善や最適化を続けるために、パフォーマンスに影響を与えるプログラムの部分を簡単に見つけることができます。