`

lamp安装教程

阅读更多
首先,我们要获得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的权限问题,这里就不赘述了,有兴趣的朋友可以参考一下Ubunt u的有关资料)
回车确认后,第一个问题出现了,将会看到如下的报错信息:
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, 请检查上述的配置过程是否都已经正确完成。
Apache、MySQL以及PHP还有很多相关的配置,本文所讲述的只是最基本的一些配置,如果有其他需要,可以根据具体情况做出相应的配置,具体的配置方法和过程,可以参见相关资料,这里就不再一一赘述了(其实很多我也还不明白,呵呵)。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics