代码输入中...2018-08-02 21:55:26
ダウンロードして解凍します
公式 PHP ダウンロード ページに移動し、サーバーが設置されている国のミラーを選択し、右クリックしてリンクをコピーします。
$ wget http://am1.php.net/get/php-7.0.0.tar.gz/from/this/mirror
ダウンロードした圧縮パッケージを解凍します
$ tar xf php-7.0.0.tar.gz$cd php-7.0.0
インストール前の設定
依存パッケージを解決します
yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
Linux make インストール方法を使用します、make の前にソフトウェアのコンパイルを設定する必要があります。ここで、対応するオプションがコンパイル前に設定されていない場合、一部のモジュールが生成されず、後で問題が発生する可能性があることに注意してください。
./configure --prefix=/usr/local/php7 \--with-config-file-path=/usr/local/php7/etc \--with-config-file-scan-dir=/usr/local/php7/etc/php.d \--with-apxs2=/usr/local/apache/bin/apxs \--with-mcrypt=/usr/include \--enable-mysqlnd \--with-mysqli \--with-pdo-mysql \--with-gd \--with-iconv \--with-zlib \--enable-xml \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--enable-mbregex \--enable-mbstring \--enable-ftp \--enable-gd-native-ttf \--with-openssl \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-zip \--enable-soap \--without-pear \--with-gettext \--enable-session \--with-curl \--with-jpeg-dir \--with-freetype-dir \--enable-opcache
上記の構成では、青色のオプションを変更して、サーバーのデプロイメントに基づいて独自の実際のパスにすることができます。
コンパイルとインストール
本来、Linux では、configure 後、make でコンパイルするだけですが、環境が異なるため、異なるエラーが発生します。たとえば、私のサーバーでは、libmcrypt を要求するエラーが表示されました。エラーが増えます。したがって、コンパイル時に発生する状況に応じて、コンパイル時に対応するモジュールやソフトウェア環境をインストールする必要がある場合があります。コンパイル エラー後にコンパイルを続行できない場合は、make clean を使用して再度コンパイルできます。
再度コンパイルすると、libiconv エラーが発生しました。同時に、サーバーがデュアルコアなので、次のコマンドを使用してコンパイルしました:
$ gmake -j2 ZEND_EXTRA_LIBS='-liconv'
-j2 は、コンパイルにデュアルコアカップを使用することを意味します。のほうが速いです。つまり、コンパイル中にエラーが発生した場合は、オンラインで解決方法を調べてください。
コンパイルが完了したら、インストールするだけです。
$ make install
Configure apache
上記のコンパイルとインストールが正常であれば、apxs オプションを設定しているため、make はコンパイル中に Apache の apxs を呼び出し、結果は Apache のインストール ディレクトリに格納されます。 libphp7.so を生成します。 modules ディレクトリに
LoadModule php7_module modules/libphp7.so
という行を Apache 設定ファイル httpd.conf に追加すると、Apache に新しい libphp7.so モジュールをロードさせるためであることが一目でわかります。ただし、httpd.conf を変更し、Apache を再構成する必要があります。 LoadModule php を見つけると、次のように php5 と php7 を同時にロードする 2 つの LoadModule 行があることがわかります:
LoadModule php5_module modules/libphp5.soLoadModule php7_module modules/libphp7.so
最初の行をコメントアウトします。 line を追加し、PHPIniDir 構成項目も追加します。これは次のように変更されます:
#LoadModule php5_module modules/libphp5.soLoadModule php7_module modules/libphp7.soPHPIniDir /usr/local/php7/etc
Apache を再起動します。これで、phpinfo を書いて試すことができます。
php設定ファイル
phpのデフォルトのインストール状態では、/usr/local/php7以下にetcディレクトリがなく、php.iniファイルも存在しない場合があります。これは正常ですが、php.ini を自分で作成することも、php ソース コード ディレクトリで 2 つの php.ini-xxx ファイルを見つけ、1 つをコピーして名前を php.ini に変更することもできます。
cd ~/php-7.0.0mkdir /usr/local/php7/etccp php.ini-production /usr/local/php7/etc/php.ini
mysql がサーバーにインストールされている場合、実際には他の設定を行う必要はありません。元のランプ環境が既に mysql に正常に接続できる場合は、実際に php7 に接続することもできます。通常は mysql に追加され、mysql は設定を変更する必要がありません。