十周一次课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