(原创)Linux+Apache2+MySQL5.0.33+PHP5.2.0完全安装配置指南
(该文档为鄙人原创,您可以自由的转载,唯一的要求请您注明出处,嘿嘿……要求不是很高吧,多多交流……)
序幕
因为自己的项目开发需要配置一个LAMP环境进行试验。我个人比较懒,不想自己去慢慢摸索,就在网上找了很多相关的文章,然后总结在安装过程中遇到的问题,写下了下面这个安装指南(呵呵,希望不要指北就行了)。
为了取得更大的主动权和配置灵活性,我没有选择使用RPM方式安装,全部都使用源代码方式进行安装。
沙发
要安装上面那些东东,总要给它们一个沙发吧。首先介绍一下我的沙发吧:操作系统是Redhat Enterprise AS 4,没有安装任何Web服务器和数据库服务器。
主角和配角
该主角出场了,本次安装的主角分别是:
- Apache 2.2.4
下载地址:http://www.mypj.cn/software/lamp/httpd-2.2.4.tar.gz - MySQL 5.0.33
下载地址:http://www.mypj.cn/software/lamp/mysql-5.0.33.tar.gz - PHP 5.2.0
下载地址:http://www.mypj.cn/software/lamp/php-5.2.0.tar.gz
主角有了,也要有一些配角才能让这个平台更好得进行服务。如果要使用PHP图形函数,必须要安装GD库吧;需要xml支持吗?libxml必须要安装吧。
当然了,如果你上面那些都不需要,也可以不安装,俺可没有说必须要安装,不然他们就是主角了。呵呵,是不是太唐僧了?
- FreeType 2.1.10
下载地址:http://www.mypj.cn/software/lamp/freetype-2.1.10.tar.gz - libxml2 2.6.27
下载地址:http://www.mypj.cn/software/lamp/libxml2-2.6.27.tar.gz - zlib 1.2.3
下载地址:http://www.mypj.cn/software/lamp/zlib-1.2.3.tar.gz - ZendOptimizer 2.5.10
下载地址:http://www.mypj.cn/software/lamp/ZendOptimizer-2.5.10-linux-glibc21-i386.tar.gz - GD库 2.0.33
下载地址:http://www.mypj.cn/software/lamp/gd-2.0.33.tar.gz - libpng 1.2.8
下载地址:http://www.mypj.cn/software/lamp/libpng-1.2.8.tar.gz - JPEG库
下载地址:http://www.mypj.cn/software/lamp/jpegsrc.v6b.tar.gz
所有的源代码下载完毕后,把他们都集中到一起,以便于进行管理,我的习惯是放在/home/downloads/software/lamp/里面。那 么这些东西都安装到什么地方呢?我的习惯是安装到/usr/local/下面。当然了,这个路径你可以随意指定了(即便是全部都安装到/tmp里面都可 以,只要你觉得很爽,嘿嘿)。
Action!
第一个登场的是谁呢?当然是身材最魁梧的MySQL。
安装MySQL
- 建立mysql组和mysql用户
[root@localhost lamp]#groupadd mysql
[root@localhost lamp]#useradd -g mysql mysql - 解压源代码
[root@localhost lamp]#tar -zxvf mysql-5.0.33.tar.gz
[root@localhost lamp]#cd mysql-5.0.33 - 建立配置参数
[root@localhost mysql-5.0.33]#./configure --prefix=/usr/local/mysql --sysconfdir=/usr/local/mysql --without-isam --without-debug --enable-assembler --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --with-mysqld-user=mysql --with-extra-charset=all --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data --enable-thread-safe-client
我这里配置的参数比较多,因为我懒,也没有耐心仔细解释每个参数的意义了。如果你觉得很麻烦的话,也可以使用比较简单一点的参数,例如:
这最后一个参数一定要加上,目的是为了使用MySQL的客户端线程,否则的话后面编译PHP时是要出错的。[root@localhost mysql-5.0.33]#./configure --prefix=/usr/local/mysql --enable-thread-safe-client
- 编译
[root@localhost mysql-5.0.33]#make
[root@localhost mysql-5.0.33]#make install
只要步骤3没有出任何错误,那么现在这个过程就会是整个安装过程中最费时的步骤,因此我建议在你按下回车以后,最好找一点有意义的事情(许三多说的,不是我说的……)做。反正我利用这个时间把DS论坛的首页帖子翻了一遍。 - 复制配置文件
[root@localhost mysql-5.0.33]#cp support-files/my-medium.cnf /etc/my.cnf
- 初始化数据库
[root@localhost mysql-5.0.33]#cd /usr/local/mysql
[root@localhost mysql]#bin/mysql_install_db --user=mysql - 修改目录权限
注意,在修改目录权限的时候,我按照源代码包中的INSTALL-SOURCE文档提示的进行权限设置时,发现MySQL没法启动成功,后来我干脆按照自己的方式进行设置后,数据库就可以启动了,问题在哪里呢?下面是两种方法,哪种方法适合你,你就用哪种吧。
方法一(原版):
[root@localhost mysql]#chown -R root .
[root@localhost mysql]#chown -R var
[root@localhost mysql]#chgrp -R mysql .
方法二(俺的版本):
[root@localhost mysql]#mkdir tmp
[root@localhost mysql]#chown -R root .
[root@localhost mysql]#chgrp -R mysql .
[root@localhost mysql]#chown -R mysql data
[root@localhost mysql]#chown -R mysql tmp
为什么没有为var设置权限那句呢?因为我发现我的这个目录里面并没有这个目录,你让我怎么设置呢? - 启动服务器
按照INSTALL-SOURCE文档的说法,使用下面的命令就可以启动MySQL数据库了:
[root@localhost mysql]#bin/mysqld_safe --user=mysql &
其实,MySQL数据库早就提供了另外一种更加方便的启动方式。进入/usr/local/mysql/share/mysql/下面会找到一个 mysql.server文件,它的属性是755。我们把它复制到/etc/init.d/下面,并把它加入到系统服务表中,您就可以在任何地方用 service mysql start语句来启动它,并用service mysql stop停止它。怎么做呢?
[root@localhost mysql]#cp ./mysql.server /etc/init.d/mysql
[root@localhost mysql]#chkconfig --add mysql
[root@localhost mysql]#service mysql start - 测试数据库服务器
到此,MySQL已经安装完毕了,是不是成功了呢?测试一下就知道了。
[root@localhost mysql]#bin/mysql -u root -p
[root@localhost mysql]#Enter password:
需要输入密码?!密码是什么呢?
root用户的默认密码是空,直接输入回车就可以了。
看看是不是出现下面的信息了:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 2
Server version: 5.0.33-log Source distributionType 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
那么恭喜你,MySQL数据库安装成功,并且已经启动了!
下一个!
下面是不是就该Apache出场了呢?别急,在安装Apache之前先把zlib包装上,因为Apache需要用到它。
安装zlib
- 解压源代码
[root@localhost lamp]#cd /home/downloads/software/lamp/
[root@localhost lamp]#cd zlib-1.2.3
[root@localhost zlib-1.2.3]#tar -zxvf zlib-1.2.3.tar.gz - 配置参数
[root@localhost zlib-1.2.3]#./configure --prefix=/usr/local/zlib
- 编译安装
[root@localhost zlib-1.2.3]#make
[root@localhost zlib-1.2.3]#make install
安装完毕了,下面该拿Apache开刀了!
安装Apache
- 解压源代码
[root@localhost zlib-1.2.3]#cd ..
[root@localhost lamp]#tar -zxvf httpd-2.2.4.tar.gz - 配置参数
[root@localhost lamp]#cd httpd-2.2.4
[root@localhost httpd-2.2.4]#./configure --prefix=/usr/local/httpd --enable-so --with-mysql=/usr/local/mysql --enable-cgi --with-config-file-path=/usr/local/httpd/conf --enable-track-vars --enable-mods-shared=all --enable-cache --enable-disk-cache --enable-mem-cache --enable-rewrite --with-mpm=worker --with-z-dir=/usr/local/zlib
编译没有出错,就可以进行编译安装了。如果出了错,没办法,好好找找错误处在哪里咯,呵呵…… - 编译安装
[root@localhost httpd-2.2.4]#make
[root@localhost httpd-2.2.4]#make install
只要配置参数时没有错误,这一步基本上不会出错的。 - 测试一下……
安装完毕了,总要测试一下是不是可以用吧,先让我们把httpd服务启动起来:
[root@localhost httpd-2.2.4]#/usr/local/httpd/bin/apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
怎么会有错误提示呢?别害怕,那时因为在httpd的配置文件里面没有制定主机名,不过不影响使用的。
用浏览器访问一下本地试试(http://127.0.0.1),屏幕上是不是显示:It works !这个就不用解释了吧,人家已经说得很明白了,俺开始工作了! - 系统设置
我想你肯定不想每次启动电脑后,都要打一遍启动Apache服务的命令吧,但是怎么让电脑自动运行呢?别急,有办法,输入下面的命令就可以了:
[root@localhost httpd-2.2.4]#echo "/usr/local/httpd/bin/apachectl start" >> /etc/rc.d/rc.local
这样,每次启动服务器后,Apache就会乖乖的自动启动了,呵呵……
在开始安装PHP前,还是一样要把它需要的组件先装完,这个是顺序。
安装libpng
- 解压源代码
[root@localhost httpd-2.2.4]#cd ..
[root@localhost lamp]#tar -zxvf libpng-1.2.8.tar.gz - 复制预编译文件
[root@localhost lamp]#cd libpng-1.2.8
[root@localhost libpng-1.2.8]#cp scrīpts/makefile.linux makefile
说实话,我也不知道软件作者为啥还要搞这一步,把这个文件直接放在目录里面很难么? - 编译安装
[root@localhost libpng-1.2.8]#make
[root@localhost libpng-1.2.8]#make install
安装freetype
- 解压源代码
[root@localhost libpng-1.2.8]#cd ..
[root@localhost lamp]#tar -zxvf freetype-2.1.10.tar.gz - 配置参数
[root@localhost libpng-1.2.8]#cd freetype-2.1.10
[root@localhost freetype-2.1.10]#./configure --prefix=/usr/local/freetype - 编译安装
[root@localhost freetype-2.1.10]#make
[root@localhost freetype-2.1.10]#make install
安装jpegsrc.v6b
- 解压源文件
[root@localhost freetype-2.1.10]#cd ..
[root@localhost lamp]#tar -zxvf jpegsrc.v6b.tar.gz - 建立默认目录
这个模块安装比较麻烦,它不会自己建立目录,所以所有的目录都需要我们自己建立,烦……
[root@localhost lamp]#cd jpeg-6b
[root@localhost jpeg-6b]#mkdir -p /usr/local/jpeg6
[root@localhost jpeg-6b]# mkdir -p /usr/local/jpeg6/bin
[root@localhost jpeg-6b]# mkdir -p /usr/local/jpeg6/lib
[root@localhost jpeg-6b]# mkdir -p /usr/local/jpeg6/include
[root@localhost jpeg-6b]# mkdir -p /usr/local/jpeg6/man
[root@localhost jpeg-6b]# mkdir -p /usr/local/jpeg6/man1
[root@localhost jpeg-6b]# mkdir -p /usr/local/jpeg6/man/man1 - 配置参数
[root@localhost jpeg-6b]#./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
- 编译安装
[root@localhost jpeg-6b]#make
[root@localhost jpeg-6b]#make install
[root@localhost jpeg-6b]#make install-lib
安装libxml2
- 解压源代码
[root@localhost jpeg-6b]#cd ..
[root@localhost lamp]#tar -zxvf libxml2-2.6.27.tar.gz - 建立目录
唉,又是一个需要自己建立目录的……
[root@localhost libxml2-2.6.27]#mkdir -p /usr/local/libxml2
- 配置参数
[root@localhost libxml2-2.6.27]#./configure --prefix=/usr/local/libxml2
- 编译安装
[root@localhost libxml2-2.6.27]#make
[root@localhost libxml2-2.6.27]#make install - 复制配置文件
俺也不知道为什么要手动复制这个东东!
[root@localhost libxml2-2.6.27]#cp xml2-config /usr/bin
安装GD库
- 解压源代码
[root@localhost libxml2-2.6.27]#cd ..
[root@localhost lamp]#tar -zxvf gd-2.0.33.tar.gz - 建立安装目录
啥也不说了……
[root@localhost lamp]#cd gd-2.0.33
[root@localhost gd-2.0.33]#mkdir -p /usr/local/gd - 配置参数
[root@localhost gd-2.0.33]#./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg6 --with-freetype=/usr/local/freetype --with-png=/usr/local/lib --with-zlib=/usr/local/zlib
- 编译安装
[root@localhost gd-2.0.33]#make
[root@localhost gd-2.0.33]#make install
最后一个主角出场了!
安装PHP
- 解压源代码
[root@localhost gd-2.0.33]#cd ..
[root@localhost lamp]#tar -zxvf php-5.2.0.tar.gz - 配置参数
[root@localhost lamp]#cd php-5.2.0
[root@localhost php-5.2.0]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-gd=/usr/local/gd --enable-gd --enable-gd-native-ttf --with-jpeg-dir=/usr/local/jpeg6 --with-png=/usr/local/lib --with-ttf --with-zlib=/usr/local/zlib --with-freetype-dir=/usr/local/freetype --enable-magic-quotes --with-mysql=/usr/local/mysql --with-mysql-sock=/usr/local/mysql/tmp/mysql.sock --with-iconv --with-mbstring --enable-mbstring --enable-track-vars --enable-force-cgi-redirect --enable-ftp --with-config-file-path=/usr/local/httpd/conf --with-pear=/usr/local/php/pear - 编译安装
[root@localhost php-5.2.0]#make
[root@localhost php-5.2.0]#make install - 复制配置文件
[root@localhost php-5.2.0]#cp php.ini-dist /usr/local/php/lib/php.ini
- 修改Apache配置
PHP是要和Apache配合使用,所以当然需要修改一下Apache的配置文件咯……
[root@localhost php-5.2.0]#vi /usr/local/httpd/conf/httpd.conf
找到文件中的“#AddType application/x-gzip .gz .tgz”这行,在下面手动添加两行:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
保存配置,然后重新启动Apache
[root@localhost php-5.2.0]#/usr/local/httpd/bin/apachectl restart
- 测试
测试也很简单,在/usr/local/httpd/htdocs/下面建立一个phpinfo.php文件,里面写
<?php
phpinfo();
?>
然后呢,在浏览器里面输入“http://127.0.0.1/phpinfo.php”,如果页面上出现了PHP的版权信息及系统配置情况,说明你的PHP已经可以使用了。如果页面上出现的是你刚才写的代码,麻烦了,回头检查一下哪里有问题咯……
晕,终于写完了,试试吧,看看有没有写错什么
Over