安裝PHP5和PHP7

5月25日任務

課程內容:php

11.10/11.11/11.12 安裝PHP5
11.13 安裝PHP7
php中mysql,mysqli,mysqlnd,pdo究竟是什麼http://blog.csdn.net/u013785951/article/details/60876816
查看編譯參數 http://ask.apelearn.com/question/1295mysql

 

11.10/11.11/11.12 安裝PHP5linux

PHP官網www.php.net 當前主流版本爲5.6/7.1sql

操做實例步驟以下:apache

①[root@jimmylinux-002 ~]# cd /usr/local/src/  進入到下載軟件包目錄vim

②[root@jimmylinux-002 src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz  下載軟件包php7

③[root@jimmylinux-002 src]# tar zxf php-5.6.30.tar.gz  解壓軟件包架構

④[root@jimmylinux-002 src]# cd php-5.6.30  進入到PHP目錄less

⑤[root@jimmylinux-002 php-5.6.30]# ./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-exifsocket

編譯PHP,prefix指定安裝目錄,--with-apxs2比較關鍵的,是Apache的一個工具,能夠自動的把擴展模塊放到Apache的modules目錄下,而且在配置文件里加上一行load modules,自動的配置上,可讓httpd -M的時候把模塊加載出來,正常狀況下這個模塊雖然可以把.so的文件編譯出來,可是若是沒有去改寫配置文件的話,是沒有辦法加載出來的,這個工具就能夠自動的幫你去配置,爲何要把PHP放到最後,緣由就在這,首先要安裝好Apache,而後在指定工具的地址,不然沒法自動安裝它的擴展模塊,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  指相互關聯的函數或驅動,老版本使用mysql,新版本使用mysqli。

編譯過程當中若是出現報錯,能夠根據提示排查,以下圖。

經過ls /usr/local/ 能夠看出目錄名稱是Apache2,並不是Apache2.4 ↑↑↑ 修改正確的名稱後再編譯,若是出現以下報錯,說明缺乏庫文件。

[root@jimmylinux-002 php-5.6.30]# yum list |grep xml2  經過模糊搜索來安裝正確的庫文件,通常都是安裝-devel的庫。

[root@jimmylinux-002 php-5.6.30]# yum install -y libxml2-devel  安裝缺乏的庫

安裝好以後再執行命令編譯一次

[root@jimmylinux-002 php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/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

若是出現報錯mcrypt,若是以前沒有安裝過這個epel-release擴展源,須要先安裝epel-release,由於安裝的mcrypt這個庫就在epel-release擴展源裏面的。 

再執行編譯,若是再次出現報錯,繼續安裝缺乏的庫。

⑥[root@jimmylinux-002 php-5.6.30]# make  執行make命令

⑦[root@jimmylinux-002 php-5.6.30]# make install  

[root@jimmylinux-002 php-5.6.30]# ls /usr/local/php/  查看PHP目錄

核心文件在這個目錄下面 ls /usr/local/php/bin

/usr/local/apache2/modules/libphp5.so  這個就是咱們須要的那個擴展模塊,也就是說PHP和Apache結合起來是經過這個.so文件實現的,若是這個時候把PHP目錄刪除也沒有問題。

[root@jimmylinux-002 php-5.6.30]# /usr/local/php/bin/php -m  查看PHP加載的模塊,這些模塊都是靜態的,固然也能夠擴展安裝其餘模塊。

[root@jimmylinux-002 php-5.6.30]# /usr/local/apache2/bin/httpd -M  查看Apache加載的模塊

在LAMP的架構中,PHP做爲Apache的模塊存在的,若是Apache想要執行PHP的腳本,必須依賴php5_module,須要這個模塊,須要.so的文件,若是把.so文件刪除,那麼Apache就不支持PHP了,做爲一個論壇站點,時時刻刻都在和PHP和mysql打交道,因此說這個模塊很是的重要。

[root@jimmylinux-002 php-5.6.30]# ls -l /usr/local/apache2/modules/libphp5.so  這個就是模塊文件

[root@jimmylinux-002 php-5.6.30]# vim /usr/local/apache2/conf/httpd.conf  這個就是Apache的配置文件

自動增長了一行loadmodule,其餘的都用#註釋掉,都不會被加載,這叫隨用隨取,須要使用的就把#取消掉,若是不想要直接在前面加一個#就能夠了。

⑧[root@jimmylinux-002 php-5.6.30]# cp php.ini-production  /usr/local/php/etc/php.ini  拷貝生產環境下的PHP配置文件到指定的目錄

[root@jimmylinux-002 php-5.6.30]# /usr/local/php/bin/php -i |less  再去查看配置文件就已經有被加載了

 

11.13 安裝PHP7

操做實例步驟以下:

①[root@jimmylinux-002 src]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2  下載PHP7軟件包

②[root@jimmylinux-002 src]# tar jxfv php-7.1.6.tar.bz2  解壓軟件包

③[root@jimmylinux-002 src]# cd php-7.1.6  進入到php目錄

④[root@jimmylinux-002 php-7.1.6]# ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2/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  (執行./configure) 

⑤[root@jimmylinux-002 php-7.1.6]# make  執行make命令

⑥[root@jimmylinux-002 php-7.1.6]# make install

在一臺機器上面也能夠同時安裝2個PHP版本,可是Apache調用PHP的時候須要指定好對應的版本。

⑦[root@jimmylinux-002 php-7.1.6]# ls /usr/local/apache2/modules/libphp7.so  查看libphp

[root@jimmylinux-002 php-7.1.6]# du -sh /usr/local/apache2/modules/libphp7.so  查看一下文件大小

[root@jimmylinux-002 php-7.1.6]# /usr/local/php7/bin/php -m  查看php7加載的模塊,和php5模塊基本同樣的。

[root@jimmylinux-002 php-7.1.6]# /usr/local/apache2/bin/apachectl -M  查看Apache加載了幾個php

[root@jimmylinux-002 php-7.1.6]# vim /usr/local/apache2/conf/httpd.conf  至於使用哪一個,能夠根據本身的需求去修改配置文件便可。

有2行,有一個php5,有一個php7,若是不想用5就加#註釋掉,若是不想用7也一樣加#註釋掉就能夠了。

相關文章
相關標籤/搜索