ウェブサイト検索

CentOS 7/Debian 8 に Apache および MariaDB を使用して PHP 7 をインストールする方法


先週 (正確には2015 年 8 月 21 日)、PHP 開発チームはPHP 7 の最新リリースが利用可能になったことを発表し、世界中のユーザーと開発者にテストを奨励しました。それ。

ただし、これはRC (リリース候補) バージョンであるため、バグや既存のセットアップとの非互換性が存在する可能性があることが予想されるため、ユーザーは次のことを行う必要があることに注意する必要があります。バグ追跡システムを使用して報告し、PHP 7 がその段階にある間は運用環境で使用しないでください。

明るい面は、このバージョンにはいくつかの修正が含まれていることです (新機能と拡張機能の詳細なリストについては、プロジェクトのGitHub リポジトリにあるこのページを参照してください)。最も特徴的な機能は以前のバージョンと比較すると、パフォーマンスが大幅に向上しました。

この記事では、ソース tarball から PHP 7 RC1CentOS 7 上で ApacheMariaDB とともにインストールしてコンパイルするプロセスについて説明します。 Debian 8 ジェシー 。同じ手順は、RHELFedoraScientific LinuxDebian< などの CentOS ベースのディストリビューションでも機能します。 Ubuntu/Mint などの ベース。

CentOS 7 および Debian 8 への PHP 7 のインストール

冒頭で述べたように、このバージョンは安定版リリースではなくRCであるため、リポジトリで見つかることは合理的に期待できません。そのため、ソースコードをダウンロードしてプログラムを最初からコンパイルする必要があります。

ただし、その前に、PHP 7 をより有効に活用するには、おそらくそれを試してみる最良の方法は、Apache と一緒にインストールすることであることを覚えておく必要があります。と MariaDB – これはリポジトリで見つけることができます。

CentOS 7 の場合


yum update && yum install httpd mariadb mariadb-server

Debian 8 の場合


aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common

どちらの場合も、PHP のソース コードを含む tarball は、次のようにダウンロードして抽出できます。


wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz
tar xzf php-7.0.0RC1.tar.gz -C /opt

完了したら、/opt/php-7.0.0RC1 に移動し、–force スイッチを指定して buildconf スクリプトを実行して、 RC バージョンのビルド:


ls


cd /opt/php-7.0.0RC1.tar.gz
./buildconf --force

次に、よく知られているconfigure コマンドを実行します。以下のオプションは標準のPHP 7 インストールを保証しますが、必要に応じてインストールをより適切にカスタマイズするために、PHP マニュアルの完全なオプション リストを参照できます。


./configure \
--prefix=$HOME/php7/usr \
--with-config-file-path=$HOME/php7/usr/etc \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-curl \
--with-mcrypt \
--with-iconv \
--with-gmp \
--with-pspell \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-zlib-dir=/usr \
--with-xpm-dir=/usr \
--with-freetype-dir=/usr \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-openssl \
--with-pdo-mysql=/usr \
--with-gettext=/usr \
--with-zlib=/usr \
--with-bz2=/usr \
--with-recode=/usr \
--with-mysqli=/usr/bin/mysql_config \
--with-apxs2

次のエラーが発生した場合:


configure: error: no acceptable C compiler found in $PATH
see 'config.log' for more details

次のコマンドを使用してgcc と依存関係をインストールし、上記のconfigure コマンドを再度実行するだけです。


yum install gcc       [On CentOS 7 box]
aptitude install gcc  [On Debian 8 box]

PHP 7 のコンパイルが始まりますが、これにはしばらく時間がかかる場合があります。他に不足しているライブラリやリソースがある場合、このプロセスは失敗しますが、いつでもそれらをインストールして、configure を再度実行することができます。

たとえば、次のエラー メッセージが表示された後、libxml2-devel をインストールする必要がありました。


configure: error: xml2-config not found. Please check your libxml2 installation.

残念ながら、インストールされているソフトウェアはシステムによって異なる可能性があるため、すべてのシナリオをカバーすることはできません。インストール中に、ソースから PHP をインストールするときに発生する可能性のあるいくつかのエラーと、それぞれの解決策の概要を説明するこのページを参照してください。

CentOS 7 の場合

構成プロセスを完了する前に、CentOS 7 ボックスにインストールする必要があったパッケージの完全なリストを次に示します。


gcc
libxml2-devel
pkgconfig
openssl-devel
bzip2-devel
curl-devel
libpng-devel
libpng-devel
libjpeg-devel
libXpm-devel
freetype-devel
gmp-devel
libmcrypt-devel
mariadb-devel
aspell-devel
recode-devel
httpd-devel

上記の必要なパッケージはすべて、次のように 1 つの yum コマンドでインストールできます。


yum install gcc libxml2-devel pkgconfig openssl-devel bzip2-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel

次のメッセージは、構成が正常に完了したことを示します。

それから走って、


make
make install

インストールが完了したら、コマンド ラインを使用してバージョンを確認できます。

Debian 8 の場合

Debian では、設定プロセスを正常に完了するには、次のパッケージをインストールする必要がありました。


make
libxml2-dev
libcurl4-openssl-dev
libjpeg-dev
libpng-dev
libxpm-dev
libmysqlclient-dev
libicu-dev
libfreetype6-dev
libxslt-dev
libssl-dev
libbz2-dev
libgmp-dev
libmcrypt-dev
libpspell-dev 
librecode-dev
apache2-dev

上記の必要なパッケージはすべて、Debian 8 上の apt-get コマンドを使用してインストールできます。


apt-get install make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev

次に、–with-libdir=/lib/x86_64-linux-gnu を設定オプションに追加し、gmp.h ヘッダー ファイルへの次のシンボリックリンクを作成します。


ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h

次に、前のケースと同様にmakemake installを実行しました。 10 ~ 15 分 以内にコンパイルが完了するはずで、インストールされている PHP のバージョンを以前と同様に確認できます。


make
make install

php.ini のセットアップと PHP 7 インストールのテスト

PHP をソースからインストールすると、2 つのサンプル php.ini が提供されます。この場合、これらは /opt/php-7.0.0RC1 内にあります。


ls -l /opt/php-7.0.0RC1 | grep php.ini

ここで、そのうちの 1 つを /usr/local/lib にコピーする必要があります。これは、インストールに関する注意事項に従って、そのようなファイルのデフォルトの場所として指定されています。


cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib

この設定ディレクティブを Apache のメイン設定ファイルに追加することを忘れないでください。


/etc/httpd/conf/httpd.conf    [On CentOS 7 box]
/etc/apache2/apache2.conf in  [On Debian 8 box] 

LoadModule php7_module        /usr/lib64/httpd/modules/libphp7.so
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Debian 8 では、LoadModule 行を省略できます。また、指定された Apache モジュールへの次のシンボリック リンクを削除して作成する必要があります。


cd /etc/apache2
rm mods-enabled/mpm_event.conf
rm mods-enabled/mpm_event.load
ln -s mods-available/mpm_prefork.conf mpm_prefork.conf
ln -s mods-available/mpm_prefork.load mpm_prefork.load

次に、Web サーバーを再起動します。


systemctl restart httpd     [On CentOS 7 box]
systemctl restart apache2   [On Debian 8 box]

CentOS 7Apache を起動すると、libphp7.so モジュールが見つからないというエラー メッセージが返された場合は、指定されたパスにコピーしてください。 /opt/php-7.0.0RC1/.libs/libphp7.so から。

PHP/Apache インストールをテストする古典的な方法は、phpinfo() ファイルを使用することです。次の内容を含む test.php という名前のファイルを Web サーバーのドキュメント ルート (両方のディストリビューションの /var/www/html) に作成します。


<?php
phpinfo();
?>

そして、ネットワーク内のクライアントでブラウザを起動して、以下をテストします。


http://localhost/test.php
OR
http://IP-address/test.php

まとめ

この記事では、前例のない値でパフォーマンスを向上させることを目的とした、この人気のあるサーバーサイド スクリプト言語の最新の RC である PHP 7 をソース コードからインストールする方法を説明しました。今年2015 年11 月に厩舎に到着するまでは、強くお勧めします。このリリースを運用環境では「color:red;">使用しないでください。

この記事に関してご質問/ご意見/ご提案がございましたら、以下のフォームを使用してお気軽にお知らせください。