您的位置:首页 > 运维架构 > Apache

CentOS 4.4下源码编译安装apache+php+mysql

2009-06-22 17:09 1106 查看
作 者:稻草人
最后更新:03/08/2007
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://bbs.gamearena.cn/thread-2772-1-1.html
关键词:CentOS Apache MySQL PHP ZendOptimizer phpMyAdmin LAMP 源码编译
内容摘要:
  本文参考了网上高手的教程和结合自己的实践经验而来。网上关于LAMP安装配置的教程虽然很多,但长篇大论的让你抓不到重点,短小精悍的对新手来说又难了点,所以初次配置时最容易在某个环节卡住,从而打击了学习的激情或者耽误了宝贵的时间。于是就整理出这个学习笔记。如果文中有错误的地方,恳请大家指正,不要误导了初学者。
一、系统约定
1、系统环境
OS:CentOS-4.4.ServerCD-i386
Apache:2.2.4
MySQL:4.0.26
PHP:4.3.11
ZendOptimizer:3.2.2
phpMyAdmin:
2、源码包存放位置 :/usr/local/src
#为什么一定要在/usr/local/src/下进行Tarball呢?这仅是约定俗成的,因为如此一来,大家都安装在这个地方,以后主机的维护与移交都很简单,并且对于将来在主机上面进行“升级”与”版本识别“都有很好的帮助。
二、系统环境部署及调优
  1、基本安全设置
  对于一个在Internet上提供服务的主机,安全性很重要,这方面的工作包含主机的包漏洞修补、关闭并不是必须的守护进程(端口)、防火墙配置以及每日的日志分析等。在装完系统后,建议按照以下步骤来进行安全设置:
  1)关闭并不是必须的守护进程(端口)
  CentOS4.4系统安装完成后,一些可能并不是必须的守护进程会启用。禁用非必要的进程会减少系统的内存开销,同时也可以减少系统的安全隐患,可以释放更多的内存空间、减少系统的启动时间、减少CPU处理的进程数量。
  默认情况下,很多守护进程可以安全的在系统下停止和禁用。下表列出了CentOS4.4安装(安装时软件包只选择开发工具一项)的一些守护进程,如果不是必须的你可以考虑禁用这些进程。
进程
描述
acpid
提供高级电源管理。建议保留
anacron
一个自动化运行任务守护进程。Red Hat Linux 随带四个自动化任务的工具cron、 anacron、at、和 batc。当你的Linux服务器并不是全天运行,这个anacron就可以帮你执行在"crontab"设定的时间内没有执行的工作。
apmd
apmd(Advanced Power Management)是高级电源管理。传统的电源管理标准,对于笔记本电脑比较有用,可以了解系统的电池电量信息。并将相关信息通过syslogd 写入日志。也可以用来在电源不足时关机。
atd
计划任务(执行一次)守护进程。建议保留
autos
自动mount文件系统进程(例如自动mount光驱),在服务器系统上文件系统很少使用自动mount功能。关闭
cpuspeed
动态调整CPU频率的进程,在服务器系统中这个进程建议关闭。
crond
计划任务(循环执行)守护进程。建议保留
cups
通用UNIX打印系统,如果你计划在服务器上运行打印服务就不要关闭这个进程。
gmp
文本终端的鼠标服务,如果你想在本地文本终端支持鼠标就不要禁用这个进程。
haldaemon
和Windows的硬件管理类似,挂载U盘等必不可少。建议保留
iptables
这个是防火墙守护进程,无论如何,先启动它。
irqbalance
在多个处理器之间平衡中断,如果你使用一个单CPU系统或者你计划静态的平衡中断可以禁用这个进程。
isdn
ISDN调制解调器支持,如果你准备在服务器上支持ISDN调制解调器就不要禁用这个进程。
kudzu
检测和配置新硬件,如果硬件配置改变了应该手动运行。
mdmonitor
RAID相关设备的守护程序。
messagebus
挂载U盘时,要确保haldaemon和messagebus服务启动,所以这个也建议保留。
microcode_ctl
可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。建议保留
netfs
用于支持NFS共享,如果你准备在服务器上支持NFS共享就不要禁用这个进程。
network
激活/关闭启动时的各个网络接口守护进程。
nfslock
对nfs启用文件锁,如果你准备在服务器上支持NFS共享就不要禁用这个进程。
pcmcia
Pcmcia支持,在服务器上很少使用pcmcia适配器因此可以安全的禁用这个进程。
portmap
为RPC服务动态分配端口(例如NIS和NFS),如果系统没有支持RPC服务可以禁用这个进程。
rawdevices
提供对裸设备绑定的支持,如果你不准备在系统中使用裸设备可以禁用这个进程。
rpcgssd
主要用于NFS和Samba的多个远程调用进程,如果系统没有基于rpc服务的支持,可以禁用这个进程。
rpcidmapd
同上
sendmail
邮件传输代理,如果服务器需要支持邮件服务就不要禁用这个进程。
smartd
使用S.M.A.R.T兼容设备的进程,如果你不是使用IDE/SATA磁盘子系统,可以禁用这个进程。
sshd
OpenSSH服务器守护进程,如果你不需要远程管理主机,可以关闭,不过应该没有几个人不需要这个服务吧。
syslog
把各类事件写入日志,是相当重要的服务,务必启动。
xfs
X Window的字体服务,如果你的运行级别是5请不要禁用这个进程。
xinetd
支持多种网络服务的核心守护进程。务必启动。[root@localhost ~]# ntsysv
#根据自己的需要,使用ntsysv工具来启用那些里程。
  
[root@localhost ~]# reboot
#重新启动使设置生效
[root@localhost ~]# netstat -an |more
#......信息略......
#检查一下当前开启的端口
#netstat是个很重要的命令,请大家务必掌握,这部份的知识自行在网上查阅。
  2)基本防火墙配置
[root@localhost ~]# /etc/rc.d/init.d/iptables stop
#防火墙开启
[root@localhost ~]# /etc/rc.d/init.d/iptables start
#防火墙开启
[root@localhost ~]# vi /etc/sysconfig/iptables
#根据自己的情况增加防火墙规则。
[email=root@localhost]root@localhost[/email] ~]# iptables-save > filename
#上面的命令用于将当前主机上的防火墙规则保存到filename文件。
root@localhost ~]# iptables-restore
LANG="zh_CN.GB18030"
[root@localhost ~]# reboot
#重新启动要设置生效
如果临时需要英文环境,执行以下命令即可。
[root@localhost ~]# export LANG='en_US'  
  2)对TCP/IP网络参数进行调整,加强抗syn_flood能力
[root@localhost ~]# echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf
[root@localhost ~]# sysctl –p
  3)网络校时
[root@localhost ~]# date
#确认系统时间是否正确
[root@localhost ~]# ntpdate 210.72.145.44
#与中国国家授时中心进行时间校正
[root@localhost ~]# yum install ntp
#安装ntpdate程序。系统虽然默认没有安装这个套件,但我们可以很方便的通过yum工具来在线安装。
[root@localhost ~]# crontab -e
CODE
[Copy to clipboard]
0 23 * * * root /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1#以上命令设置好后存盘。您的机器将在每天的23:00根据中国国家授时中心的NTP服务器时间自动校准时间。
#关于linux下定时执行工具crontab的介绍请见
http://hi.baidu.com/monobao/blog/item/01e9ecdcbc6a14a1cc11665b.html
3、安装LAMP套件所必需的包
[root@localhost ~]# vi install.sh
CODE
[Copy to clipboard]
yum install gcc
yum install cpp
yum install gcc-c++
yum install ncurses
yum install ncurses-devel
yum install gd-devel php-gd
yum install zlib-devel
yum install freetype-devel freetype-demos freetype-utils
yum install libpng-devel libpng10 libpng10-devel
yum install libjpeg-devel
yum install ImageMagick
yum install flex
yum install ImageMagick-devel [root@localhost ~]# sh install.sh
#为了方便,直接这些软件包在线安装的指令行编写到到脚本(Shell Script)中,下次用到时,你只需执行这个脚本就能自动安装了。因为Shell Script是利用您平日在使用的一些指令,将之组合起来,成为一个"程式"。如果您平日某些序列的指令下得特别频繁,便可以将这些指令组合起来,成为另一个新的指令。这样,不但可以简化并加速操作速度,甚至还可以乾脆自动定期执行,大大简化系统管理工作。
下面正式步入LAMP的的安装步骤,开始安装之前,先了解一下源码编译方面的知识,参考文献《
Linux系统管理员(二)---套件管理RPM与Tarball
》。
三、安装Mysql
1、建立msyql用户组
[root@localhost ~]# grep mysql /etc/group
#查询系统中是否有mysql这个用户组,没有则添加。
[root@localhost ~]# groupadd mysql
#增加一个名为mysql的用户组
2、建立mysql用户
[root@localhost ~]# grep mysql /etc/passwd
#查询系统中是否有mysql这个用户,没有则添加。
[root@localhost ~]# useradd mysql -g mysql -M -s /sbin/nologin
#增加一个名为mysql的用户。
-g:指定新用户所属的用户组(group)
-M:不建立根目录
-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
3、下载:mysql-4.0.26
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget
http://ftp.gamearena.cn/software/mysql-4.0.26.tar.gz
#......(信息略)......
[root@localhost src]# chmod +x mysql-4.0.26.tar.gz
#修改文件权限为755
[root@localhost src]# tar -zxvf mysql-4.0.26.tar.gz
#......(信息略)......
#解压缩
PS:当你在
www.mysql.com
下载MySQL的时候,会发现有binary/rpm/source三种包。binary distribution是由mysql官方优化编译好的,不需要make。
3、设置编译器的编译参数
[root@localhost src]# cd /usr/local/src/mysql-4.0.26
[root@localhost mysql-4.0.26]# ./configure --prefix=/usr/local/mysql --with-unix-socket-path=/tmp/mysql.sock --localstatedir=/usr/local/mysql/data --with-charset=gbk --without-debug --enable-assembler --without-isam --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
#这些设置告诉编译器如何编译apache:
--prefix=/usr/local/mysql 
指定msyql安装目录
--with-unix-socket-path=/tmp/mysql.sock
这个是指定mysql服务器启动后,联机套接字文件所处的位置和文件名。
--localstatedir=/usr/local/mysql/data
指定mysql的数据库目录
--with-charset=gbk 
添加gbk中文字符支持
--without-debug
去除debug模式
--enable-assembler
使用一些字符函数的汇编版本
--without-isam
去掉isam表类型支持,现在很少用了,isam表是一种依赖平台的表
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
4、编译和安装
[root@localhost mysql-4.0.26]# make
#“make”命令把源文件编译成可执行的二进制文件
[root@localhost mysql-4.0.26]# make install
#“make install”把二进制文件和配置文件安装在合适的目录下
6、初始化系统库
[root@localhost mysql-4.0.26]# ./scripts/mysql_install_db
7、其它设置
[root@localhost mysql-4.0.26]# cp support-files/my-medium.cnf /etc/my.cnf -fv
#注解:
-f,删除目标中同名的文件或目录,并且不给任何提示。
#还有一些其它的my.cnf配置文件。适合不同的应用规模。型式如my-*.cnf。根据自己的需要cp。 
[root@localhost mysql-4.0.26]# cp support-files/mysql.server /etc/init.d/mysqld
#添加到起动脚本
[root@localhost mysql-4.0.26]# chmod 700 /etc/init.d/mysqld
[root@localhost mysql-4.0.26]# cd /usr/local
[root@localhost local]# chmod 750 mysql -R
#注解:
-R 递归改变目录及其内容的权限。
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql
#设置所有者,mysql起动时会以mysql用户的身份运行,这样可以提高系统的安全性。
[root@localhost local]# chown -R mysql.mysql /usr/local/mysql/data
[root@localhost local]# cd /usr/local/mysql/libexec
[root@localhost libexec]# cp mysqld mysqld.old
[root@localhost libexec]# strip mysqld
[root@localhost libexec]# chkconfig --add mysqld
#添加一个服务
[root@localhost libexec]# chkconfig --level 345 mysqld on
#设置开机时起动
[root@localhost libexec]# service mysqld start
#启动mysql服务
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysql /sbin/mysql
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
[root@localhost libexec]# ln -s /usr/local/mysql/bin/mysqldump /sbin/mysqldump
[root@localhost libexec]# mysqladmin -uroot password "youpassword"
#设置root帐户的密码
[root@localhost libexec]# mysql -uroot -p
# 输入你设置的密码
mysql>use mysql;
mysql>delete from user where password="";
#删除用于本机匿名连接的空密码帐号
mysql>flush privileges;
mysql> show databases;
+----------+
| Database |
+----------+
| mysql |
| test |
+----------+
2 rows in set (0.08 sec)
#显示一下数据库,测试mysql是否安装正常。
mysql> quit
Bye
四、安装Apache
1、下载:apache2.2.4
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget
http://archive.apache.org/dist/httpd/httpd-2.2.4.tar.gz
[root@localhost src]# chmod +x httpd-2.2.4.tar.gz
[root@localhost src]# tar -zxvf httpd-2.2.4.tar.gz
3)设置编译器的编译参数
[root@localhost src]# cd httpd-2.2.4
[root@localhost httpd-2.2.4]# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite=share --enable-proxy=share --enable-proxy-ajp=share --enable-dav=share --enable-dav-fs
#注解:
--prefix=/usr/local/apache2 
设置Apache安装目录。这里设定安装在/usr/local/apache2下,今后如果要卸载或者升级Aapche时,直接删除这个目录即可。
--enable-so 
指定允许DSO(动态共享对像)
--enable-rewrite=share 
开启Rewrite支持,以实现URL静态化,建议开启。
--enable-dav-fs
开启WebDAV支持,svn服务器等需要。附:《
什么是webDAV?及如何应用?

#其它的额外设置请使用./configure --help来查看。
4)编译和安装:
[root@localhost httpd-2.2.4]# make; make install
#如果没有错误的话,那么Apache就已经安装在/usr/local/apache2目录中了
3、启动服务:
[root@localhost httpd-2.2.4]# /usr/local/apache2/bin/apachectl start
4、确定启动状:
[root@localhost apache2]# netstat -utl
tcp 0 0 *:http *:* LISTEN
#看到上面这行就表示你的Apache已经启动。
#用浏览器访问,看到It works!,说明apache已经安装成功了,恭喜您!
五、安装PHP
1、下载:php4.3.11
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]#
http://ftp.gamearena.cn/software/php-4.3.11.tar.gz
[root@localhost src]# chmod +x php-4.3.11.tar.gz
[root@localhost src]# tar -zxvf php-4.3.11.tar.gz
2、设置编译器的编译参数
[root@localhost src]# cd php-4.3.11
[root@localhost src]# ./configure --prefix=/usr/local/php4 --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php4 --with-gd --with-jpeg-dir --with-png --with-ttf --with-zlib --enable-mbstring --enable-ftp --with-freetype-dir --with-xml --disable-debug --enable-inline-optimization -q --enable-thread-safety
#参数注解:
--with-mysql=/usr/local/mysql 
指定mysql的安装位置
--with-apxs2=/usr/local/apache2/bin/apxs
编译共享的 Apache 2.0 模块。FILE 是可选的 Apache 的 apxs 工具的路径,默认为 apxs
--with-config-file-path=/usr/local/php4
设定 php.ini 所在的路径,默认为 PREFIX/lib
--with-gd 
指定gd
--with-jpeg-dir
--with-png
--with-ttf
--with-zlib
--enable-mbstring
--enable-ftp 
打开ftp支持
--with-freetype-dir
--with-xml
--disable-debug
禁用调试符号
--enable-inline-optimization
-q
--enable-thread-safety
3、编译和安装
[root@localhost php-4.3.11]# make; make install
4、转存php基本配置文件
[root@localhost php-4.3.11]# cp php.ini-dist /usr/local/php4/php.ini
#这个路径必须和./configure中的--with-config-file-path设置一致
5、整合apache 与php
[root@localhost php-4.3.11]# vi /usr/local/apache2/conf/httpd.conf
加上:
AddType application/x-httpd-php .php
查找,在下面一行的DirectoryIndex后面增加index.php,例:
DirectoryIndex index.php index.html
PS:其实这个DirectoryIndex和IIS中”启用默认内容文档“那项设置是一个含义,应该知道是干什么用的了吧。
6、重启apache
[root@localhost php-4.3.11]# /usr/local/apache2/bin/apachectl stop
[root@localhost php-4.3.11]# /usr/local/apache2/bin/apachectl start
切记:不要直接用[root@localhost php-4.3.11]# /usr/local/apache2/bin/apachectl restart,我第一次配置时,就是这样操作导致apache的服务启动不了,害得我查了半天。
7、测试php是否正常工作
[root@localhost php-4.3.11]# echo ' ' > /usr/local/apache2/htdocs/phpinfo.php
#在浏览器中输入http://你的地址/phpinfo.php,如果出现如下画面,就说明PHP编译成功了。



六、安装Zend Optimizer
1、下载:Zend Optimizer 3.2.2
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget
http://downloads.zend.com/optimizer/3.2.2/ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz
[root@localhost src]# chmod +x ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz
[root@localhost src]# tar -zcvf ZendOptimizer-3.2.2-linux-glibc21-i386.tar.gz
2、安装Zend Optimizer
[root@localhost src]# cd /usr/local/src/ZendOptimizer-3.2.2-linux-glibc21-i386
[root@localhost ZendOptimizer-3.2.2-linux-glibc21-i386]# ./install.sh
#根据安装提示一路回车即可,唯独要注意的是选择php.ini目录的那里,你要修改为你php.ini实际所在的目录。由于之前我们编译安装php时,指定为--with-config-file-path=/usr/local/php4,所以我们修改将默认的/etc修改为/usr/local/php4。如图:



3、通过php探针文件核查Zend Optimizer是否安装成功
正常的话,应该能看到成功安装Zend Optimizer的信息,图中红框部份



相关日志
ntp 服务使用
“懒惰”集群管理员的 11 个秘诀
(none) login
mysql-master-master
MySQL的性能优化

Tags: linux , centos , amp , 安装 , 编译 , 优化

评论(2) | 引用(0) | 阅读(4497)
收藏到 [天天] [和讯] [我摘] [天极] [新浪] [博采] [Del.icio.us]

leftleg Says:




2007/03/08 17:17

CentOS 4.4 编译安装 apache 2.2.3+php 5.2.0+mysql 5.0.27+Zend Optimizer v3.2.0+eaccelerator-0.9.5笔记

先声明,我绝对是个Linux的菜鸟,以下的这些文字个人的安装笔记,是参考了网上许多高手的成功经验组合而成的,说实话我自己的东西不多 :)我想把这些经验写下来,既可以对其他跟我一样摸索的兄弟一个经验,也可以防止以后自己都忘记了,嘿嘿。

所以如果某个大虾看到我借用了你的资源,请你不要生气。也欢迎大家进行指点。

1、下载centos 4.4
我是下载的DVD版本,大家也可以下载服务器CD安装版本,其实都差不多。大家可以到这儿下载,速度很快的。
http://ftp.iasi.roedu.net/mirrors/ce...4.4/isos/i386/

下载后当然就刻录成光盘。我建议你刻录DVD啦,如果是菜鸟,也可以在图形界面进行学习,不会这么抓不住头脑。

2、安装CentOS4.4
作为服务器,不安装不需要的组件,所以在选择组件的时候,除了选择FTP SERVER外取消所有组件的选择。也不要选web服务器。因为我们后面要手动编译安装。

系统约定RPM包和源码包存放位置

RPM包和源码包存放位置 /usr/local/src
源码包编译安装位置(prefix) /usr/local/xxx
脚本以及维护程序存放位置 /usr/local/sbin
MySQL 数据库位置 /var/lib/mysql
Apache 网站根目录 /home/www
Apache 虚拟主机日志根目录 /data/logs/www
yum RPM包信息文件 /etc/yum.list

3、系统环境部署及调整

(1). 检查系统是否正常
# more /var/log/messages //检查有无系统内核级错误信息
# demesg //检查硬件设备是否有错误信息
# ifconfig //检查网卡设置是否正确
# ping www.163.com // 检查网络是否正常

(2). 关闭不需要的服务
# export LANG='en_US' //设置语言
# setup //选择启动的服务
进入system service 选项。
以space 键选定所需服务。
以下仅列出需要启动的服务,未列出的服务一律关闭:
crond
irqbalance 仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。
microcode_ctl
network
vsftpd
sshd
syslog

(3)、修改/etc/yum.repos.d/CentOS-Base.repo,将镜象站点地址改为在中国的镜象站点地址。不然我们通过yum安装软件速度会极慢。修改如下:

# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.vmmatrix.net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://ftp.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#released updates
[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.vmmatrix.net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://ftp.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
baseurl=http://mirror.vmmatrix.net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://ftp.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirror.vmmatrix.net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://ftp.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

保存。

然后导入key升级相应yum数据

# rpm --import /usr/share/doc/centos-release-4/RPM-GPG-KEY-centos4
# yum list | tee /etc/yum.list //读取yum list 数据,将其输出到 /etc/yum.list。

(4)、定时校正服务器时间
# yum install ntp
# crontab -e
0 23 * * * root /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1

以上命令设置好后存盘。您的机器将在每天的23:00根据中国国家授时中心的NTP服务器时间自动校准时间。

(5). 对TCP/IP网络参数进行调整,加强抗SYN Flood能力
# echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf //将net.ipv4.tcp_syncookies = 1写入sysctl.conf 文件
# sysctl -p //查看

(6)、FTP服务器的配置
vi /etc/vsftpd/vsftpd.conf
把anonymous_enable=YES注释掉不允许匿名登录。
把chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
前的注释去掉。
把ftpd_banner=*前的注释去掉。后面改成你的欢迎信息(这样设置可以避免显示ftp服务器的版本信息)
然后保存,service vsftpd start就可以了。

这时应当添加用户,因为root默认不能通过FTP方式登录。

# adduser username
# passwd userpassword

这样对于我们上传一些文件到系统中很方便。

4. 重新启动系统
# init 6

5. 使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称)
# yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel

#这里我们将编译GD所必须的一些小软件比如libpng,libtiff,freetype,libjpeg等先用RPM的方式一并安装好,避免手动编译浪费时间,同时也能避免很多错误,这几个小软件的编译很麻烦。这几个小软件编译错误了,GD当然安装不了,php5的编译当然也没戏了。所以我们抓大放小,对这些小牛鬼蛇神采取快速简洁的方式进行安装。并且对服务器的性能也不能产生什么影响。

6. 源码编译安装所需包 (Source)
(1) GD2
# cd /usr/local/src
# wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
# tar xzvf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --mandir=/usr/share/man //./configure 配置。
# make //make 是用来编译的,它从 Makefile 中读取指令,然后编译。
# make install //make install 是用来安装的,它也从 Makefile 中读取指令,安装到指定的位置。

(2) Apache 日志截断程序
# cd /usr/local/src
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
# tar xzvf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure --prefix=/usr/local/cronolog
# make
# make install

(3) libxml 库程序
# cd /usr/local/src
# wget http://ftp.gnome.org/pub/gnome/sourc...-2.6.26.tar.gz
# tar zjvf libxml2-2.6.26.tar.gz
# cd libxml2-2.6.26
# ./configure --prefix=/usr/local/libxml2
# make
# make install

7、编译mysql 5.0.27
cd /usr/local/src
# wget http://mysql.oss.eznetsols.org/Downl...-5.0.27.tar.gz
# tar xzvf mysql-5.0.27.tar.gz
# cd mysql-5.0.27
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-comment=Source --with-server-suffix=-Community --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=latin1 --with-collation=latin1_swedish_ci --with-extra-charsets=all --with-pthread --enable-static --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-innodb --without-ndb-debug

配置成功会提示:

MySQL has a Web site at http://www.mysql.com/ which carries details on the
latest release, upcoming features, and other information to make your
work or play with MySQL more productive. There you can also find
information about mailing lists for MySQL discussion.

Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.

Thank you for choosing MySQL!

# make
编译的时间可能会比较长,毕竟优化的比较厉害。

# make install

编译安装完成后执行后续操作:
# useradd mysql //添加 mysql 用户
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql
# chown -R root:mysql . //设置权限,注意后面有一个 "."
# chown -R mysql /var/lib/mysql //设置 mysql 目录权限
# chgrp -R mysql . //注意后面有一个 "."
# cp share/mysql/my-huge.cnf /etc/my.cnf
# cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld //开机自动启动 mysql。
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# /etc/rc.d/init.d/mysqld start //启动 MySQL
# bin/mysqladmin -u root password "password_for_root"
# service mysqld stop //关闭 MySQL

8. 编译安装 Apache
# cd /usr/local/src
# wget http://www.ip97.com/apache.org/httpd/httpd-2.2.3.tar.gz
# tar zxvf httpd-2.2.3.tar.gz
# cd httpd-2.2.3
# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/apache2 --enable-module=so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-htpasswd --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve --enable-static-htdbm --enable-static-ab --enable-static-checkgid --disable-cgid --disable-cgi --disable-userdir --with-mpm=worker --enable-authn-dbm=shared --enable-authn-anon=shared --enable-authn-dbd=shared --enable-auth-basic=shared

# make
# make install
# echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local //将 apachectl 的调用加入到你的系统启动文件中。

注解:
./configure //配置源代码树
--prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
--enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
--enable-deflate=shared //支持网页压缩
--enable-expires=shared //支持 HTTP 控制
--enable-rewrite=shared //支持 URL 重写
--enable-cache //支持缓存
--enable-file-cache //支持文件缓存
--enable-mem-cache //支持记忆缓存
--enable-disk-cache //支持磁盘缓存
--enable-static-support //支持静态连接(默认为动态连接)
--enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
--enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
--enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
--enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
--enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库
--enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
--enable-static-checkgid //使用静态连接编译 checkgid
--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi //禁止编译 CGI 版本的 PHP
--disable-userdir //禁止用户从自己的主目录中提供页面
--with-mpm=worker // 让apache以worker方式运行
--enable-authn-dbm=shared // 对动态数据库进行操作。Rewrite时需要。

将apache设置成开机自启动:

在/etc/rc.d/rc.local文件中加入一行
/usr/local/apache/bin/apachectl start
这样每次重新启动系统以后,apache也会随系统一起启动.
或者
# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
# chkconfig: 2345 10 90
# description: Activates/Deactivates Apache Web Server
最后,运行chkconfig把Apache添加到系统的启动服务组里面:
# chkconfig --add httpd
# chkconfig httpd on

9、编译php 5.2.0

# cd /usr/local/src
# wget http://cn.php.net/get/php-5.2.0.tar.gz/from/this/mirror
# tar zxvf php-5.2.0.tar.gz
# cd php-5.2.0

# CHOST="i686-pc-linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib-dir --with-bz2 --with-tiff-dir --with-libxml-dir=/usr/local/libxml2 --with-gd=/usr/local/gd2 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-iconv --disable-ipv6 --enable-static

# make && make install

10 、整合apache 与php
# vi /usr/local/apache2/conf/httpd.conf
在最后一行加上:
AddType application/x-httpd-php .php

查找:(设置 WEB 默认文件)
DirectoryIndex index.html
替换为:
DirectoryIndex index.php index.html index.htm //在 WEB 目录不到默认文件,httpd 就会执行 /var/www/error/noindex.html

找到这一段:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride none

更改为AllowOverride all
允许apache rewrite

保存httpd.conf,退出。

# /usr/local/apache2/bin/apachectl restart //重启 Apache

11. 查看确认 L.A.M.P 环境信息
# echo '<?php phpinfo(); ?> ' > /home/www/phpinfo.php
# chmod 755 /home/www/phpinfo.php
用浏览器打开 http://127.0.0.1/phpinfo.php
# echo '<?php $link=mysql_connect('localhost','root','password_for_mysql'); if(!$link) echo "fail"; else echo "success"; mysql_close(); ?> ' > /home/www/testdb.php
# chmod 755 /home/www/testdb.php
# service mysqld start
用浏览器打开 http://127.0.0.1/testdb.php
检查 phpinfo 中的各项信息是否正确。

12、安装 Zend Optimizer
# cd /usr/local/src
# wget http://downloads.zend.com/optimizer/...21-i386.tar.gz
# tar xzvf ZendOptimizer-3.2.0-linux-glibc21-i386.tar.gz
# ./ZendOptimizer-3.2.0-linux-glibc21-i386/install.sh
按照它的提示一步步进行就行了。

13、安装eaccelerator // eaccelerator是php的加速软件,使用后php的执行效率会有较大幅度的提升。目前eaccelerator 0.9.5已经和ZendOptimizer-3.2.0能够很好兼容啦。不过我个人觉得,ZendOptimizer-3.2.0没有加速的功能,只不过起到了执行zend加密的作用而已。闲话不多说了,大家有兴趣的。可以去google下。

# cd /usr/local/src
# wget http://bart.eaccelerator.net/source/...-0.9.5.tar.bz2
# tar -jxvf eaccelerator-0.9.5.tar.bz2
# cd eaccelerator-0.9.5

export PHP_PREFIX="/usr/local/php"
$PHP_PREFIX/bin/phpize //指定一下php的目录

# ./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config // 设置

# make & make install

编译安装后我们会看到屏幕提示的eaccelerator.so所在的目录,比如我得到的是/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so,记住这个路径,待会要用到。

修改php.ini(安装完zend之后,php.ini存放于/usr/local/Zend/etc)
在文件最后,zend之前,注意,这部分内容务必放在zend之前,不然可能会出现不可预期的服务器问题。添加下列信息:

extension="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

解释:
zend_extension 是安装完程序自动指示给我们的
eaccelerator.shm_size="32" 缓存大小单位MB
eaccelerator.cache_dir="/tmp/eaccelerator" 缓存路径

# mkdir /tmp/eaccelerator // 建立目录
# chmod 0777 /tmp/eaccelerator // 修改目录属性

最后重新启动apachectl

重启apache,phpinfo显示:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
with Zend Extension Manager v1.0.11, Copyright (c) 2003-2006, by Zend Technologies
with Zend Optimizer v3.2.0, Copyright (c) 1998-2006, by Zend Technologies

也会有eAccelerator的具体信息。

经过这几个步骤,我们的LAMP服务器就环境基本建立成功啦。感觉上也不是很难,是吧?
当然对于打造基于动态IP的网站,以上的信息还不够,还有建立ADSL拨号,NAT,动态域名更新,防火墙,安装论坛程序等一系列的工作,我会慢慢地写出自己的心得与大家分享。毕竟这对我来说,也是个学习的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: