天天看點

[LAMP]安裝PHP 5/7

       目前主流的php版本是5.6和7.1。和php 5相比,php 7對于性能的提升的很大的,對于自身的處理速度優化了很多,同時也改變了一些文法的使用。但由于很多軟體都是基于php 5的,是以php 5和7的安裝和配置都要熟練掌握。

安裝PHP 5

1、下載下傳安裝包

<code>[root@juispan src]</code><code># wget http://cn2.php.net/distributions/php-5.6.30.tar.gz</code>

<code>--2017-07-21 07:39:35--  http:</code><code>//cn2</code><code>.php.net</code><code>/distributions/php-5</code><code>.6.30.</code><code>tar</code><code>.gz</code>

<code>正在解析主機 cn2.php.net (cn2.php.net)... 220.181.136.41, 220.181.136.30, 220.181.136.55, ...</code>

<code>正在連接配接 cn2.php.net (cn2.php.net)|220.181.136.41|:80... 已連接配接。</code>

<code>已發出 HTTP 請求,正在等待回應... 200 OK</code>

<code>長度:19274631 (18M) [application</code><code>/x-gzip</code><code>]</code>

<code>正在儲存至: “php-5.6.30.</code><code>tar</code><code>.gz”</code>

<code>100%[==============================================&gt;] 19,274,631   518KB</code><code>/s</code> <code>用時 34s    </code>

<code>2017-07-21 07:40:10 (552 KB</code><code>/s</code><code>) - 已儲存 “php-5.6.30.</code><code>tar</code><code>.gz” [19274631</code><code>/19274631</code><code>])</code>

2、解壓壓縮包

<code>[root@juispan src]</code><code># tar zxf php-5.6.30.tar.gz</code>

3、配置php

<code>[root@juispan src]</code><code># cd php-5.6.30</code>

<code>[root@juispan php-5.6.30]</code><code># ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif</code>

在配置過程中,會遇到一個接一個的配置失敗,這裡需要耐心處理。

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

<code>[root@juispan php-5.6.30]</code><code># yum install -y libxml2-devel</code>

問題2:configure: error: Cannot find OpenSSL's &lt;evp.h&gt;

<code>[root@juispan php-5.6.30]</code><code># yum install -y openssl-devel</code>

問題3:configure: error: Please reinstall the BZip2 distribution

<code>[root@juispan php-5.6.30]</code><code># yum install -y bzip2-devel</code>

問題4:configure: error: jpeglib.h not found.

<code>[root@juispan php-5.6.30]</code><code># yum install -y libjpeg-turbo-devel</code>

問題5:configure: error: png.h not found.

<code>[root@juispan php-5.6.30]</code><code># yum install -y libpng-devel</code>

問題6:configure: error: freetype-config not found.

<code>[root@juispan php-5.6.30]</code><code># yum install -y freetype-devel</code>

問題7:configure: error: mcrypt.h not found. Please reinstall libmcrypt.

<code>[root@juispan php-5.6.30]</code><code># yum install -y libmcrypt-devel</code>

處理完以上問題後,重新配置出現以下文本:

<code>Generating files</code>

<code>configure: creating .</code><code>/config</code><code>.status</code>

<code>creating main</code><code>/internal_functions</code><code>.c</code>

<code>creating main</code><code>/internal_functions_cli</code><code>.c</code>

<code>+--------------------------------------------------------------------+</code>

<code>| License:                                                           |</code>

<code>| This software is subject to the PHP License, available </code><code>in</code> <code>this     |</code>

<code>| distribution </code><code>in</code> <code>the </code><code>file</code> <code>LICENSE.  By continuing this installation |</code>

<code>| process, you are bound by the terms of this license agreement.     |</code>

<code>| If you </code><code>do</code> <code>not agree with the terms of this license, you must abort |</code>

<code>| the installation process at this point.                            |</code>

<code>Thank you </code><code>for</code> <code>using PHP.</code>

<code>config.status: creating php5.spec</code>

<code>config.status: creating main</code><code>/build-defs</code><code>.h</code>

<code>config.status: creating scripts</code><code>/phpize</code>

<code>config.status: creating scripts</code><code>/man1/phpize</code><code>.1</code>

<code>config.status: creating scripts</code><code>/php-config</code>

<code>config.status: creating scripts</code><code>/man1/php-config</code><code>.1</code>

<code>config.status: creating sapi</code><code>/cli/php</code><code>.1</code>

<code>config.status: creating sapi</code><code>/cgi/php-cgi</code><code>.1</code>

<code>config.status: creating ext</code><code>/phar/phar</code><code>.1</code>

<code>config.status: creating ext</code><code>/phar/phar</code><code>.phar.1</code>

<code>config.status: creating main</code><code>/php_config</code><code>.h</code>

<code>config.status: executing default commands</code>

以上文本内容表示配置成功,如果不放心可以用“echo $?”确認下。

4、編譯與安裝

<code>[root@juispan php-5.6.30]</code><code># make &amp;&amp;make install</code>

<code>[root@juispan php-5.6.30]</code><code># echo $?</code>

<code>0</code>

<code>[root@juispan php-5.6.30]</code><code># cp php.ini-production /usr/local/php/etc/php.ini</code>

5、檢視與驗證

<code>[root@juispan php-5.6.30]</code><code># du -sh /usr/local/apache2.4/modules/libphp5.so </code>

<code>37M </code><code>/usr/local/apache2</code><code>.4</code><code>/modules/libphp5</code><code>.so</code>

<code>[root@juispan php-5.6.30]</code><code># cat /usr/local/apache2.4/conf/httpd.conf | grep -i php</code>

<code>LoadModule php5_module        modules</code><code>/libphp5</code><code>.so</code>

<code>[root@juispan php-5.6.30]</code><code># /usr/local/apache2.4/bin/httpd -M | tail -1</code>

<code> </code><code>php5_module (shared)</code>

前幾章說過,php在LAMP架構裡的作用隻是Apache用于與mysql之間通訊的橋梁。是以,隻要apache2.4的modules檔案裡有libphp5.so檔案,且在配置檔案裡有相應的配置即可。即使删除php的安裝目錄也不會有太大的影響。

安裝PHP 7

<code>[root@juispan php-5.6.30]</code><code># cd /usr/local/src</code>

<code>[root@juispan src]</code><code># wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2</code>

<code>[root@juispan src]</code><code># tar jxf php-7.1.6.tar.bz2 </code>

<code>tar</code> <code>(child): </code><code>bzip2</code><code>:無法 </code><code>exec</code><code>: 沒有那個檔案或目錄</code>

<code>tar</code> <code>(child): Error is not recoverable: exiting now</code>

<code>tar</code><code>: Child returned status 2</code>

<code>tar</code><code>: Error is not recoverable: exiting now</code>

<code>[root@juispan src]</code><code># yum install -y bzip2</code>

<code>[root@juispan src]</code><code># tar jxf php-7.1.6.tar.bz2</code>

<code>[root@juispan src]</code><code># cd php-7.1.6</code>

<code>[root@juispan php-7.1.6]</code><code>#  ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc  --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif</code>

<code>[root@juispan php-7.1.6]</code><code># echo $?</code>

<code>[root@juispan php-7.1.6]</code><code># make &amp;&amp;make install</code>

<code>[root@juispan php-7.1.6]</code><code># ls /usr/local/apache2.4/modules/libphp7.so </code>

<code>/usr/local/apache2</code><code>.4</code><code>/modules/libphp7</code><code>.so</code>

<code>[root@juispan php-7.1.6]</code><code># cp php.ini-production /usr/local/php7/etc/php.ini</code>

<code>[root@juispan php-7.1.6]</code><code># cat /usr/local/apache2.4/conf/httpd.conf | grep -i php</code>

<code>LoadModule php7_module        modules</code><code>/libphp7</code><code>.so</code>

<code>[root@juispan php-7.1.6]</code><code># /usr/local/apache2.4/bin/httpd -M | tail -2</code>

<code> </code><code>php7_module (shared)</code>

<code></code>

本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/1951599,如需轉載請自行聯系原作者