观海听涛
Waiting for you

在linux下搭建PHP开发环境记实(一)

13 Oct 2012

这里选用经典的组合apache+php+mysql

一、Apache的安装与配置

首先安装Apache服务器,到官网(httpd.apache.org)下载源码包。将下载的httpd安装包移动到/usr/local/work目录下(如果目录不存在,可以建立该目录)。以下的操作最好是切换到管理员权限,以免出现权限不够的情况。

将下载的文件解压到work目录中,进入解压后的目录。建立Makefile,使用如下命令:

./configure --prefix=/usr/local/apache -enable-module=so 出现错误:

configure: error: APR not found. Please read the documentation.)

上网查了一下这个错误提示,原因是apache依赖APR库。APR的全称是Apache Portable Runtime,其作用是 为不同的平台提供统一的接口。于是在apr.apache.org上下载这个库。

安装:./configure --prefix=/usr/local/aprmake,make install

安装APR成功后再重新为Apache建立Makefile文件:./configure -prefix=/usr/local/apache --with-apr=/usr/local/apr -enable-module=so,又出现以下错误:

(configure: error: APR-util not found. Please read the documentation.)

缺少APRutil库,去apr.apache.org下载APR-util。安装:建立Makefile文件:./configure --prefix=/usr/local/apr-util -with- apr=/usr/local/apr/bin/apr-1-configmakemake install

成功安装APRutil后用命令:sudo ./configure -prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ -enable-module=so 重新为Aapche建立Makefile。依然出现错误:

(configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/)

google问题,下载一个软件包:http://sourceforge.net/projects/pcre/,编译之,我勒个去,这次装这么个小软件都出现问题:

ibtool: compile: unrecognized option `-DHAVE_CONFIG_H'

libtool: compile: Try `libtool --help' for more information.

make[1]: *** [pcrecpp.lo] Error 1

源码安装就这点最麻烦了,得自己解决包依赖的问题,不像用apt-get install命令,可以自动解决这个问题,我试着用apt-cache search搜了一下,出来了很多结果,但是不知道该装哪些,眼看源码安装都做到这份了,还是继续吧,不能半途而废呀。接着解决问题,google一下,找出原因是没有安装g++,装这个比较简单,直接apt-get install g++就自动搞定了。

再再再次建立Makefile文件:./configure -prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ -enable-module=so ,眼盯着屏幕刷刷的往下滚,唯一的愿望就是不要出现error这个词,终于,这个愿望实现了,建立Makefile文件成功。接下来编译:make,很顺利没有出现什么问题,再安装:make install,也很顺利,一气呵成,有种阳光总在风雨后的感觉啊。

打开浏览器输入本机回送地址,测试有没有安装成功,结果并没有出现意料中的界面。原来apache安装好后并没有自动启动,还得手机启动她:/usr/local/apache/bin/apachectl start ,再次测试,OKit works

二、MYSQL的安装与配置

下载的版本是5.0.96,本来想用高版本的,可是高版本存在一个依赖其它共享库(libaio.so.1)的问题,嫌麻烦就用老版本的吧。

首先建立一个mysql群组:groupadd mysql。在mysql群组中增加一个用户mysqluseradd -g mysql mysql

把下载的文件放到/usr/local/work/目录下,解压缩,回到/local目录,用命令:ln -s work/mysql-5.0.96-linux-i686-glibc23 mysql与刚才解压出来的目录建立一个符号链接目录mysql,方便以后数据库的升级。 进入mysql目录,chown -R mysql .(注意后面有一点,表示当前目录)递归更改目录的拥有者为mysqlchgrp -R mysql . 递归更改目录的所属群组为mysql。在/usr/local/mysql/data中建立mysql的数据库:scripts/mysql_install_db --user=mysql。将当前目录文件的拥有才改为rootchown -R root .。特别的将data目录的拥有者改为mysql:chown -R mysql data。执行:cp support-files/my-medium.cnf /etc/my.cnf(有什么作用没搞懂)和cp support-files/mysql.server /etc/init.d/mysql.server(?)。

一切准备就绪,可以启动mysql服务了:bin/mysqld_safe --user=mysql &

启动后输入命令查看安装结果:bin/./mysql -uroot -p,提示Enter password:,但我不记得以前设过密码,于是输入了我系统帐户的密码,出现以下错误提示:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

上网查了下,才知道因为之前并没有root用户在数据库设定密码,所以第一次登陆的时候并不需要加选项-p 。直接用: bin/./mysql -uroot就可以进去。

成功进入后用:use mysql切换用户,更改用户名为root,主机名为localhost的密码:update user set password=old_password('xxxxxxxx') where user='root' and host='localhost' ;(好熟悉的语句啊,哈哈) mysql更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效,这里选择前者。

一切OK,退出mysql,重新用 bin/./mysql -uroot -p,输入刚才设定的密码,显示成功进入mysql(当然现在再用bin/./mysql -uroot是进不去滴)。

三、PHP的安装与配置

首先查看系统中libxml2的版本号,如果版本号小于2.5.10,则需要安装更高版本,因为PHP5必须在libxml2的版本大于2.5.10的前提下才能够安装。我系统上libxml2的动态链接库显示是2.7.6,但是一./configure还是会出现这样的问题:configure: error: xml2-config not found. Please check your libxml2 installation.

很多人说去官网下一个libxml2高版本的重新安装就行了,但觉得电脑上既然已经有libxml2这个软件包了,可能还差一点东西,情不自禁的在终端敲入这个命令:sudo apt-get install libxml2-dev。然后再去./configure,居然顺利建立Makefile文件。看来真是缺少了开发文件啊,个人很多软件都没有自动的安上这个,因为这种文件只有开发人员才用得上,一般用户安了也没用,不知道这种理解对不对呀。

接下来make,make install很顺利的完成。下面就来测试一下PHP5有没有安装成功。

更改httpd.conf文件相关设置(/usr/local/apache2/conf)。找到该文件中的如下行:

AddType application/x-gzip .gz .tgz

在该行后加如下行: AddType application/x-httpd-php .php .phtml

重新启动Apache服务器(sudo /usr/local/apache2/bin/./httpd -k restart),并在apache主目录中的htdocs目录中建立文件test.php:

<?php phpinfo(); ?>

在浏览器中输入127.0.0.1/test.php,如果出现php的配置信息则说明安装成功: