十週一次課php
11.10/11.11/11.12安裝PHP5python
11.13安裝PHP7mysql
11.10/11.11/11.12安裝PHP5linux
安裝PHP5目錄概要sql
1.首先切換到 /usr/local/src目錄下apache
[root@tianqi-01 mysql]# cd /usr/local/src/
[root@tianqi-01 src]# json
2.下載php5.6 的壓縮包vim
[root@tianqi-01 src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gzsession
3.解壓php5.6的壓縮包php7
[root@tianqi-01 src]# tar zxvf php-5.6.30.tar.gz
4.並查看解壓的包
[root@tianqi-01 src]# ls
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-5.6.30 php-5.6.30.tar.gz
[root@tianqi-01 src]#
5.切換目錄到php-5.6.30/ 下
[root@tianqi-01 src]# cd php-5.6.30/
[root@tianqi-01 php-5.6.30]#
6.編譯PHP5.6
7.編譯安裝中遇到的問題
1.錯誤
configure: error: xml2-config not found. Please check your libxml2 installation.
解決方法:
[root@tianqi-01 php-5.6.30]# yum list |grep xml2
libxml2.x86_64 2.9.1-6.el7_2.3 @anaconda
libxml2-python.x86_64 2.9.1-6.el7_2.3 @base
libxml2.i686 2.9.1-6.el7_2.3 base
libxml2-devel.i686 2.9.1-6.el7_2.3 base
libxml2-devel.x86_64 2.9.1-6.el7_2.3 base
libxml2-static.i686 2.9.1-6.el7_2.3 base
libxml2-static.x86_64 2.9.1-6.el7_2.3 base
[root@tianqi-01 php-5.6.30]# yum install -y libxml2-devel
2.錯誤
configure: error: Cannot find OpenSSL's <evp.h>
解決方法:
[root@tianqi-01 php-5.6.30]# yum install -y openssl-devel
3.錯誤
configure: error: Please reinstall the BZip2 distribution
解決方法:
[root@tianqi-01 php-5.6.30]# yum install -y bzip2-devel
4.錯誤
configure: error: jpeglib.h not found.
解決方法:
[root@tianqi-01 php-5.6.30]# yum install -y libjpeg-devel
5.錯誤
configure: error: png.h not found.
解決方法:
[root@tianqi-01 php-5.6.30]# yum install -y libpng-devel
6.錯誤
解決方法:
7.錯誤
configure: error: freetype-config not found.
解決方法:
[root@tianqi-01 php-5.6.30]# yum install -y freetype-devel
8.錯誤
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解決方法:
先安裝
[root@tianqi-01 php-5.6.30]# yum install epel-release
再安裝
[root@tianqi-01 php-5.6.30]# yum install -y libmcrypt-devel
8.並可使用echo $? 檢查是否安裝完成
[root@tianqi-01 php-5.6.30]# echo $?
0
[root@tianqi-01 php-5.6.30]#
9.而後make && make install
[root@tianqi-01 php-5.6.30]# make && make install
10.這樣成功安裝好PHP5了
[root@tianqi-01 php-5.6.30]# echo $?
0
[root@tianqi-01 php-5.6.30]#
1.查看PHP目錄/usr/local/php/
[root@tianqi-01 php-5.6.30]# ls /usr/local/php/
bin etc include lib php
[root@tianqi-01 php-5.6.30]#
2.PHP核心的二進制文件,在/usr/local/php/bin/目錄下
[root@tianqi-01 php-5.6.30]# ls /usr/local/php/bin/
pear peardev pecl phar phar.phar php php-cgi php-config phpize
[root@tianqi-01 php-5.6.30]# du -sh /usr/local/php/bin/php
36M /usr/local/php/bin/php
[root@tianqi-01 php-5.6.30]#
3.查看/usr/local/apache2.4/modules/libphp5.so文件大小
[root@tianqi-01 php-5.6.30]# du -sh /usr/local/apache2.4/modules/libphp5.so
37M /usr/local/apache2.4/modules/libphp5.so
[root@tianqi-01 php-5.6.30]#
4.這時候如果想把/usr/local/php/bin/php 目錄刪除也沒有問題,由於要的僅僅是/usr/local/apache2.4/modules/libphp5.so文件
5.查看php加載的模塊都有哪些,命令/usr/local/php/bin/php -m
[root@tianqi-01 php-5.6.30]# /usr/local/php/bin/php -m //查看php加載的模塊
[PHP Modules]
bz2
Core
ctype
date
dom
ereg
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
[root@tianqi-01 php-5.6.30]#
6.PHP是做爲Apache的模塊存在的
7.查看Apache的模塊
[root@tianqi-01 php-5.6.30]# /usr/local/apache2.4/bin/httpd -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::1eb9:8f9e:264a:7159. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
php5_module (shared)
[root@tianqi-01 php-5.6.30]#
8.查看模塊文件大小
[root@tianqi-01 php-5.6.30]# ls -l /usr/local/apache2.4/modules/libphp5.so
-rwxr-xr-x 1 root root 37752688 Feb 27 20:25 /usr/local/apache2.4/modules/libphp5.so
[root@tianqi-01 php-5.6.30]#
9.打開/usr/local/apache2.4/conf/httpd.conf文件
[root@tianqi-01 php-5.6.30]# vim /usr/local/apache2.4/conf/httpd.conf
去搜索php5.so,會發現自動增長了一行
LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
若想使用文件中的哪個模塊,將前面的 # 號去除便可使用
若想不使用哪個模塊,只須要加一個 # 號便可
1./usr/local/php/bin/php -i |less -i 能夠查看到PHP的一些信息,包括編譯參數,Configuration File 的路徑
[root@tianqi-01 php-5.6.30]# /usr/local/php/bin/php -i |less -i
Configuration File (php.ini) Path => /usr/local/php/etc //configurtion 的配置路徑
Loaded Configuration File => (none) //這些都沒有加載任何東西,由於 /usr/local/php/etc 目錄是空的
2.拷貝配置文件
[root@tianqi-01 php-5.6.30]# cp php.ini-production /usr/local/php/etc/php.ini
此時再來看/usr/local/php/bin/php -i |less -i
[root@tianqi-01 php-5.6.30]# /usr/local/php/bin/php -i |less -i
這裏會看到加載了路徑
Loaded Configuration File => /usr/local/php/etc/php.ini
1.首先切換到/usr/local/src/目錄下
[root@tianqi-01 php-5.6.30]# cd /usr/local/src
[root@tianqi-01 src]#
2.而後下載PHP7.1版本安裝包
[root@tianqi-01 src]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
3.查看PHP7安裝包,並解壓
[root@tianqi-01 src]# ls
? apr-util-1.6.1 httpd-2.2.34 httpd-2.4.29.tar.gz php-5.6.30
apr-1.6.3 apr-util-1.6.1.tar.bz2 httpd-2.2.34.tar.gz mariadb-10.2.6-linux-x86_64.tar.gz php-5.6.30.tar.gz
apr-1.6.3.tar.gz d? httpd-2.4.29 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz php-7.1.6.tar.bz2
[root@tianqi-01 src]# tar jxvf php-7.1.6.tar.bz2
4.進入到PHP7的源碼包目錄下/usr/local/src/php-7.1.6/
[root@tianqi-01 src]# cd php-7.1.6/
5.初始化配置
[root@tianqi-01 src]# ./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
6.在初始化配置完成後,而後make && make install
[root@tianqi-01 php-7.1.6]# make && make install
7.這樣php7.1就安裝成功了
1.查看libphp7和5是不一樣的,/usr/local/apache2.4/modules/libphp7.so
[root@tianqi-01 php-7.1.6]# ls /usr/local/apache2.4/modules/libphp7.so
/usr/local/apache2.4/modules/libphp7.so
[root@tianqi-01 php-7.1.6]# du -sh !$
du -sh /usr/local/apache2.4/modules/libphp7.so
37M /usr/local/apache2.4/modules/libphp7.so
[root@tianqi-01 php-7.1.6]#
2.查看php7所加載的模塊,/usr/local/php7/bin/php -m,和php5基本是一致的
[root@tianqi-01 php-7.1.6]# /usr/local/php7/bin/php -m
[PHP Modules]
bz2
Core
ctype
date
dom
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
[root@tianqi-01 php-7.1.6]#
3.查看Apache加載了幾個php
[root@tianqi-01 php-7.1.6]# /usr/local/apache2.4/bin/apachectl -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::1eb9:8f9e:264a:7159. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)
php5_module (shared)
php7_module (shared)
[root@tianqi-01 php-7.1.6]#
4.若想去使用哪個PHP,根據本身的實際需求
[root@tianqi-01 php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf
搜索php5.so,會看到有兩行
LoadModule php5_module modules/libphp5.so
LoadModule php7_module modules/libphp7.so
想使用哪一個php,就在另外一個前面加 # 號註釋掉,而後保存
友情連接:阿銘Linux