以下内容主要是综合网上经典安装,经自己仔细安装测试通过,并附上安装过程中所遇问题的更正。
为了取得更大的主动权和配置灵活性,我没有选择使用RPM方式安装,全部都使用源代码方式进行安装。
需要用到的软件列表:
mysql-5.0.33.tar.gz、freetype-2.2.1.tar.gz、gd-2.0.33.tar.gz、
httpd-2.2.4.tar.gz、jpegsrc.v6b.tar.gz、libiconv-1.11.tar.gz、
libpng-1.2.12.tar.gz、libxml2-2.6.16.tar.gz、php-5.2.0.tar.gz、
zlib-1.2.3.tar.gz
所有的源代码下载完毕后,把他们都集中到一起,以便于进行管理,我的习惯是放在/usr/local/src里面。那么这些东西都安装到什么地方呢?我的习惯是安装到/usr/local/下面。当然了,这个路径你可以随意指定了(即便是全部都安装到/tmp里面都可以,只要你觉得很爽,嘿嘿)。
Action!
第一个登场的是谁呢?当然是身材最魁梧的MySQL。
安装MySQL
建立mysql组和mysql用户
#groupadd mysql
#useradd -g mysql mysql
解压源代码
#tar -zxvf mysql-5.0.33.tar.gz
#cd 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
我这里配置的参数比较多,因为我懒,也没有耐心仔细解释每个参数的意义了。如果你觉得很麻烦的话,也可以使用比较简单一点的参数,例如:
#./configure --prefix=/usr/local/mysql --enable-thread-safe-client
这最后一个参数一定要加上,目的是为了使用MySQL的客户端线程,否则的话后面编译PHP时是要出错的。
编译
#make
#make install
只要步骤3没有出任何错误,那么现在这个过程就会是整个安装过程中最费时的步骤,因此我建议在你按下回车以后,最好找一点有意义的事情(许三多说的,不是我说的……)做。反正我利用这个时间把DS论坛的首页帖子翻了一遍。
复制配置文件
#cp support-files/my-medium.cnf /etc/my.cnf
初始化数据库
#cd /usr/local/mysql
#bin/mysql_install_db --user=mysql
修改目录权限
注意,在修改目录权限的时候,我按照源代码包中的INSTALL-SOURCE文档提示的进行权限设置时,发现MySQL没法启动成功,后来我干脆按照自己的方式进行设置后,数据库就可以启动了,问题在哪里呢?下面是两种方法,哪种方法适合你,你就用哪种吧。
方法一(原版):
#chown -R root .
#chown -R var
#chgrp -R mysql .
方法二(俺的版本):
#mkdir tmp
#chown -R root .
#chgrp -R mysql .
#chown -R mysql data
#chown -R mysql tmp
为什么没有为var设置权限那句呢?因为我发现我的这个目录里面并没有这个目录,你让我怎么设置呢?
启动服务器
按照INSTALL-SOURCE文档的说法,使用下面的命令就可以启动MySQL数据库了:
#bin/mysqld_safe --user=mysql &
其实,MySQL数据库早就提供了另外一种更加方便的启动方式。进入/usr/local/mysql/share/mysql/下面会找到一个mysql.server文件,它的属性是755。我们把它复制到/etc/init.d/下面,并把它加入到系统服务表中,您就可以在任何地方用service mysql start语句来启动它,并用service mysql stop停止它。怎么做呢?
#cp ./mysql.server /etc/init.d/mysql
#chkconfig --add mysql
#service mysql start
测试数据库服务器
到此,MySQL已经安装完毕了,是不是成功了呢?测试一下就知道了。
#bin/mysql -u root -p
#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 distribution
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
那么恭喜你,MySQL数据库安装成功,并且已经启动了!
下一个!
下面是不是就该Apache出场了呢?别急,在安装Apache之前先把zlib包装上,因为Apache需要用到它。
安装zlib
解压源代码
#cd /home/downloads/software/lamp/
#cd zlib-1.2.3
#tar -zxvf zlib-1.2.3.tar.gz
配置参数
#./configure --prefix=/usr/local/zlib
编译安装
#make
#make install
安装完毕了,下面该拿Apache开刀了!
安装Apache
解压源代码
#cd ..
#tar -zxvf httpd-2.2.4.tar.gz
配置参数
#cd 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
编译没有出错,就可以进行编译安装了。如果出了错,没办法,好好找找错误处在哪里咯,呵呵……
编译安装
#make
#make install
只要配置参数时没有错误,这一步基本上不会出错的。
测试一下……
安装完毕了,总要测试一下是不是可以用吧,先让我们把httpd服务启动起来:
#/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://p.g.yupoo.com/nph-proxy.cgi/000110A/http/127.0.0.1/),屏幕上是不是显示:It works !这个就不用解释了吧,人家已经说得很明白了,俺开始工作了!
系统设置
我想你肯定不想每次启动电脑后,都要打一遍启动Apache服务的命令吧,但是怎么让电脑自动运行呢?别急,有办法,输入下面的命令就可以了:
#echo "/usr/local/httpd/bin/apachectl start" >> /etc/rc.d/rc.local
这样,每次启动服务器后,Apache就会乖乖的自动启动了,呵呵……
在开始安装PHP前,还是一样要把它需要的组件先装完,这个是顺序。
安装libpng
解压源代码
#cd ..
#tar -zxvf libpng-1.2.8.tar.gz
复制预编译文件
#cd libpng-1.2.8
#cp scrīpts/makefile.linux makefile
说实话,我也不知道软件作者为啥还要搞这一步,把这个文件直接放在目录里面很难么?
编译安装
#make
#make install
安装freetype
解压源代码
#cd ..
#tar -zxvf freetype-2.1.10.tar.gz
配置参数
#cd freetype-2.1.10
#./configure --prefix=/usr/local/freetype
编译安装
#make
#make install
安装jpegsrc.v6b
解压源文件
#cd ..
#tar -zxvf jpegsrc.v6b.tar.gz
建立默认目录
这个模块安装比较麻烦,它不会自己建立目录,所以所有的目录都需要我们自己建立,烦……
#cd jpeg-6b
#mkdir -p /usr/local/jpeg6
# mkdir -p /usr/local/jpeg6/bin
# mkdir -p /usr/local/jpeg6/lib
# mkdir -p /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1
配置参数
#./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
编译安装
#make
#make install
#make install-lib
安装libxml2
解压源代码
#cd ..
#tar -zxvf libxml2-2.6.27.tar.gz
建立目录
唉,又是一个需要自己建立目录的……
#mkdir -p /usr/local/libxml2
配置参数
#./configure --prefix=/usr/local/libxml2
编译安装
#make
#make install
复制配置文件
俺也不知道为什么要手动复制这个东东!
#cp xml2-config /usr/bin
安装GD库
解压源代码
#cd ..
#tar -zxvf gd-2.0.33.tar.gz
建立安装目录
啥也不说了……
#cd gd-2.0.33
#mkdir -p /usr/local/gd
配置参数
#./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
编译安装
#make
#make install
最后一个主角出场了!
安装PHP
解压源代码
#cd ..
#tar -zxvf php-5.2.0.tar.gz
配置参数
#cd 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
编译安装
#make
#make install
复制配置文件
#cp php.ini-dist /usr/local/php/lib/php.ini
修改Apache配置
PHP是要和Apache配合使用,所以当然需要修改一下Apache的配置文件咯……
#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
#/usr/local/httpd/bin/apachectl restart
测试
测试也很简单,在/usr/local/httpd/htdocs/下面建立一个phpinfo.php文件,里面写
<?php
phpinfo();
?>
然后呢,在浏览器里面输入“http://127.0.0.1/phpinfo.php”,如果页面上出现了PHP的版权信息及系统配置情况,说明你的PHP已经可以使用了。如果页面上出现的是你刚才写的代码,麻烦了,回头检查一下哪里有问题咯……
晕,终于写完了,试试吧,看看有没有写错什么
Over
自己的初次测试:
一开始测试,报错显示如下:you dont have permission to access /phpinfo.php on this server.
终于测试php成功了,下面是修改的过程
编辑httpd.conf文件,我用gedit打开
在LoadModule处添加: LoadModule php5_module module/libphp5.so
在DirectoryIndex处添加: index.php
在AddType application处添加: AddType application/x-httpd-php .php .phtml
AddType applicatoin/x-httpd-php-source .phps
测试php模块的加载
# /usr/local/apache/bin/apachectl start //开启apache
在浏览器中输入:http://localhost/
浏览器中显示:It Works 表示apache开启www服务
# vi /usr/local/apache/htdocs/phpinfo.php
输入:<? phpinfo(); ?>
保存并退出
在浏览器中输入:http://localhost/phpinfo.php
浏览器中显示一个关于apache和php安装的Web页,表示成功加载php模块
这个网页提供的信息也是不错的,其中有些内容可以借鉴
http://my.opera.com/cocobear/blog/show.dml/668649
为了取得更大的主动权和配置灵活性,我没有选择使用RPM方式安装,全部都使用源代码方式进行安装。
需要用到的软件列表:
mysql-5.0.33.tar.gz、freetype-2.2.1.tar.gz、gd-2.0.33.tar.gz、
httpd-2.2.4.tar.gz、jpegsrc.v6b.tar.gz、libiconv-1.11.tar.gz、
libpng-1.2.12.tar.gz、libxml2-2.6.16.tar.gz、php-5.2.0.tar.gz、
zlib-1.2.3.tar.gz
所有的源代码下载完毕后,把他们都集中到一起,以便于进行管理,我的习惯是放在/usr/local/src里面。那么这些东西都安装到什么地方呢?我的习惯是安装到/usr/local/下面。当然了,这个路径你可以随意指定了(即便是全部都安装到/tmp里面都可以,只要你觉得很爽,嘿嘿)。
Action!
第一个登场的是谁呢?当然是身材最魁梧的MySQL。
安装MySQL
建立mysql组和mysql用户
#groupadd mysql
#useradd -g mysql mysql
解压源代码
#tar -zxvf mysql-5.0.33.tar.gz
#cd 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
我这里配置的参数比较多,因为我懒,也没有耐心仔细解释每个参数的意义了。如果你觉得很麻烦的话,也可以使用比较简单一点的参数,例如:
#./configure --prefix=/usr/local/mysql --enable-thread-safe-client
这最后一个参数一定要加上,目的是为了使用MySQL的客户端线程,否则的话后面编译PHP时是要出错的。
编译
#make
#make install
只要步骤3没有出任何错误,那么现在这个过程就会是整个安装过程中最费时的步骤,因此我建议在你按下回车以后,最好找一点有意义的事情(许三多说的,不是我说的……)做。反正我利用这个时间把DS论坛的首页帖子翻了一遍。
复制配置文件
#cp support-files/my-medium.cnf /etc/my.cnf
初始化数据库
#cd /usr/local/mysql
#bin/mysql_install_db --user=mysql
修改目录权限
注意,在修改目录权限的时候,我按照源代码包中的INSTALL-SOURCE文档提示的进行权限设置时,发现MySQL没法启动成功,后来我干脆按照自己的方式进行设置后,数据库就可以启动了,问题在哪里呢?下面是两种方法,哪种方法适合你,你就用哪种吧。
方法一(原版):
#chown -R root .
#chown -R var
#chgrp -R mysql .
方法二(俺的版本):
#mkdir tmp
#chown -R root .
#chgrp -R mysql .
#chown -R mysql data
#chown -R mysql tmp
为什么没有为var设置权限那句呢?因为我发现我的这个目录里面并没有这个目录,你让我怎么设置呢?
启动服务器
按照INSTALL-SOURCE文档的说法,使用下面的命令就可以启动MySQL数据库了:
#bin/mysqld_safe --user=mysql &
其实,MySQL数据库早就提供了另外一种更加方便的启动方式。进入/usr/local/mysql/share/mysql/下面会找到一个mysql.server文件,它的属性是755。我们把它复制到/etc/init.d/下面,并把它加入到系统服务表中,您就可以在任何地方用service mysql start语句来启动它,并用service mysql stop停止它。怎么做呢?
#cp ./mysql.server /etc/init.d/mysql
#chkconfig --add mysql
#service mysql start
测试数据库服务器
到此,MySQL已经安装完毕了,是不是成功了呢?测试一下就知道了。
#bin/mysql -u root -p
#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 distribution
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
那么恭喜你,MySQL数据库安装成功,并且已经启动了!
下一个!
下面是不是就该Apache出场了呢?别急,在安装Apache之前先把zlib包装上,因为Apache需要用到它。
安装zlib
解压源代码
#cd /home/downloads/software/lamp/
#cd zlib-1.2.3
#tar -zxvf zlib-1.2.3.tar.gz
配置参数
#./configure --prefix=/usr/local/zlib
编译安装
#make
#make install
安装完毕了,下面该拿Apache开刀了!
安装Apache
解压源代码
#cd ..
#tar -zxvf httpd-2.2.4.tar.gz
配置参数
#cd 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
编译没有出错,就可以进行编译安装了。如果出了错,没办法,好好找找错误处在哪里咯,呵呵……
编译安装
#make
#make install
只要配置参数时没有错误,这一步基本上不会出错的。
测试一下……
安装完毕了,总要测试一下是不是可以用吧,先让我们把httpd服务启动起来:
#/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://p.g.yupoo.com/nph-proxy.cgi/000110A/http/127.0.0.1/),屏幕上是不是显示:It works !这个就不用解释了吧,人家已经说得很明白了,俺开始工作了!
系统设置
我想你肯定不想每次启动电脑后,都要打一遍启动Apache服务的命令吧,但是怎么让电脑自动运行呢?别急,有办法,输入下面的命令就可以了:
#echo "/usr/local/httpd/bin/apachectl start" >> /etc/rc.d/rc.local
这样,每次启动服务器后,Apache就会乖乖的自动启动了,呵呵……
在开始安装PHP前,还是一样要把它需要的组件先装完,这个是顺序。
安装libpng
解压源代码
#cd ..
#tar -zxvf libpng-1.2.8.tar.gz
复制预编译文件
#cd libpng-1.2.8
#cp scrīpts/makefile.linux makefile
说实话,我也不知道软件作者为啥还要搞这一步,把这个文件直接放在目录里面很难么?
编译安装
#make
#make install
安装freetype
解压源代码
#cd ..
#tar -zxvf freetype-2.1.10.tar.gz
配置参数
#cd freetype-2.1.10
#./configure --prefix=/usr/local/freetype
编译安装
#make
#make install
安装jpegsrc.v6b
解压源文件
#cd ..
#tar -zxvf jpegsrc.v6b.tar.gz
建立默认目录
这个模块安装比较麻烦,它不会自己建立目录,所以所有的目录都需要我们自己建立,烦……
#cd jpeg-6b
#mkdir -p /usr/local/jpeg6
# mkdir -p /usr/local/jpeg6/bin
# mkdir -p /usr/local/jpeg6/lib
# mkdir -p /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1
配置参数
#./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
编译安装
#make
#make install
#make install-lib
安装libxml2
解压源代码
#cd ..
#tar -zxvf libxml2-2.6.27.tar.gz
建立目录
唉,又是一个需要自己建立目录的……
#mkdir -p /usr/local/libxml2
配置参数
#./configure --prefix=/usr/local/libxml2
编译安装
#make
#make install
复制配置文件
俺也不知道为什么要手动复制这个东东!
#cp xml2-config /usr/bin
安装GD库
解压源代码
#cd ..
#tar -zxvf gd-2.0.33.tar.gz
建立安装目录
啥也不说了……
#cd gd-2.0.33
#mkdir -p /usr/local/gd
配置参数
#./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
编译安装
#make
#make install
最后一个主角出场了!
安装PHP
解压源代码
#cd ..
#tar -zxvf php-5.2.0.tar.gz
配置参数
#cd 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
编译安装
#make
#make install
复制配置文件
#cp php.ini-dist /usr/local/php/lib/php.ini
修改Apache配置
PHP是要和Apache配合使用,所以当然需要修改一下Apache的配置文件咯……
#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
#/usr/local/httpd/bin/apachectl restart
测试
测试也很简单,在/usr/local/httpd/htdocs/下面建立一个phpinfo.php文件,里面写
<?php
phpinfo();
?>
然后呢,在浏览器里面输入“http://127.0.0.1/phpinfo.php”,如果页面上出现了PHP的版权信息及系统配置情况,说明你的PHP已经可以使用了。如果页面上出现的是你刚才写的代码,麻烦了,回头检查一下哪里有问题咯……
晕,终于写完了,试试吧,看看有没有写错什么
Over
自己的初次测试:
一开始测试,报错显示如下:you dont have permission to access /phpinfo.php on this server.
终于测试php成功了,下面是修改的过程
编辑httpd.conf文件,我用gedit打开
在LoadModule处添加: LoadModule php5_module module/libphp5.so
在DirectoryIndex处添加: index.php
在AddType application处添加: AddType application/x-httpd-php .php .phtml
AddType applicatoin/x-httpd-php-source .phps
测试php模块的加载
# /usr/local/apache/bin/apachectl start //开启apache
在浏览器中输入:http://localhost/
浏览器中显示:It Works 表示apache开启www服务
# vi /usr/local/apache/htdocs/phpinfo.php
输入:<? phpinfo(); ?>
保存并退出
在浏览器中输入:http://localhost/phpinfo.php
浏览器中显示一个关于apache和php安装的Web页,表示成功加载php模块
这个网页提供的信息也是不错的,其中有些内容可以借鉴
http://my.opera.com/cocobear/blog/show.dml/668649