安装PHP5,安装PHP7
笔记内容:[*] 11.10/11.11/11.12 安装PHP5
[*] 11.13 安装PHP7
笔记日期:2017.9.28
11.10/11.11/11.12 安装PHP5
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEAE4FD7B78B2B48DB9F3868C01AC89D73/2308
PHP主流版本是5.x/7.x,不过大部分企业都是使用着PHP5.x版本,因为有些程序是基于5.x版本开发的,如果使用7.x版本可能就会出问题,7.x是这两年才出来的,这两个版本区别比较大,7.x的性能要比5.x版本有所提升。
现在先介绍如何安装5.6版本的PHP,在这里介绍的是编译源码包的安装方式,安装PHP之前必须要安装了mysql和apache:
第一步,先下载源码包到/usr/local/src/目录下:
下载地址:
http://cn2.php.net/distributions/php-5.6.30.tar.gz
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE01225C4DAA194320B7A8FC05BFC4E5C7/2309
第二步,解包:
tar -zxvf php-5.6.30.tar.gz
第三步,进入到php-5.6.30目录下,使用configure命令检查编译环境和配置参数:
命令:
./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
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEC3312B24E6394F3786030E2F63642B15/2310
主要参数介绍:
--with-apxs2:这是Apache的一个工具,可以自动帮助我们去把扩展的模块放进Apache里,并且可以自动得在配置文件里添加模块的配置信息,所以这就是为什么要先安装Apache的原因。
--with-config-file-path:是用于指定配置文件所在路径,PHP的配置文件名称是:php.ini
--with-mysql:指定mysql的安装路径;--with-pdo-mysql和--with-mysqli:这是指定mysql的驱动或者说是库,因为想要PHP与mysql交互通信得编译出支持它的模块来。没有驱动的话,php是无法访问mysql的,就像你网卡没有安装驱动,你就无法使用网卡上网一样。
后续的参数都是指定php所需要的模块
检查编译环境的过程中,我这里出现了一个错误,缺少libxml2包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE90857DF13CD64C409F2C8591FFA9FB7B/2311
解决办法:
模糊搜索一下,安装需要的包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEF862E9D5FCEB4E598E7845F8602318EF/2312
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE61091DABD87844598A873092A7EBCAEE/2313
安装完之后继续执行检查环境的命令,我这里又出现了一个错误,缺少OpenSSL包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE8CB1C7215836426F84663DA3404A2D22/2314
解决办法:
同样的安装这个包就可以了:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEA604F46388E344A6AF9BFF16381509E8/2315
然后再次执行configure时又出现了一个错误,这次是缺少BZip2包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE4C3C96667B01482DA4C93597755B2CCD/2316
解决办法,安装BZip2包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE0F93377B74574B4A9B3FC0E48B6537F5/2317
这次是缺少了libjpeg包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE3ED69D1C23E64CB584835C1C933AB827/2319
解决办法,安装libjpeg包:
yum install -y libjpeg-devel
缺少png包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE18A88F08A9664678B3F52EF11C491D5C/2320
安装png包:
yum install -y libpng-devel
缺少freetype包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE2EAF5F8E9D6F4806B115375360F53253/2321
安装freetype包:
yum install -y freetype-devel
缺少mcrypt包:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE463778FF0BD646C69C342BB5EBDC3A11/2322
这一步如果你没有安装epel-release扩展源的话要先安装这个扩展源:
yum install -y epel-release
然后再安装libmcrypt包:
yum install -y libmcrypt-devel
最后出现这样一个提示就是成功了:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE6D42151499054F669F96DD086D60B32F/2323
然后就是make && make install,编译安装了:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE4383DD6593AA4A0F97F10651ED34EEC7/2324
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE3B0FB236DC2B4F69AA4C15B3DCB17DBF/2325
成功编译安装后,就可以ls一下php的目录,可以看到以下几个目录:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE6E61ACFCF6F8475B85B800BFCB04D7DB/2326
核心的二进制文件在bin目录下,可以看到php有36M的大小:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEEAD049AAB5534853946F661C9E271B88/2327
apache下的php模块文件有37M,php就是通过这个libphp5.so文件与apache实现结合在一起的:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEA6ED4990A510484AA6D073500E99E6CC/2328
查看php里所加载的模块,这些模块都是静态的:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE9D2C0A3243734F9CAE81C044FB439E39/2329
这时候查看Apache的模块信息就可以看到php5的模块了:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEDC99359B43F644E6B291057EDD31F26E/2330
Apache就是通过这个模块去调用php的文件的,这个模块非常的重要,这个模块出现问题或者被删除了,Apache就无法调用php的文件了。
现在去查看Apache的配置文件就可以发现多了一行配置内容:
vi /usr/local/apache2.4/conf/httpd.conf
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICECDFDF751658C4258866BB1602584BB33/2331
这是apxs2自动添加的模块信息,如果不想使用这个模块加上#号注释掉就可以了。
php的-i 选项可以查看到php的相关信息,编译参数、安装路径等等:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE36CCDEF4D93544139C11FDB88C727ADD/2332
从php的相关信息中可以看到,没有加载任何的配置文件,因为/usr/local/php/etc目录下没有php.ini这个文件:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE18E7AB87AB9E424BB0DBC4140083173B/2333
所以我们需要在/usr/local/src/php-5.6.30目录下,拷贝php5的配置文件到/usr/local/php/etc目录下:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE20C20B7DC5D447B3B379C9BB8097E659/2334
现在再查看php的相关信息就可以看到加载了配置文件:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEB099A50FAB324099ACC0A19FDA3FFEF0/2335
11.13 安装PHP7
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE19A76C84ED9C40B0B3938D5CC4FD3B08/2336
安装PHP7和安装PHP5的操作步骤基本上没什么差别,现在要介绍的如何安装7.1版本的PHP,在这里介绍的还是编译源码包的安装方式:
第一步,先下载源码包到/usr/local/src/目录下:
下载地址:
http://cn2.php.net/distributions/php-7.1.6.tar.bz2
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEDD9585BB618E42FE9075740E528AAFB2/2337
第二步,解包并进入到php-7.1.6目录下:
tar -jxvf php-7.1.6.tar.bz2
cd php-7.1.6/
第三步,使用configure命令检查编译环境和配置参数:
命令:
./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
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE42368723B7BB428A928880195842F0E2/2338
在PHP7的参数里不需要指定--with-mysql参数了。
因为之前安装PHP5的时候已经把需要的包都安装了,所以基本上不会出现少包的情况:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE75E243E4A7644EA3ADA1DC3777D2F720/2339
然后就是使用make && make install,编译安装了:
在一台机器上是可以同时存在两个php的,但是要在apache里指定好调用的哪一个php模块,以免发生冲突。
成功安装:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE535C53E5C0764D1B9C31B1F39FEBF30E/2340
可以看到Apache的模块目录下多了个libphp7.so文件:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE03EAD254D5C4413CABBF0FCA582DB6D9/2341
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE4FD4C840FC1E4EB3B06D3FFB88E7DD93/2342
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEA2D78D31BE9D4A96BA07D1FCC6ED3CD2/2343
修改Apache的配置文件,让它调用php7:
vim /usr/local/apache2.4/conf/httpd.conf
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICEB838E83D7BDA42D89BA498C6BC6D35F8/2344
可以看到有php5和php7的配置信息,使用php7的话,就把php5那行注释掉就可以了:
http://note.youdao.com/yws/public/resource/53ca8a15845aa7b0d6913758d0277b03/xmlnote/OFFICE9A44FE48B10C405DA3E501A169471F85/2345
扩展
php中mysql,mysqli,mysqlnd,pdo到底是什么:
http://blog.csdn.net/u013785951/article/details/60876816
查看编译参数:
http://ask.apelearn.com/question/1295
页:
[1]