当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]Ubuntu Server 环境下Apache2.2.9+MySQL5.0.67+PHP5.2.6安装简介
帖子发表于 : 2008-08-21 15:31 

注册: 2006-10-21 21:04
帖子: 120
送出感谢: 0 次
接收感谢: 0 次
当前,PHP已经发展成为一种主流的Web编程语言,要使用PHP进行程序设计,首先就要搭建好一个PHP的系统环境,这方面的文章在互联网上可以找到很多,但大多是针对较旧的软件版本而言,或者是在RedHat环境下使用RPM软件包进行安装的。本文要阐述的是在Ubuntu Server环境下,使用当前最新的源码软件包进行编译安装的过程,虽然Ubuntu Server自带LAMP的环境软件包,可以选择安装,但本文旨在说明使用软件源码包进行编译、安装的过程,这样做即方便对软件的管理,又便于用户了解软件环境的最终配置。基于同样的原因,本文也不会对在Ubuntu Server中使用apt-get安装、配置PHP环境的方法进行阐述。
(注:本文是按照实际的安装过程进行讲述的,为了说明一些问题,其间有多次重复操作,对于希望一次性完成安装配置的朋友,建议看完全文后再进行实际操作)
之所以选择Ubuntu Server作为系统环境,完全是出于个人喜好,对于使用其他Linux发行版本的用户而言,使用源码包编译、安装软件的配置过程基本上大同小异,本文所讲述的方法和过程同样可以适用于其他Linux发行版本。
关于操作系统的安装就不在这里赘述了,不同的Linux发行版本或许存在些许差异,只要设置正确,不会对后面的PHP环境搭建造成任何影响。因为全部使用源码包进行安装、编译,所以,本文建议在安装操作系统时单独划分/opt分区,作为软件的安装分区,而不是安装在默认的/usr/local下,以方便日后的配置和管理。
Ubuntu Server默认安装的情况下,不会安装任何应用软件,是一个“纯净”的操作系统。但在使用源码包编译、安装的过程中,将会需要用到一些必须的编辑器、库文件等,亦即Ubuntu的依赖关系,本文会在编译、安装的过程中,对这部分内容做简要介绍。
(这里补充说明一下,Ubuntu的apt-get是个很好的工具,借助这个程序,可以很方便的安装各种应用程序,但是使用这个程序的前提是需要设置好“ 软件源”,系统安装完成后,默认的软件源列表可在/etc/apt/sources.list中查看,里面包括的软件源大多数为互联网软件源,但对尚未配置好网络链接的系统,这些互联网软件源就派不上用场了,这种情况下,可以通过Ubuntu的光盘来安装软件,但是sources.list中默认是将光盘软件源屏蔽掉的,需要手动修改一下:
cd /etc/apt
sudo vi sources.list
将里面的互联网软件源部分,使用“#”屏蔽掉,或者删除,将光盘软件源前面的“#”去掉,以便启用光盘软件源。
另外,使用Ubuntu-Server光盘安装的系统,sources.list中记录的光盘源就是Ubuntu-Server的光盘,但Ubuntu- Server光盘中的软件源不如Ubuntu-DVD光盘中的丰富,所以,这里建议添加Ubuntu-DVD光盘到sources.list,在需要的时候,就可以使用Ubuntu-DVD光盘来安装需要的软件,而不必一定要连接互联网才能操作。具体操作如下:
sudo apt-cdrom add
(会提示插入光盘,放好Ubuntu-DVD光盘后确认。)
修改并添加完成后,还需要对软件源列表进行更新,以便让系统能够准确识别,操作如下:
sudo apt-get update
至此,软件源的设置工作就完成了。本文后面讲述的安装过程中,涉及到apt-get的部分,均是使用光盘源进行的,而没有使用任何互联网软件源。)
言归正传,下面开始我们的安装、配置之旅。
首先,我们要获得Apache、Mysql和PHP的源码包,软件的官方网站如下:
Apache: http://www.apache.org
MySQL: http://www.mysql.com
PHP: http://www.php.net

下载获得的源码软件包分别为:
httpd-2.2.9.tar.gz
mysql-5.0.67.tar.gz
php-5.2.6.tar.gz

各源码包解压后,将会生成一个与其主文件名同名的目录(使用tar指令解压,使用参数zxvf,即“tar zxvf 压缩包名”),由于在编译、安装PHP时需要对Apache和Mysql的支持情况进行配置,所以,PHP只能最后安装,而Apache和MySQL的安装顺序则相对随意些,本文将首先安装MySQL(本文建议创建单独的目录用于软件的编译、安装,避免与源码包中的数据混淆,也方便对软件的重新编译)。

一、编译、安装Mysql
在与mysql-5.0.67目录同级的目录下,创建一个“makemysql”目录,在此目录下对MySQL进行配置,操作如下:
mkdir makemysql
cd makemysql
sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
(这里--prefix选项指定了软件的安装目录;--localstatedir选项指定了数据库文件的所在目录,这里的user表示当前的用户名称;--with-extra-charsets选项则是指定了MySQL可以支持的语言编码,这里设置为全部支持,具体使用哪种编码,可以在程序中指定。
而命令前面的“sudo”,可以说是Ubuntu系统的一个特色,表明了要在具有管理员权限的模式下进行操作,对于其他的Linux发行版本而言,或许并不需要使用该指令。关于Ubuntu的权限问题,这里就不赘述了,有兴趣的朋友可以参考一下Ubuntu的有关资料)
回车确认后,第一个问题出现了,将会看到如下的报错信息:
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
上述信息表明,当前系统中没有安装C++编译器,系统无法对源码包进行编译,知道了问题所在,我们就可以有的放矢的开始解决问题了。
Ubuntu系统自带了很多编译、开发所必须的软件包,只是我们安装的是Ubuntu-Server系统,默认的状态下,除了系统自身外,不会安装任何其他软件。上述的这个问题只要安装Ubuntu系统自带的“build-essential”软件包就可以,操作如下:
sudo apt-get install build-essential
由于该软件包属于Ubuntu-Server系统自带的,系统会提示要求使用Ubuntu-Server的光盘进行安装,只有当Ubuntu-Server的光盘中没有需要安装的软件包时,才会通过前面手动添加的Ubuntu-DVD的光盘源进行安装)
安装好了所需的编译器之后,需要重新配置MySQL,操作如下:
cd /home/user/makemysql (这里假定前面获取的源码包和前面创建的专门用于编译的目录是位于/home/user下的,根据自己的实际情况输入即可)
sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
经过了一连串儿的编译过程后,第二个问题又出现了,在编译过程的最后,将会看到如下的错误信息:
checking for termcap functions library... configure: error: No curses/termcap library found
从提示的错误信息中可以看出,这是由于系统中缺少了MySQL所需的库文件所导致的,apt-get再次派上了用场,操作如下:
sudo apt-get install libcurses (这里不按回车,而是按Tab键)
这里将会看到软件源中包括的所有文件名以libcurses开头的软件包列表,如下:
libncurses5 libncurses5-dev libncurses-dev libncursesw5
这里我们需要安装的是libncurses5-dev软件包(安装了build-essential软件包后,一些基本的库文件都会随之安装的,如果再遇到缺少库文件的提示,大部分是因为没有安装对应的dev库,也就是对应的“开发包”所导致的,应根据具体情况进行判断。)
找到了所需的软件包,安装之,操作如下:
sudo apt-get install libncurses5-dev
(这里将会提示插入Ubuntu-DVD光盘,因为Ubuntu-Server光盘中并没有这个软件包,插入Ubuntu-DVD光盘后确认。如果没有在前面添加Ubuntu-DVD的光盘源,使用这种方法将无法查找到这个软件包,只能先查找资料,确定所需的软件包名称,再使用互联网软件源安装,或者将软件包下载到本地进行安装。)
安装好库文件后,再次重新配置MySQL,操作如下:
cd /home/user/makemysql
sudo ../mysql-5.0.67/configure --prefix=/opt/mysql --localstatedir=/home/user/mysql_data --with-extra-charsets=all
长长的编译过程结束后,将会看到“Thank you for choosing MySQL!”的字样,编译成功!
编译完成后,开始安装MySQL,操作如下:
sudo make
sudo make install
安装结束后,MySQL服务并不会自动启动,还需要先初始化MySQL数据库,操作如下:
cd /opt/mysql/bin
sudo ./mysql_install_db
MySQL数据库初始化完成后,MySQL服务会随之启动,可以使用“netstat -lt”查看MySQL服务是否已经正常启动。
这里要说明的是,由于在编译MySQL的时候,为数据库指定了存放路径,即/home/user/mysql_data,对当前用户user而言,拥有该目录的全部权限,所以,这里直接在当前用户下执行mysql_install_db指令,可以成功初始化数据库,如果用户在安装时没有指定数据库的路径,或者指定到了一个当前用户没有权限的路径,直接执行mysql_install_db指令时将会报错,需要首先设置相应的权限,或者指定MySQL的启动用户。关于这个问题,这里就不具体说明了,感兴趣的朋友可以查阅相关资料。
MySQL服务成功启动后,为了能够正常使用MySQL,首先需要设置root用户的密码(注:这里的root用户与Linux系统的root用户不同),操作如下:
cd /opt/mysql/bin
./mysqladmin -u root password 123456
这里将MySQL的root用户密码设置为123456,设置好后,可以先测试一下是否能够正常连接,操作如下:
./mysql -uroot -p123456
如果一切正常,将会看到“mysql>”的提示符,表明已经使用root用户与本机的MySQL服务成功建立了连接。至此,MySQL的编译、安装成功完成。
还有一点需要说明,MySQL服务默认只允许从服务器本机连接,如果需要从远程连接,还需要在MySQL中设置相应的权限,并更新权限表,具体操作如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
mysql> flush privileges;
(注意前面的“mysql>”,这个操作是连接到MySQL服务后,在MySQL中进行的,而不是在操作系统中进行的)

(注:上面这个更改权限的例子,是使得可以从任意一台远程终端使用root用户连接MySQL服务器,用户应根据自己的实际需要进行设置)



二、编译、安装Apache
与安装MySQL的步骤相同,首先在与httpd-2.2.9目录同级的目录中,创建一个makeapache目录,并进入该目录,编译、安装Apache,操作如下:
mkdir makeapache
cd makeapache
sudo ../httpd-2.2.9/configure --prefix=/opt/apache
sudo make
sudo make install
(apache的编译参数较多,相对比较复杂,作为一个简单的web平台,这里仅使用了--prefix参数,用以指定安装目录,关于其他功能的设置,有兴趣的朋友可以参阅相关资料)
安装完成后,apache进程并不会自动启动,需要手动启动,操作如下:
cd /opt/apache/bin
sudo ./apachectl start
Apache服务启动后,执行“netstat -lt”指令,将会看到一个名为“www”的进程。也可以通过浏览器进行确认,在浏览器地址栏中输入“http://ip”,如果看到“It works!”字样,就表明Apache服务已经启动成功。
Apache默认的web根目录为Apache安装目录下的htdocs目录,如果希望指定到其他目录,可以通过修改Apahce的配置文件实现,操作如下:
cd /opt/apahce/conf
sudo vi httpd.conf
找到“DocumentRoot "/opt/apache/htdocs"”,将"/opt/apache/htdocs"部分修改为希望使用的目录,此外,还需要找到 “<Directory "/opt/apache/htdocs">”,同样将"/opt/apache/htdocs"修改为希望使用的目录,保存退出。这里需要注意,要修改默认的web根目录,需要同时修改这两项设置,只修改其中一个是无效的。
修改完成后,需要重启apahce服务,才能使新的配置生效,操作如下:
cd /opt/apache/bin
sudo ./apachectl restart

三、编译、安装PHP
与前面的过程相似,首先在与php-5.2.6同级的目录下,创建一个makephp目录并进入,在此目录下配置PHP,操作如下:
mkdir makephp
cd makephp
sudo ../php-5.2.6/configure --prefix=/opt/php --with-mysql=/opt/mysql --with-apxs2=/opt/apache/bin/apxs --with-config-file-path=/opt/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(按Tab键)
将会看到如下信息:
libxml2 libxml2-dev libxml2-headers libxml2-utils
这里需要安装的是libxml2-dev软件包(该软件为Ubuntu-Server自带的,需要使用Ubuntu-Server光盘安装),操作如下:
sudo apt-get install libxml2-dev
库文件安装完成后,重新配置PHP,操作如下:
sudo ../php-5.2.6/configure --prefix=/opt/php --with-mysql=/opt/mysql --with-apxs2=/opt/apache/bin/apxs --with-config-file-path=/opt/php/etc
编译完成后将会看到“Thank you for using PHP.”的字样,表明PHP已经配置成功了。
接下来编译、安装PHP,操作如下:
sudo make
sudo make install
安装完PHP后,还需要手动修改一下Apache的配置,以便使Apache支持PHP,操作如下:
cd /opt/apache/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”中操作如下:
sudo cp php.ini-recommended /opt/php/etc/php.ini
全部配置完成后,不要忘了重启apache,以便使新的配置生效。
至此,就完成了在Ubuntu Server系统环境下Apache 2.2.9 + Mysql 5.0.67 + PHP 5.2.6的安装配置。可以利用PHP自身的函数进行确认,在web的根目录下创建一个index.php文件,编辑文件内容如下:
<?php
phpinfo();
?>
保存退出后,在浏览器中输入“http://IP/index.php”,如果配置正确,就能够看到刚刚配置好的服务器相关信息了,其中包括 Apache、MySQL以及PHP的版本、安装路径、配置情况等。如果看到的只是“phpinfo();”字样,说明apache没能正确支持PHP,请检查上述的配置过程是否都已经正确完成。[/url]
Apache、MySQL以及PHP还有很多相关的配置,本文所讲述的只是最基本的一些配置,如果有其他需要,可以根据具体情况做出相应的配置,具体的配置方法和过程,可以参见相关资料,这里就不再一一赘述了(其实很多我也还不明白,呵呵)。


本人也是新手,水平有限,撰写本文的目的意在希望可以和爱好LAMP的朋友分享经验、相互交流、共同学习。文中难免有疏漏、谬误之处,还请大家多多批评指正。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-08-22 20:59 

注册: 2008-08-22 10:41
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
学习了,lz辛苦啦!


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [原创]Ubuntu Server 环境下Apache2.2.9+MySQL5.0.67+PHP5.2.6安装简
帖子发表于 : 2010-08-11 16:13 

注册: 2009-11-09 0:28
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
很有用的。。。基本问题都能解决,我之前装的时候出了不少问题呢!!!


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [原创]Ubuntu Server 环境下Apache2.2.9+MySQL5.0.67+PHP5.2.6安装简
帖子发表于 : 2011-05-03 19:17 

注册: 2011-05-03 19:03
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
学习了,我今天弄了半天也没弄好,现在就去试一下。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [原创]Ubuntu Server 环境下Apache2.2.9+MySQL5.0.67+PHP5.2.6安装简
帖子发表于 : 2012-03-12 22:57 
头像

注册: 2010-11-05 16:22
帖子: 100
送出感谢: 1
接收感谢: 0 次
我就问楼主一个问题 现在的ubuntu11.10默认的第三方软件安装路径还是/opt吗 当前最新版貌似已经改为默认/usr/local了


_________________
求同存异 海纳百川


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Sogou [Spider] 和 5 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译