はじめに
Debianの現在の安定したパッケージリポジトリには、常に最新のソフトウェアが含まれているとは限りません
私たちの期待。これには、最先端のソフトウェアを実行するためのトレードオフとしての安定したシステムなど、非常に正当な理由があります。
PHPサーバーサイドスクリプト言語も例外ではありません。
現在のDebianのPHPバージョンを書いている時点では、5.6.29
です。 一方、最新のPHPソースリリースは7.1.0
です。 (PHP 6がまったくない場合)
現在のPHP開発者の主張では、速度の点でPHP7はPHP5.6よりも優れています。PHP7は前モデルの2倍の速度であると想定されています。
新しいZendEngine3.0のおかげで、アプリはPHP 5.6よりも最大2倍高速なパフォーマンスと、50%優れたメモリ消費を実現し、ハードウェアを追加せずに、より多くの同時ユーザーにサービスを提供できます。
今日のワークロード向けに設計およびリファクタリングされたPHP7は、今日のWeb開発者にとって究極の選択肢です。
参照:zend.com/en/resources/php-7
目的
PHP5.6と最新のPHP7.1.0の速度を比較することは、この記事の目的ではありません。ただし、目的は、Debian8システムにインストールされている最新のPHP7リリースを入手することです。さらに、
PHP-FPM(FastCGI Process Manager)をインストールします。このガイドでは、2つの可能なインストールについて説明します。
まず、ガイドはcompile-php-debian
を使用します github.com/linuxconfig/compile-php-debian
で入手可能なスクリプト PHP 7のインストールを自動化するために、後でPHP7を手動でインストールする方法を示します。
要件
- rootとしてまたは
sudo
を介したDebianLinuxシステムへの特権アクセス コマンドが必要です
難易度
ミディアム
規約
- # –指定されたLinuxコマンドは、rootユーザーとして直接、または
sudo
を使用して、root権限で実行する必要があります。 コマンド - $ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります
手順
PHP5パッケージを削除する
システムにすでにPHP5がインストールされている場合は、新しいPHP7をインストールする前にそれらを削除する必要があります。すべてのphp
を一覧表示するには システム上の関連パッケージ:
# dpkg -l | grep -E "^ii.*php" | cut -d " " -f3 libapache2-mod-php5 php5 php5-cli php5-common php5-json php5-readline
次のLinuxコマンドは、上記のコマンド出力にリストされているすべてのパッケージを削除します。
# REMOVE=$(dpkg -l | grep -E "^ii.*php" | cut -d " " -f3) # dpkg -P $REMOVE
スクリプトによる自動インストール
次のスクリプトによる自動インストールは、ユーザーが選択したPHP 7バージョンをコンパイルしてインストールするために必要なすべての手順を実行し、PHP-FPMデーモンもインストールします。 compile-php-debian
のクローンを作成することから始めます スクリプト:
$ git clone https://github.com/linuxconfig/compile-php-debian.git
次に、compile-php-debian
に移動します ディレクトリ:
$ cd compile-php-debian
次に、インストールするPHP 7のバージョンを決定し、選択したバージョン番号をinstall_php.sh
の引数として入力します。 脚本。たとえば、PHPバージョン7.0.8をインストールするには、次のように入力します。
# ./install_php.sh 7.0.8 FOR PHP VERSION 7.1.0 RUN # ./install_php.sh 7.1.0
インストールには時間がかかる場合があります。終了したら、service
を実行してPHP-FPMDaemonを起動します。 コマンド:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
PHP-FPMデーモンは現在localhost
をリッスンしています のポート番号9000
。 cgi-fcgi
を使用してPHP-FPMデーモンに直接接続することもできます。 libfcgi0ldbl
内にあるコマンド パッケージ:
# cgi-fcgi -bind -connect 127.0.0.1:9000 X-Powered-By: PHP/7.1.0 Content-type: text/html; charset=UTF-8
これで、Debain8LinuxシステムへのPHP7のインストールが完了しました。
手動インストール
前提条件のインストール
最も一般的なPHPコンパイルオプションに適合するすべての前提条件のインストールから始めましょう:
# apt-get install autoconf bison build-essential git-core libbz2-dev libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg-dev libmcrypt-dev libpng-dev libpspell-dev libreadline-dev libssl-dev libxml2-dev pkg-config
PHPソースコードのダウンロード
おそらく、PHPソースコードを取得してGitHub上のPHPのリポジトリのクローンを作成する最も簡単な方法です。次のLinuxコマンドを実行して、PHPソースディレクトリのクローンを作成します。
$ git clone https://github.com/php/php-src.git
git clone
操作が終了すると、新しいディレクトリ名php-src
が残ります。 。
もう1つの方法は、インストールしたい特定のPHPバージョンのtarballを、http://php.net/downloads.php
から直接ダウンロードして取得することです。 。この場合の利点は、最小のダウンロードサイズ要件です。ただし、
複数の展開に対して選択的に異なるバージョンを選択することはできません。
PHPソースコードのコンパイル
この段階で、PHPソースコードのコンパイルを実行する準備が整いました。以前にダウンロードしたphp-src
に移動します ディレクトリ:
$ cd php-src
次に、コンパイルしてインストールするPHPのバージョンを決定します。次のgit
を実行します 利用可能なすべてのPHP7バージョンを一覧表示するコマンド:
$ git branch -a | grep PHP-7 remotes/origin/PHP-7.0 remotes/origin/PHP-7.0.0 remotes/origin/PHP-7.0.1 remotes/origin/PHP-7.0.10 remotes/origin/PHP-7.0.11 remotes/origin/PHP-7.0.12 remotes/origin/PHP-7.0.13 remotes/origin/PHP-7.0.14 remotes/origin/PHP-7.0.2 remotes/origin/PHP-7.0.3 remotes/origin/PHP-7.0.4 remotes/origin/PHP-7.0.5 remotes/origin/PHP-7.0.6 remotes/origin/PHP-7.0.7 remotes/origin/PHP-7.0.8 remotes/origin/PHP-7.0.9 remotes/origin/PHP-7.1 remotes/origin/PHP-7.1.0 remotes/origin/PHP-7.1.0RC1 remotes/origin/PHP-7.1.0RC2 remotes/origin/PHP-7.1.0RC3 remotes/origin/PHP-7.1.0beta1 remotes/origin/PHP-7.1.0beta2 remotes/origin/PHP-7.1.0beta3
git checkout
を使用する コンパイルに使用したい希望のPHPバージョンブランチに切り替えるコマンド。例:
$ git checkout PHP-7.1.0 Branch PHP-7.1.0 set up to track remote branch PHP-7.1.0 from origin. Switched to a new branch 'PHP-7.1.0'
次に、インストールターゲットとして使用するディレクトリを作成します。この場合、/usr/local/php-7.1.0
になります。 :
# mkdir /usr/local/php-7.1.0
すべてのコンパイル文字列を指定します。 --prefix
に特に注意してください および--with-config-file-scan-dir
インストールと構成の設定を定義する構成文字列。
以下は、最も一般的なPHPコンパイルオプションのリストです。
ニーズに合わせてリストを自由に更新してください。選択によっては、追加の
前提条件をインストールする必要がある場合があります。以下のテキストをコピーして端末に貼り付け、Enterキーを押します:
CONFIGURE_STRINGS="--enable-bcmath \ --enable-calendar \ --enable-dba \ --enable-exif \ --enable-filter \ --enable-fpm \ --enable-ftp \ --enable-gd-native-ttf \ --enable-intl \ --enable-mbstring \ --enable-mysqlnd \ --enable-pcntl \ --enable-shmop \ --enable-simplexml \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --enable-xmlreader \ --enable-xmlwriter \ --enable-zip \ --prefix=/usr/local/php-7.1.0 \ --with-bz2 \ --with-config-file-scan-dir=/usr/local/php-7.1.0/etc/conf.d \ --with-curl \ --with-fpm-group=www-data \ --with-fpm-user=www-data \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-jpeg-dir \ --with-mcrypt \ --with-mhash \ --with-mysqli=mysqlnd \ --with-mysql-sock=/var/run/mysqld/mysqld.sock \ --with-openssl \ --without-pear \ --with-pdo-mysql=mysqlnd \ --with-pdo-sqlite \ --with-png-dir \ --with-pspell \ --with-readline \ --with-sqlite3 \ --with-zlib"
上記はCONFIGURE_STRINGS
を設定します すべてのPHPコンパイルオプションを含むシェル変数。次に、configureファイルとMakefileを作成する必要があります。これを実行するには:
$ ./buildconf --force Forcing buildconf Removing configure caches rebuilding aclocal.m4 rebuilding configure rebuilding main/php_config.h.in
次に、コンパイル構成を実行します:
$ ./configure $CONFIGURE_STRINGS
上記のconfigure
でエラーが発生しなかった場合 コマンドを実行し、make
を実行してコンパイルを実行します。 コマンド:
$ make .... Build complete. Don't forget to run 'make test'.
PHPソースコードが終了した場合のコンパイルが完了したら、オプションでmake test
を実行します。 コマンドを実行するか、make install
を実行します 以前にコンパイルされたすべてのバイナリを
関連するディレクトリにインストールするコマンド:
# make install Installing shared extensions: /usr/local/php-7.1.0/lib/php/extensions/no-debug-non-zts-20160303/ Installing PHP CLI binary: /usr/local/php-7.1.0/bin/ Installing PHP CLI man page: /usr/local/php-7.1.0/php/man/man1/ Installing PHP FPM binary: /usr/local/php-7.1.0/sbin/ Installing PHP FPM config: /usr/local/php-7.1.0/etc/ Installing PHP FPM man page: /usr/local/php-7.1.0/php/man/man8/ Installing PHP FPM status page: /usr/local/php-7.1.0/php/php/fpm/ Installing phpdbg binary: /usr/local/php-7.1.0/bin/ Installing phpdbg man page: /usr/local/php-7.1.0/php/man/man1/ Installing PHP CGI binary: /usr/local/php-7.1.0/bin/ Installing PHP CGI man page: /usr/local/php-7.1.0/php/man/man1/ Installing build environment: /usr/local/php-7.1.0/lib/php/build/ Installing header files: /usr/local/php-7.1.0/include/php/ Installing helper programs: /usr/local/php-7.1.0/bin/ program: phpize program: php-config Installing man pages: /usr/local/php-7.1.0/php/man/man1/ page: phpize.1 page: php-config.1 /php-src/build/shtool install -c ext/phar/phar.phar /usr/local/php-7.1.0/bin ln -s -f phar.phar /usr/local/php-7.1.0/bin/phar Installing PDO headers: /usr/local/php-7.1.0/include/php/ext/pdo/
全部終わった。 PHP7.1.0がインストールされました。実行を確認するには:
$ /usr/local/php-7.1.0/bin/php -v PHP 7.1.0 (cli) (built: Jan 2 2017 09:09:59) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
FastCGIProcessManagerのインストール
このセクションでは、NginxやApacheなどのWebサーバーでインストールするためのフロントとして使用するPHP-FPMをインストールします。まず、新しくコンパイルされた
/usr/local/php-$version/sbin/php-fpm
のシンボリックリンクを作成します インストールを整理するためのバイナリ:
# ln -s /usr/local/php-7.1.0/sbin/php-fpm /usr/local/php-7.1.0/sbin/php-7.1.0-fpm
まだphp-src
にあります ディレクトリで、デフォルトのphp.ini
を設定します 構成:
# cp php.ini-production /usr/local/php-7.1.0/lib/php.ini
PHP-FPMデーモン構成ファイルを有効にします:
# mv /usr/local/php-7.1.0/etc/php-fpm.d/www.conf.default /usr/local/php-7.1.0/etc/php-fpm.d/www.conf
テキストエディタを使用して、新しい/usr/local/php-7.1.0/etc/php-fpm.conf
を作成します 次の内容の構成ファイル:
[global] pid = /var/run/php7-fpm.pid error_log = /var/log/php7-fpm.log include=/usr/local/php-7.1.0/etc/php-fpm.d/*.conf
追加のPHPモジュールを有効にする
有効にするモジュールディレクティブをphp.ini
に挿入します 設定ファイル。たとえば、ZendのOpCache PHPモジュールの実行を有効にするには:
# echo "zend_extension=opcache.so" >> /usr/local/php-7.1.0/lib/php.ini
PHP7-FPMinit.dスクリプトを構成する
まず、次の変更されたphp7-fpm.init
を挿入します スクリプトを /etc/init.d/
に挿入します ディレクトリ:
# wget -qO /etc/init.d/php7-fpm https://linuxconfig.org/images/php7-fpm.init
7.1.0
以外の異なるバージョンのPHPをインストールした場合 テキストエディタを使用して、インストールされているPHP VERSION
に合うように次のスクリプト変数を変更します。 :
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/php-VERSION/sbin NAME=php-VERSION-fpm DAEMON=/usr/local/php-VERSION/sbin/$NAME CONFFILE=/usr/local/php-VERSION/etc/php-fpm.conf
最後に、/etc/init.d/php7-fpm
を作成します 実行可能ファイルでudpate-rc.d
を実行します コマンド:
# chmod +x /etc/init.d/php7-fpm # update-rc.d php7-fpm defaults
PHP-FPMデーモンを起動する
これで、service
を実行することで、PHP-FPMDaemonを簡単に起動できるようになります。 コマンド:
# service php7-fpm start # service php7-fpm status [ ok ] php-7.1.0-fpm is running.
PHP-FPMデーモンは現在localhost
をリッスンしています のポート番号9000
。