一、概述
其实PHP官网有安装向导:官方各种情况的安装向导点这里查看,但这个不能完全助你成功,还是得看看我这个。
注意:首先明确一点,安装分很多种情况,比如不同的OS、不同的Linux发行版、甚至不同的Web服务器也不一样。
那么我这里介绍的安装背景是:
CentOS7
+Apache2.4
+PHP5.6
+MySQL5.6
下,PHP的源码编译安装。
如果不需要MySQL的话至少得有个MySQL什么模块,因为我安装了MySQL,所以没去找要安装的那是什么模块,请读者注意。
二、步骤
PHP需要
libxml2
,所以如果没有的话先安装这个(可以用yum list installed
看有没有)。
libxml2官网下载地址点这里#配置、编译、安装 [root@iZ123321dZ sf_source]# tar -zxf tar -zxf libxml2-2.9.0.tar.gz [root@iZ123321dZ sf_source]# mkdir /usr/local/libxml2 [root@iZ123321dZ sf_source]# cd libxml2-2.9.0/ #如果出错,看下面“注意” [root@iZ123321dZ libxml2-2.9.0]# ./configure --prefix=/usr/local/libxml2 [root@iZ123321dZ libxml2-2.9.0]# make [root@iZ123321dZ libxml2-2.9.0]# make install
注意:有可能
./configure
之前,得修改configure
脚本中一个地方,要不然运行configure
会报错如下:/usr/bin/rm: cannot remove 'libtoolT': No such file or directory Done configuring #用vim configure 找到17035行,找到$RM "$cfgfile",将其注释(前面加#)。如下图 [root@iZ123321dZ libxml2-2.9.0]# vim configure
PHP安装
下载地址:官网下载地址,下载源码php-5.6.22.tar.gz。[root@iZ123321dZ sf_source]# tar -zxf php-5.6.22.tar.gz [root@iZ123321dZ sf_source]# cd php-5.6.22 [root@iZ123321dZ php-5.6.22]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 --disable-fileinfo [root@iZ123321dZ php-5.6.22]# make [root@iZ123321dZ php-5.6.22]# make install #可以编辑php.ini来设置PHP运行时的选项。如果想要把此文件放到另外的位置,需要在./configure时添加 --with-config-file-path=/path选项。 [root@iZ123321dZ php-5.6.22]# cp php.ini-development /usr/local/lib/php.ini
解释参数:
--with-apxs2=/usr/local/httpd/bin/apxs ---->PHP必须得选个Web服务器,对于很多服务器PHP均有一个直接的模块接口(也叫做 SAPI)。这里我用的Apache的httpd服务器就需要如此配置 --with-mysql=/usr/local/mysql ---->上面也说了,得有数据库相关配置 --with-libxml-dir=/usr/local/libxml2 ---->自己安装的libxml2 --disable-fileinfo ---->如果机器内存太小(我的1G)可能会报错如下,所以需要加这个参数 virtual memory exhausted: Cannot allocate memory make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
以上安装完成!
与Apache httpd
如上那样安装完之后,
make install
的过程就会自动的将httpd的httpd.conf
文件中加入php5_module
如下:#1. 这个自动加了 LoadModule php5_module modules/libphp5.so #2. 这里需要加php相关的 <IfModule dir_module> DirectoryIndex index.php index.php3 index.html index.htm </IfModule> #3. 需要在AddType application/x-gzip .gz .tgz下面加上如下 AddType application/x-httpd-php .php AddType application/x-httpd-php .php3
此时已将PHP作为模块与Apahce httpd关联好了,可以启动
httpd
了。