PHP7 の利点は何ですか?
まず第一に、PHP5 よりもメモリ使用量が少なく、第二に、パフォーマンスが 2 倍以上高速になり、最終的に WordPress の QPS はオリジナルの約 3 倍に向上します。 Re p WordPress 4.4 QPS の比較: 数値が大きいほど、QPS が高くなります
この例のホスト VPS 構成
帯域幅: 1Mbps
- CPU: 1 コア
- オペレーティング システム: ubuntu 12.04 64 ビット メモリ: 1GB
- Yundun: はい
- 環境: Linux + Nginx + Memcached + PHP-FPM
- なぜコンパイルしてインストールする必要があるのですか?
- このサイトで使用されている Ubuntu 12.04 のバージョンは低すぎます。 -get install では、GCC および PHP7 の最新バージョンをインストールできません。
- GCC バージョンを確認してください
@Laruence PHP7 をコンパイルするには GCC 4.8 以降を使用することをお勧めします。GCC バージョンを確認してください:
$ gcc -v
4.8 未満の場合は、GCC をコンパイルしてアップグレードすることをお勧めします。 Linux で gcc をアップグレードする方法 – 個人テストあり – C++ 趣味の作者のブログ。
2016 年 2 月 15 日時点の GCC の最新バージョンは 5.3.0 です。GCC 公式 Web サイトにアクセスしてダウンロード アドレスを表示し、選択してください。
この例では、GCC 4.6.3 から GCC 5.3.0 にアップグレードします。手順は次のとおりです:
$ wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.gz$ tar -xf gcc-5.3.0.tar.gz$ cd gcc-5.3.0
download_prerequisites スクリプトを実行します。このスクリプトは、必要な依存関係ファイルとライブラリを自動的にダウンロードします:
$ ./contrib/download_prerequisites
出力を作成します。すべての中間ファイルはこのディレクトリに配置されます。
$ mkdir gcc_temp$ cd gcc_temp
Run
$ ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib$ make && make install
特別な注意を払ってください
コンパイル時間はマシンのパフォーマンスに依存し、より多くのメモリを消費します。サーバーのメモリも非常に不足している場合は、500M SWAP スワップ領域を有効にしてください。そうしないと、Make フェーズ中にメモリ不足のためエラーが報告されます。この例ではサーバーの IO パフォーマンスが非常に悪いため、終了後に SWAP スワップ領域をオフにしてください。
すごいこの例は、GCC 5.3.0 をコンパイルするのに 2 ~ 3 時間かかりました。 PHP7 のコンパイルとインストールが完了したら、この例では SWAP 交換領域をオフにします:
$ SWAP=/tmp/swap$ dd if=/dev/zero of=$SWAP bs=1M count=500$ mkswap $SWAP$ sudo swapon $SWAP
PHP7 のコンパイルとインストールを開始します
2016 年 2 月 15 日の時点で、PHP7 の最新の安定バージョンは PHP 7.0.3 です。バージョン情報: http://php.net/downloads.php 。最新バージョンをダウンロードします:
$ sudo swapoff -a最初に構成ヘルプを参照できます:
$ wget http://cn2.php.net/get/php-7.0.3.tar.bz2/from/this/mirror$ tar jxvf mirror$ cd php-7.0.3/この例で使用されている構成 (/usr/local/php はインストール先の場所です)
./configure --help
一部のモジュール見つからない場合は、個別にインストールする必要がある場合があります。たとえば、
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zipインストールする必要があるモジュールは、 libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-develcurl-devel libxslt です。 -devel など...
次の実行:
$ sudo apt-get install libcurl4-gnutls-devコンパイルとインストールを開始します。
PHP7のコンパイルとインストールが完了した画面
PHP7の設定と最適化
設定ファイルをコピー
完了後も、いくつかの設定と最適化を行う必要があります。まず、設定ファイルをコピーします:
$ make && make installPHP7-FPM のテスト開始
オンライン サーバーでは通常、PHP5-FPM サービスが実行されています。 www.conf 内のユーザーとグループを、オンラインで使用されるユーザー名とユーザー グループに変更してください。競合を避けるために、デフォルトのポート番号 9000 を変更します。
PHP7-FPM を起動します:
$ cp php.ini-development /usr/local/php/lib/php.ini$ cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf$ cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf$ cp -R ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm起動に成功すると、phpinfo() などが表示されます。
この例の PHP7-FPM のテスト ポートは 9008 です。オンライン nginx 設定が bokeyy であると仮定すると、次のようになります。
$ service php-fpm start
$ cp /etc/nginx/site-available/bokeyy /etc/nginx/site-enabled/bokeyy_php7$ vim /etc/nginx/site-enabled/bokeyy_php7の 9000 を 9008 に変更し、ポートを開きます。次に、
rrree
は、新しいポート Web サイトのすべての側面が正常であるかどうかをテストできます。パフォーマンス比較テスト
次に、PHP5.3.10 (ソース) と効率を直接比較してみましょう。
Opache を使用しない場合の PHP7.0.3 と PHP5.3.10 のパフォーマンスを比較すると、PHP7 は約 2 倍高速ですが、あまり明らかではありません
Opache を使用した場合の PHP7.0.3 と PHP5.3.10 のパフォーマンスを比較すると、パフォーマンスの向上は非常に顕著です
test .php content
fastcgi_pass 127.0.0.1:9000;opcache を設定
したがって、Opcache (http://php.net/opcache) を有効にする必要があります。そして、WordPress の QPS を大幅に改善できることを証明する写真がすでにあります。
Opache を使用した場合と使用しない場合の WordPress 4.4 の QPS 比較
この例では、Opache の公式に推奨される構成と @Laruence が推奨する Opache 構成を組み合わせて、php.ini に次の内容を追加します:
$ service nginx configtest$ service nginx reload
その中に /usr/local/php/ lib/php/extensions /no-debug-non-zts-20151012/opcache.so は、opcache.so が存在するアドレスです。 PHP7-FPM を再起動します:
<?php$a = array(); for($i=0;$i<600000;$i++){ $a[$i] = $i; } foreach($a as $i) { array_key_exists($i, $a); }?>ここですべてのインストールと設定は終了です。
Yayicheng @Laruence には、PHP7 を最高のパフォーマンスに到達させるためのヒント | 04 Dec 15 という記事があり、PHP7 を高速化するための役立つ提案がたくさんあります。
この例は一部のみを採用しています。 php5-fpm プロセスによって毎日わずか 1G の小さなメモリが埋められるサーバーの場合、HugePage と Opcache ファイル キャッシュの両方に一定量の冗長メモリが必要ですが、これは適切ではありません。
让你的PHP7更快(GCC PGO) 建议先训练一下 GCC 再编译针对 WordPress 的定制化 PHP7 版本似乎也值得采纳。但是,由于服务器资源严重不足,基本上所有 WordPress 页面都不是即时生成的,而是走了时效为半天的 WP Super Cache 缓存。所以,生成 WordPress 首页的速度提升 7-10% 对本例的服务器来说意义很有限,所以也没有做了。
因此最后只采纳了“开启Opache”、“使用 GCC 4.8 以上的编译器”这两项。
清理环境
如果测试 PHP7-FPM 没有任何问题,就可以删掉测试网站
$ rm /etc/nginx/site-enabled/bokeyy_php7
编辑 www.conf 把 PHP7-FPM 的端口改成 9000
$ vim /usr/local/php/etc/php-fpm.d/www.conf
最后关掉 PHP5-FPM,用 PHP7-FPM 来替代:
$ service php-fpm configtest$ service php5-fpm stop$ service php-fpm restart$ service nginx configtest$ service nginx reload
增加软链接
为了无论在哪个目录下输入 php 都能调用刚刚安装的 /usr/local/php/bin/php ,而不用输入这么长,建立几个软链接
$ cd /usr/bin$ ln -s /usr/local/php/bin/php php$ ln -s /usr/local/php/bin/phpize phpize$ ln -s /usr/local/php/bin/php-config php-config
现在只要
$ php -v
就能查看刚刚安装的 php 版本了。以后安装 PHP 插件也可以直接 phpize 和 php-config 了。
本例还有 WordPress 网站需要 Memcache,所以还没有结束。
安装并配置 PHP7-MEMCACHED
你一定好奇 PHP 的 memcached 和 memcache 插件有什么区别。事实上,它们功能差不多,都依赖默认在 11211 端口的 memcached 服务,只是封装方法不同,而 php-memcached 更新更勤快一些,功能也更多。
最重要的是, 在安装 PHP 7.0.3 你会发现,你只能装 php-memcached ! 注意有这个 d (截至 2016年2月15日)。让我们开始吧:
请到 github 下载 php-memcached 插件的 php7 分支( https://github.com/php-memcached-dev/php-memcached/tree/php7 ):
$ wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
解压并安装:
$ unzip php7.zip$ cd php-memcached-php7/$ root=/usr/local/php$ $root/bin/phpize$ ./configure --with-php-config=$root/bin/php-config
这一步可能会提示你没有 libmemcached 库:
$ cd ..$ wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz$ tar xvf libmemcached-1.0.18.tar.gz$ cd libmemcached-1.0.18$ ./configure$ cd ../php-memcached-php7/$ ./configure --with-php-config=$root/bin/php-config
可能还提示不支持 memcache sasl ,推荐禁用,好吧!
$ ./configure --with-php-config=$root/bin/php-config --disable-memcached-sasl
终于可以运行
$ make && make install
最后将 memcached.so 的地址加入 php.ini 就装好了:
$ vim /usr/local/php/lib/php.ini
加入
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/memcached.so
但是还有一个坑前面没有提及: WordPress 官方 Memcached 插件 只支持 php-memcache ,注意没有 d。所以我们用这个支持 php-memcached 的插件 https://github.com/tollmanz/wordpress-pecl-memcached-object-cache 。按照链接所示一步步配置来就行了。
感兴趣的还可以看看插件作者关于 php-memcache 和 php-memcached 两个 PHP 插件区别的文章: WordPress Object Cache Driven By The PECL Memcache(d) Extension 。
为什么只能用 php-memcached (有d)
截止 2015年2月15日,PHP7.0.3 下直接试图安装 php-memcache 会报错:
fatal error: ext/standard/php_smart_str.h: No such file or directory
查了一下原因 ,是因为 PHP7 里面,这个文件改成了 php_smart_string.h 。博主尝试过手动将文件名改成正确的,然而也没有用,还会报错:
error: 'RETURN STRING' undeclared(first use in this function)
所以这是插件暂不兼容 PHP7 。只能等待,直到 php-memcache 插件更新。所以博主最后放弃,按照上文,使用了 php-memcached 插件作为替代。
参考的博客文章
- The Definitive PHP 7.0 & HHVM Benchmark
- linux下升级gcc的方法 – 亲测可用 – C++爱好者博客
- 让PHP7达到最高性能的几个Tips | 04 Dec 15
- Linux环境PHP7.0安装

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









