源码编译安装LAMP平台
系统:
Linux xfzhou 2.6.18-238.el5 #1 SMP Sun Dec 19 14:24:47 EST 2010 i686 athlon i386 GNU/Linux
我把这次所需要的软件都放到
/home/zhou
这个目录下面(下载的话一般都是去
www.chinaunix.net
或官网):
[root@xfzhou zhou]# ll
总计
49928
-rwxr--r-- 1 zhou zhou 785724 07-27 09:52 apr-1.4.6.tar.bz2
-rwxr--r-- 1 zhou zhou 774770 07-27 09:55 apr-util-1.4.1.tar.gz
-rwxr--r-- 1 zhou zhou 1278340 2012-02-18 fontconfig-2.4.2.tar.gz
-rwxr--r-- 1 zhou zhou 1487579 08-30 13:52 freetype-2.4.6.tar.bz2
-rwxr--r-- 1 zhou zhou 258133 2011-10-06 GD-2.0.33.tar.gz
-rwxr--r-- 1 zhou zhou 6137268 08-30 13:36 httpd-2.4.3.tar.gz
-rwxr--r-- 1 zhou zhou 960379 08-30 13:46 jpegsrc.v7.tar.gz
-rwxr--r-- 1 zhou zhou 658335 08-30 14:51 libpng-1.4.3.tar.bz2
-rwxr--r-- 1 zhou zhou 24475686 05-22 14:53 mysql-5.5.22.tar.gz
-rwxr--r-- 1 zhou zhou 13964954 08-30 13:41 php-5.3.6.tar.gz
-rwxr--r-- 1 zhou zhou 560351 08-30 13:48 zlib-1.2.7.tar.gz
-rwxr--r-- 1 zhou zhou 5583905 08-30 15:54 cmake-2.8.6.tar.gz
[root@xfzhou zhou]#
接着把这些软件都解压到
/usr/src/
这个目录里:
[root@xfzhou zhou]# tar jxf apr-1.4.6.tar.bz2 -C /usr/src/
[root@xfzhou zhou]# tar zxf apr-util-1.4.1.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar zxf fontconfig-2.4.2.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar jxf freetype-2.4.6.tar.bz2 -C /usr/src/
[root@xfzhou zhou]# tar zxf GD-2.0.33.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar zxf httpd-2.4.3.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar zxf jpegsrc.v7.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar zxf php-5.3.6.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar zxf zlib-1.2.7.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar jxf libpng-1.4.3.tar.bz2 -C /usr/src/
[root@xfzhou zhou]# tar zxf mysql-5.5.22.tar.gz -C /usr/src/
[root@xfzhou zhou]# tar zxf cmake-2.8.6.tar.gz -C /usr/src/
[root@xfzhou zhou]#
一、安装Apache:
在安装
apache
之前要先安装
apr
和
apr-util
这两个软件,所以要先把系统中自带的
apr
和
apr-util
这两个给卸载掉。
[root@xfzhou apr-1.4.6]# rpm -e apr apr-util --nodeps
安装
apr:
[root@xfzhou apr-1.4.6]# ./configure --prefix=/usr/local/apr //这个地方在编译的时候会报一个错,可以不理会的。
[root@xfzhou apr-1.4.6]# make && make install
安装
apr-util:
[root@xfzhou apr-util-1.4.1]# ./configure --prefix=/usr/local/apr-util --with-
apr=/usr/local/apr/
[root@xfzhou apr-util-1.4.1]# make && make install
安装
Apache:
[root@xfzhou httpd-2.4.3]# ./configure --prefix=/usr/local/apache --enable-rewrite --enable-modules=most --enable-mods-shared=all --enable-cache --enable-file-cache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
[root@xfzhou httpd-2.4.3]# make && make install
调整
apache
的
PATH
变量:
[root@xfzhou httpd-2.4.3]# echo "export PATH=$PATH:/usr/local/apache/bin/" >> /etc/profile
[root@xfzhou httpd-2.4.3]# source /etc/profile //
使其马上生效
启动
|
停止
Apache
:
#apachectl start | stop
最后,让
apache
开机自启动:
# echo “/usr/local/apache/bin/apachectl start” >> /etc/rc.local
测试下看看
apache
是否安装成功:
http://192.168.0.222
二、安装MYSQL:
1
、安装
cmake:
由于使用的是
MYSQL-5.5
的版本的,这个版本在安装的时候要使用
cmake
来编译安装,故要先安装
cmake:
[root@xfzhou cmake-2.8.6]# ./configure –prefix=/usr/local/cmake
[root@xfzhou cmake-2.8.6]# make && make install
[root@xfzhou cmake-2.8.6]# echo “export PATH=$PATH:/usr/local/cmake/bin/” >> /etc/profile
2
、添加
MYSQL
的程序用户
mysql:
[root@xfzhou src]# useradd -M -s /sbin/nologin mysql
-M
是不创建家目录
-s
是指定登陆
shell
为
/sbin/nologin
不让
mysql
用户登陆系统。
3
、编译安装
MYSQL:
[root@xfzhou mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_USER=mysql -DSYSCONFDIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLE_LOCAL_INFILE=1
注意:到今天为止最新的版本是
5.5.27
,要是按以上的编译是有问题的。
把
support-files
中的
my-large.cnf
复制到
/etc
下面命名为
my.cnf
,其实这个
support-files
目录下面有多个
mysql
的配置文件样版,可以根据你的数据库的负载来选择。
[root@xfzhou mysql-5.5.22]# cp support-files/my-large.cnf /etc/my.cnf
再把
mysql
添加为系统服务,并设置其开机自启动:
[root@xfzhou mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld
[root@xfzhou mysql-5.5.22]# chkconfig --add mysqld
[root@xfzhou mysql-5.5.22]# chkconfig --level 35 mysqld on
[root@xfzhou mysql-5.5.22]# chmod 755 /etc/init.d/mysqld (
如果不执行这一步,那么在用
service mysqld start|stop|status
的时候会提示无法识别的
mysqld
服务
)
修改
/etc/my.cnf
配置文件:
datadir=/usr/local/mysql/data //
还要把
data
目录的宿主改为
mysql
log-error=/usr/local/mysql/data/error.log
pid-file=/usr/local/mysql/data/mysql.pid
user=mysql
tmpdir=/tmp
[root@xfzhou mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql/data //
更改
data
目录的宿主为
mysql
。
[root@xfzhou mysql-5.5.22]#
[root@xfzhou mysql-5.5.22]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/ ---
初始化
mysql
数据库
调整
mysql
的命令执行路径:
#echo "export PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
调整
mysql
的
lib
库路径
#echo "/usr/local/mysql/lib/" >> /etc/ld.so.conf
#ldconfig
重新加载,使其生效
启动
mysqld
服务:
service mysqld start
或
/usr/local/mysql/bin/mysqld_safe --user=mysql &
通常为了安全性还要执行一下
/usr/local/mysql/bin/mysql_secure_installation
这个脚本:用来给
root
设定密码,删除匿名用户,不让
root
从远程登陆
mysql
等一些安全选项,建议执行下。
三、安装fontconfig、freetype、jpeg、libpng、gd,
注意要先安装其它的再来安装
GD
,因为在编译
GD
的时候要指定
PNG,JPEG
等的路径。下面来说下这几个软件的作用:
fontconfig:
在安装
php
时,为了需求,可能需要
GD
库的支持,而
fontconfig-2.4.2.tar.gz
在
cacti
绘图时,图片上的字体支持就会用到它
zlib:
数据压缩库
zlib
。
Zlib
软件包包含
zlib
库,很多程序中的压缩或者解压缩函数都会用到这个库
libpng:libpng
软件包包含
libpng
库
.
这些库被其他程式用于读写
png
文件
.
jpeg:
用来让
PHP
支持
jpeg
的图片的。
FreeType
库
:
是一个完全免费
(
开源
)
的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括
TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF
等
GD:
是一个开源的图像处理库,支持
PNG/JPEG/GIF
以及其他格式的图像。
GD
一般被用来创建图表、图形、缩略图以及其他图像相关的处理操作
1
、
freetype
./configure --prefix=/usr/local/freetype
make && make install
2
、
fontconfig
./configure --prefix=/usr/local/fontconfig --with-freetype-config=/usr/local/freetype/bin/freetype-config
make && make install
3
、
libpng
./configure --prefix=/usr/local/png
make && make install
4
、
jpeg
mkdir /usr/local/jpeg
mkdir /usr/local/jpeg/bin
mkdir /usr/local/jpeg/lib
mkdir /usr/local/jpeg/man
mkdir /usr/local/jpeg/man/man1
mkdir /usr/local/jpeg/include
./cofnigure --prefix=/usr/local/jpeg --enable-shared --enable-static
make && make install
5
、
zlib
./configure --prefix=/usr/local/zlib
make && make install
6
、
gd
./configure --prefix=/usr/local/gd --with-png=/usr/local/png/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/ --with-fontconfig=/usr/local/fontconfig/
四、安装php-5.3.6
./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-sockets --enable-mbstring=all --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-png-dir=/usr/local/png/ --with-jpeg-dir=/usr/local/jpeg/ --with-freetype-dir=/usr/local/freetype/ --with-zlib-dir=/usr/local/zlib/ --with-gd=/usr/local/gd/
make && make install
在编译
PHP
的时候,注意一定要把
—enable-sockets
给加上。
把
php
的配置文件复制到
/etc/
目录下面,注意生产环境的话,就要复制
php.ini-production
这个。
[root@xfzhou zhou]# cp /usr/src/php-5.3.6/php.ini-production /etc/php.ini
如果在安装PHP的过程中,没有指定PHP的配置文件的路径,那么默认的位置就是/usr/local/php/lib/这个目录,可以用php -i来查看。
最后来修改
apache
的配置文件,使
apache
能够和
PHP
协同工作:
vi /usr/local/apache/conf/httpd.conf
LoadModule php5_module modules/libphp5.so //
这一行是
PHP
安装好后,就自动生成的。
AddType application/x-httpd-php .php //
手工添加
DirectoryIndex index.html index.php //
手工在
index.html
后面添加一个
index.php
:wq
五、测试PHP
在
/usr/local/apache/htdocs/
目录下面分别创建
test.php testdb.php
:
#vi test.php
<?php
Phpinfo();
?>
:wq
#vi testdb.php
<?php
$Link=mysql_connect('localhost','test','');
if (!$Link) echo "Fail!!";
else echo "Success!!";
mysql_close();
?>
:wq
再来用浏览器来验证:
说明
PHP
能与
APACHE
协同工作了。同时在这个页面你还可以了解到
PHP
支持的功能。如
GD
。
这说是明PHP能够和mysql协同工作了。
六、给apache添加gzip压缩功能:
#vi /usr/local/apache/conf/httpd.conf
LoadModule deflate_module modules/mod_deflate.so //
取消注意,就是启用这个
deflate
压缩模块。
然后在文件尾部手工添加如下内容:
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
</ifmodule>
保存退出,后重启下
apache
服务器,用互联网上的网站来检测就可以看到网站有压缩的功能了。比如查看
www.sina.com
网站
是否有
gzip
压缩功能。测试结果如下:
检测地址:
http://tool.chinaz.com/Gzips/