ubuntu 12.04 编译、安装PHP

1.下载

到http://cn2.php.net/downloads.php下载

php-5.5.8.tar.gz 

2.安装

解压后进入解压目录,执行

sudo ./configure --prefix=/usr/local/development/php --with-mysql=mysqlnd --with-apxs2=/usr/local/development/http-2.4.2/bin/apxs --with-config-file-path=/usr/local/development/php/etc

(其中,--prefix选项指定了安装目录;--with-mysql选项指定了支持的MySQL服务所在的目录;--with-apxs2选项指定了 PHP要使用的Apache应用所在的目录;--with-config-file-path选项则是指定了PHP配置文件所在的目录。)


直接这样执行后,将会看到这样一个错误:

configure: error: xml2-config not found. Please check your libxml2 installation.

与编译MySQL时相同,这是由于系统缺少PHP所需的库文件导致的,根据提示,进行如下操作:

sudo apt-get install libxml2

将会看到如下信息:

libxml2 libxml2-dev libxml2-headers libxml2-utils

这里需要安装的是libxml2-dev软件包(该软件为Ubuntu-Server自带的,需要使用Ubuntu-Server光盘安装),操作如下:

sudo apt-get install libxml2-dev

3.配置

库文件安装完成后,重新配置PHP,操作如下:

sudo ./configure --prefix=/usr/local/development/php --with-mysql=mysqlnd --with-apxs2=/usr/local/development/http-2.4.2/bin/apxs --with-config-file-path=/usr/local/development/php/etc

4.完成编译安装

编译完成后将会看到“Thank you for using PHP.”的字样,表明PHP已经配置成功了。

接下来编译、安装PHP,操作如下:

sudo make

sudo make install

5.配置Apache服务器

安装完PHP后,还需要手动修改一下Apache的配置,以便使Apache支持PHP,操作如下:

cd /usr/local/development/http-2.4.2/conf
sudo vi httpd.conf

找到“AddType application”部分,在后面添加如下内容:

AddType application/x-httpd-php .php
(如果需要添加默认php索引文件名的支持,则需要找到“DirectoryIndex index.html ”,修改为“DirectoryIndex index.html index.html.var index.php”),修改完成后保存退出。

此外,不要忘了将PHP安装目录中的php.ini-recommended文件拷贝到编译时指定的PHP配置文件目录/opt/php/etc下,在PHP源码包目录“php-5.2.6”中操作如下:

cd /usr/local/src/php-5.5.8

sudo cp php.ini /usr/local/development/php/etc/php.ini

全部配置完成后,不要忘了重启apache,以便使新的配置生效。

sudo /etc/init.d/apachectl restart

6.完成测试

Apache+  PHP的安装配置。可以利用PHP自身的函数进行确认,在web的根目录下创建一个index.php文件,编辑文件内容如下:

<?php
phpinfo();
?>

保存退出后,在浏览器中输入“http://IP/index.php”,如果配置正确,就能够看到刚刚配置好的服务器相关信息了,其中包括 Apache、MySQL以及PHP的版本、安装路径、配置情况等。如果看到的只是“phpinfo();”字样,说明apache没能正确支持PHP,请检查上述的配置过程是否都已经正确完成。  



7.特别说明

在php配置过程中有

配置命令行中有 --with-mysql=/usr/include/mysql

此时出现如下错误

configure: error: Cannot find MySQL header files under /usr/include/mysql

网上查到如下方式解决(此方式未成功,在此仅作为记录)

ubuntu 找不到mysql.h解决

sudo apt-get install libmysqlclient-dev 安装此软件开发包

然后在/usr/include/mysql里可以找到mysql.h      (也可以用#find / -name mysql.h命令搜索)        

编译的时候 gcc xx.c -o xx -L /usr/include/mysql -l mysqlclient


最终解决方案

sudo ./configure --prefix=/usr/local/development/php --with-mysql=mysqlnd --with-apxs2=/usr/local/development/http-2.4.2/bin/apxs --with-config-file-path=/usr/local/development/php/etc

即使用如下配置参数

--with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd --with-pdo-mysql=mysqlnd

原因说明:
php5.3以后,php无需指定mysql编译路径了
MysqlNd是php5.3以后加入的mysql系列扩展。

由于版权问题,PHP5中没有默认支持MySQL,不像以前的PHP4那样可以直接使用MySQL函数。Mysql支持还需要把libmysql.dll复制到windows目录,然后修改php.ini等等,比较麻烦。
它是新的函数库,libmysql有的功能它几乎都有,但是mysqlnd并不像libmysql那样作为通用库,它是专门为PHP而写的一个库,用了PHP的内在管理函数以及一些网络流的函数。
PHP最近发布了5.3版本,在该版本当中,提供了一个mysqlnd库,用来访问MySQL数据库,大大提升了PHP的数据库访问性能。
我们知道,PHP访问MySQL数据库,是通过MySQL数据库的libmysql client库,这个libmysql client是用C/C++编写的,虽然一直以来PHP通过libmysql访问数据库性能也一直很好,但是却无法利用PHP本身的很多特性。
mysqlnd提供了和Zend引擎高度的集成性,更加快速的执行速度,更少的内存消耗,利用了PHP的Stream API,以及客户段缓存机制。由于mysqlnd是透过Zend引擎,因此提供提供更多高级特性,以及有效利用Zend进行加速。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值