lamp安装教程:可以根据以下三个步骤来安装编译lamp
三、编译、安装PHP
首先,我们要获得Apache、Mysql和PHP的源码包,软件的官方网站去下载,在网上很容易查到的。
下载获得的源码软件包分别为:
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服务器,用户应根据自己的实际需要进行设置)