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也一樣加#註釋掉就能夠了。