源码编译LAMP

源码编译安装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 等一些安全选项,建议执行下。
 
 
三、安装fontconfigfreetypejpeglibpnggd, 注意要先安装其它的再来安装 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/
 
 

你可能感兴趣的:(lamp,网站压缩)