现在的位置: 首页 > 综合 > 正文

ubuntu8.04中编译安装php(apache/php使用apt-get安装)

2014年02月17日 ⁄ 综合 ⁄ 共 1485字 ⁄ 字号 评论关闭
本来在ubuntu中安装lamp是非常简单的,直接使用新立得软件管理工具-->Edit-->Mask Package as Task,然后选择lamp server即可。或者使用apt-get install一个一个安装也是挺简单的。但是因为需要使用php中的信号量、系统消息等功能,所以需要手动编译安装php。
当然,如果apache、mysql如果都是自己编译安装的话,也比较简单,以为所有的文件都在一个文件夹中,找起来好找,而且apache的配置方式是传统的方式,配置起来也是轻车熟路,网上也有很多文章。
但因为我的apache2和mysql5都是使用apt-get install安装的,所以安装php5时还是遇到了一点小小的麻烦。

下面安装php5编译安装的过程:

1. 解压

2. configure
为了能把php编译到apache中,需要添加--with-apxs2=/opt/apache/bin/apxs。而默认的apache是没有这个文件的,所以需要安装apache2-threaded-dev,安装完之后apxs在/usr/bin/中;
为了能在php中添加mysql功能,必须安装libmysqlclient15-dev,从而在/usr/include/mysql/中能找到mysql.h。
./configure --prefix=/usr/local/php
--with-mysql=/usr/include/mysql
--with-apxs2=/usr/bin/apxs
--with-config-file-path=/usr/local/php/etc
--enable-sysvsem
--enable-sysvshm
--enable-sysvmsg

3. make

4. make install
出现如下错误:
apxs:Error: Activation failed for custom /etc/apache2/httpd.conf file..
apxs:Error: At least one `LoadModule' directive already has to exist..
make: *** [install-sapi] Error 1
经过google,发现是因为默认安装的apache配置文件httpd.conf中是空的,没有任何LoadModule,从而导致make install不能通过。解决办法是采取欺骗的方法,
在httpd.conf中添加如下注释,假装加在模个模块:
# Dummy LoadModule directive to aid module installations
# LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so
之后再make install,通过。

5. 重启服务器:
sudo apache2ctl -k restart

6. 测试
在/var/www/中添加index.php,如下

  1. <?php
  2. echo phpinfo();
  3. ?>

在浏览器中输入http://localhost/index.php,显示出php和apache的信息。OK!

注:在make install通过后,我本以为还要像以前安装apache+php一样,修改httpd.con以支持.php,.phtml文件。但加上如上语句后,反倒使服务器不能正常工作。
#AddType application/x-httpd-php .php .phtml 
#AddType application/x-httpd-php-source .phps
后来,注释到这两句话之后,服务器正常工作。

抱歉!评论已关闭.