在Linux下安装PHP,APACHE,MYSQL,PERL的方法

本文目的在于帮助那些刚刚入门的朋友,这是一篇颇为详细的安装说明本人全部调试通过,现在正在调试ORACLE部分,到时再与大家共享。

针对系统的优化工作需要根据不同的系统采用不同的办法。本文旨在描述通用的优化
Linux 的一些办法。
一、编译选项
“etc/profile”文件含有系统大量的环境和启动程序的配置信息。你在该文件中进行的配置,可以通过申请全局环境变量来实现。因此,在该文件中设置优化标志,是一种明智的选择。要想使x86程序获得最佳性能,可以在编译时,使用最佳的优化选项-O9
。许多程序的“Makefile”文件中已经含有-O2选项,而-O9使编译器采用最高级别的优化。尽管它将增加最终程序的大小,但这样可以获得更高的运行速度。编译时,使用“-fomit-frame-pointer”选项,程序运行时,访问变量时将使用堆栈。但是,使用这一选项,生产的代码将无法调试。使用“-mcpu=cpu_type”和“-march=cpu_type”选项,Gcc将针对这种型号CPU进行专门的优化,但生成的代码只能在所指定的CPU或更高系列的CPU上运行。当我们采用
-O9
来编译程序时,或许文件字节数是最大的,但是往往其运行速度也是最快的。根据不同的机器架构,你可以把下面的语句加入
/etc/profile 。

经过一夜的“奋战”,终于把ORACLE装上了,而且PHP脚本调用ORACLE数据库也成功了,现在就和大家共同分享。
(注:现在网上一些资料都说oracle8.1.6 php4.0.4 apache1.3.2可以成功
安装,可是我和一个朋友试过了几次都不能成功,如有高手请指教,最好具体一些。)

1.硬件环境: 硬盘:9.2 G ; 内存:128 M ; 网卡:EEpor100

对于CPU i686或PentiumPro、Pentium II、Pentium III等:
CFLAGS=-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro
-march=pentiumpro -fomit-frame-pointer -fno-exceptions

1.硬件环境:

2.软件

对于CPU i586或Pentium:
CFLAGS=-O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops
-fomit-frame-pointer -fforce-mem -fforce-addr -malign-double
-fno-exceptions

硬盘:9.2 G ; 内存:128 M ; 网卡:EEpor100

操作系统: RedHat 6.2

对于CPU i486:
FLAGS=-O3 -funroll-all-loops -malign-double -mcpu=i486 -march=i486
-fomit-frame-pointer -fno-exceptions
在进行完以上设置之后,紧接者着把“CFLAGS LANG
LESSCHARSET”加入到“etc/profile”文件中的“export”行中:
export PATH PS1 HOSTNAME HISTSIZE HISTFILESIZE USER LOGNAME MAIL INPUTRC
CFLAGS LANG LESSCHARSET
然后,重新登录,这时,环境变量CFLAGS已经被赋值,编译器和其它配置工具可以使用它。对Pentium(Pro/II/III)的优化必须使用egcs或pgcc编译器。Linux的缺省安装中,已经装上了egcs,所以无需担心。
另外,安装程序时,使用 tarball 格式总要比 RPM 格式来得好,因为, tarball
需要重新编译,能针对你的机器架构作优化,得到最好的性能。

2.软件

3.优化RedHat 6.2

二、重新编译内核
一般的 Linux 发行商发布的 Linux
版本,其内核总是会带有一些对你来说不是很实用的东西,例如对HAM
Radio的支持,对 Token Ring 的支持等。可以查看下面的两个网站的资料:
Linux Kernel Howto: www.linuxdoc.org/HOWTO/Kernel-HOWTO.html
Linux Kernel : www.kernel.org
编辑/usr/src/linux/Makefile文件,可以根据具体的cpu优化内核编译。以下的参数设置将得到优化的内核性能。
① vi +18 /usr/src/linux/Makefile ,将HOSTCC =gcc改为 HOSTCC =egcs.
② vi +25 /usr/src/linux/Makefile
将CC =$(CROSS_COMPILE)gcc D__KERNEL__ -I$(HPATH)
改为 CC =$(CROSS_COMPILE)egcs D__KERNEL__ -I$(HPATH).
③ vi +90 /usr/src/linux/Makefile
将CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
改为CFLAGS = -Wall -Wstrict-prototypes -O9 -funroll-loops -ffast-math
-malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer
-fno-exceptions
④ vi +19 /usr/src/linux/Makefile
将HOSTCFLAGS =-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
改为HOSTCFLAGS =-Wall -Wstrict-prototypes -O9 -funroll-loops -ffast-math
-malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer
-fno-exceptions
根据以上修改后的makefile文件重新编译内核将得到较优的性能。

操作系统:

安装时选择 ftp 和 dns

三、停止不使用的服务
Sendmail, httpd, crond, kudzu, mysql, portmap, postgresql, smb, snortd,
webmin, inetd (或者 xinetd)
等都是很棒的程序,但是如果你不会使用他们,干吗要让他们占用您宝贵的资源呢?而且,这些程序都会带来安全隐患。一般说来,一套“干净”的
Linux 系统,只需要gpm, network, syslog, ssh 和
xfs。如果临时有需要,就手工启动好了。这些启动脚本一般都在
/etc/rc.d/init.d 目录下。
检查自己的机器上使用中的服务,可以采用 nmap 工具扫描。

RedHat 6.1(***大家注重,一定是6.1啊***)

编辑文件 /etc/hosts

[[email protected]]$
nmap -p1-65535 211.94.129.28
Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
Interesting ports on freelamp.com (211.94.129.28):
(The 65492 ports scanned but not shown below are in state: closed)
—Edited version of the output due to space considerations–
Port State Service

514/tcp open shell
1025/tcp open listen
1099/tcp open unknown
1214/tcp open unknown

检查特定端口上正在运行的程序名,可以采用:
[[email protected]
/root]# netstat -anp|more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program
name
….
tcp 0 0 203.199.66.200:8007 203.199.66.197:1060 CLOSE 1005/java
tcp 0 0 203.199.66.200:22 203.199.66.197:3768 ESTABLISHED 1381/sshd
tcp 0 0 203.199.66.200:23 192.168.57.46:1546 ESTABLISHED
1229/in.telnetd: 19
….
最后一列显示运行的程序及其 PID。
我们还可以采用 ps 命令检查机器上正在运行的守护程序:
[[email protected]
root]# ps xc -u 0
PID TTY STAT TIME COMMAND

1475 ? S 0:02 sendmail
1498 ? S 0:04 gpm
16539 ? S 0:01 httpd

3.优化RedHat 6.1
过程和上一篇文章一样,请参考上一篇文章《在Linux下安装PHP,APACHE,MYSQL,PERL的方法》作者:sucre_tiger

改为: 202.104.131.100 info.langoit.com.cn info

四、优化磁盘
1、优化分区
在安装系统之前,您就需要对硬盘做好恰当的规划。划分一定的文件系统,不仅仅是系统本身的需要,而且在安全层面上也十分有意义。在Linux系统中,我们可以自由地组织磁盘分区。一个优化的分区策略,可以很好地改进Linux系统的性能,减少磁盘碎片,提高磁盘I/O能力。根据磁盘的特点,我们知道越是靠磁盘外部的柱面,旋转越快,而且每次旋转时,磁盘读写头可以覆盖较多的区域,也就意味着靠外部的柱面可以得到较好的性能。所以在分区时,我们应该考虑将访问频率高的,对系统性能影响相对较大的分区置于磁盘的靠外部分。同时,为了减少磁盘碎片,应将内容经常改变的目录放在单独的分区。从方便备份数据的角度考虑,因为很多备份工具对整个分区进行备份的效率要高,所以我们应将Linux系统的几个主要的目录作为单独的文件系统,为它们各自分配一个区。推荐的分区策略如图一:

4.安装和优化mm,oracle,apache,php,,perl,mode_perl

编辑文件 /etc/named.conf

在上图中,磁盘还有一部分未分区的空间,为什么不在安装系统时,将整个磁盘分区呢?现在的硬盘空间比较大,而在安装系统时,也许你所安装的文件加上以后增长所需要的空间用不到整个磁盘存储空间。保留一部分未分区空间,当以后有新的需要时,就可以用fdisk重新将之分区。在分区时,需要注意的是,根据系统将来运行的需要或过去的经验来估计各个分区的大小,以免将来空间不够。
/dev/hda5 swap swap defaults,pri=5 0 0
/dev/hdc5 swap swap defaults,pri=5 0 0
当然,如果你的系统内存足够大,而你的系统又远远用不了那么多的内存,那也就用不到什么虚存了。分区时你就可以考虑去掉交换分区。不过作为一个Linux服务器,即使你的内存足够大,还是应该设置交换分区。如果有多个硬盘的话,可以在每个硬盘上各开
swap 分区,另外,建议 swap 分区的大小为物理内存的两倍。
2、使用hdparm改善Linux系统性能
如果你的Linux系统运行于IDE硬盘,可以使用hdparm工具来提高磁盘I/O的性能。不过使用hdparm要小心,因为可能破坏硬盘上的数据。所以在使用hdparm之前,仔细阅读你的硬盘手册。根据你具体的硬盘规格来使用相应的hdparm开关参数。对一块UltraATA/66
EIDE 硬盘,其控制芯片支持多 PIO
模式和DMA,我们使用以下命令来调谐磁盘性能:
# /sbin/hdparm -x66 -d1 -u1 -m16 -c3 /dev/hda
选项说明:
① c3 :就是把硬盘的16位格式转换为32位模式(32-bit mode
w/sync)。控制数据如何从pci总线传递到控制器。
② m16
:改变硬盘的多路扇区的读功能,-m16可以使得硬盘在一次i/o中断中读入16个扇区的数据(据具体硬盘而定)。
③ d1:打开DMA模式。
④ x66
:在支持UDMA-capable的硬盘中,这个参数可以支持双DMA通道的数据传输模式。
⑤ u1
:Linux在处理磁盘中断时,可以unmask其他的中断或者响应其他中断相关的任务。
查看以上的更改情况可以使用命令:
# /sbin/hdparm /dev/hda
测试磁盘I/O性能可以使用命令:
# /sbin/hdparm -tT /dev/hda
如果磁盘的性能有改进的话,可以使用以下命令来保存设置:
# /sbin/hdparm -k1 /dev/hda
3、Linux下使用软RAID
RAID(磁盘冗余阵列)是通过将数据分布在多个磁盘上来增强磁盘性能和可靠性的技术。如果你的系统没有硬件RAID控制器的话,在Linux下可以通过软件来实现RAID。RAID的有很多的级别,不同的级别对硬件有不同的要求,相应也会得到不同的性能和可靠性。RAID0为数据分割,数据块被交替写到磁盘,可以得到最好的读写性能,但是不提供数据冗余。RAID1为磁盘镜像,写到磁盘1中的一切也写到磁盘2中,从任何一个磁盘都可以读取。RAID3除了数据分割之外,还指定一个磁盘驱动器来存储奇偶信息。
在LINUX下通过软件来实现RAID,
需要LINUX的内核支持,可以通过编译新内核来添加对RAID的支持。然后还需编译并安装
raidtools 软件包。raidtools 是可以初始化、启动、停止

1) 文件
mm: mm-1.1.3.tar.gz
oracle: oracle.8.1.16(第二版)
apache: apache_1.3.12.tar.gz
php: php-4.0.0.tar.gz(正式版)
mode_perl: mod_perl-1.24.tar.gz
perl-DBI: DBI-1.14.tar.gz
DBD-Oracle-1.06.tar.gz
Data-Dumper-2.101.tar.gz
Data-ShowTable-3.3.tar.gz
perl: perl-5.6.0.tar.gz

改为:

Linux 的一些办法。 一、编译选项 “etc/profile”文件含…

解压文件:

// generated by named-bootconf.pl

tar -zxpf 文件名

options { directory “/var/named”; forwarders {202.104.131.98;}; forwards
only; // query-source address * port 53; };

注重:以下所有的预编译和安装必须在要安装的软件目录下

// // a caching only nameserver config // zone “.” in { type hint; file
“named.ca”; };

#) 安装mm
(注:MM可以采用新的算法,来优化系统,还能设置对CPU的支持,推荐安装)
./configure
–disable-shared
–prefix=/usr
make
make test
make install
make clean
(注:make clean在安装完一个模块后,将清除前面的一些设置,防止冲突)

zone “0.0.127.in-addr.arpa” in { type master; file “named.local”; };

#) ORACLE的安装
因为ORACLE的安装过为复杂,很难一笔带过,下一次会有一篇专门的文档来介绍ORACLE的安装。

编辑文件 /etc/resolv.conf

#) apache 的预编译

改为: search langoit.com.cn nameserver 202.104.131.98 nameserver
202.96.134.133

CC=”egcs”
OPTIM=”-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro
-march=pentiumpro -fomit-frame-pointer -fno-exceptions”
CFLAGS=”-DDYNAMIC_MODULE_LIMIT=0″
./configure
–prefix=/apache

优化linux 内核:

#) php的预编译

删除没有的rpm 包:

CC=”egcs”
OPTIM=”-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro
-march=pentiumpro -fomit-frame-pointer -fno-exceptions”
./configure

首先要停止正在运行的进程

cd /etc/rc.d/init.d

./sendmail stop ./apmd stop ./kudzu stop

rpm -e –nodeps sendmail kudzu nfs-utils

编辑文件 /usr/src/linux/include/linux/tasks.h

编辑第十四行 (vi +14 ) :

NR_TASKS 5120 —> 3072 MIN_TASKS_LEFT_FOR_ROOT 16 —> 24

编辑文件 /usr/src/linux/Makefile

编辑第十八行 (vi +18 ) :

HOSTCC =gcc —> HOSTCC =egcs

编辑第二十五行 (vi +25 ) :

CC =$(CROSS_COMPILE)gcc -D__KERNEL__ -I$(HPATH) —> CC
=$(CROSS_COMPILE)egcs -D__KERNEL__ -I$(HPATH)

编辑第九十行 (vi +90 ) :

CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer —>
CFLAGS = -Wall -Wstrict-prototypes -O9 -funroll-loops -ffast-math
-malign-double -mcpu= pentiumpro -march=pentiumpro -fomit-frame-pointer
-fno-exceptions

编辑第十九行 (vi +19 ) :

HOSTCFLAGS =-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer —>
HOSTCFLAGS =-Wall -Wstrict-prototypes -O9 -funroll-loops -ffast-math
-malign-double -mcpu= pentiumpro -march=pentiumpro -fomit-frame-pointer
-fno-exceptions

设置内核:

make xconfig

具体可自己根据系统来设置

在 /usr/src/linux/ 目录下

make dep make clean make bzlilo make modules make modules_install

4.安装和优化mm,mysql,apache,php,phpMyAdmin,perl,mode_perl

1) 文件 mm: mm-1.1.3.tar.gz mysql: mysql-3.22.32.tar.gz apache:
apache_1.3.12.tar.gz php: php-4.0.0.2.0.5.tar.gz phpMyAdmin:
phpMyAdmin_2.0.5.tar.gz mode_perl: mod_perl-1.24.tar.gz perl-DBI:
DBI-1.14.tar.gz DBD-Oracle-1.06.tar.gz Msql-Mysql-modules-1.2214.tar.gz
Data-Dumper-2.101.tar.gz Data-ShowTable-3.3.tar.gz eperl:
eperl-2.2.14.tar.gz perl: perl-5.6.0.tar.gz

解压文件:

tar -zxpf 文件名

注意:以下所有的预编译和安装必须在要安装的软件目录下

#) 安装mm ./configure / –disable-shared / –prefix=/usr make make test
make install make clean

#) mysql的安装和配置

#) mysql的预编译

CC=”egcs” / OPTIM=”-O9 -funroll-loops -ffast-math -malign-double
-mcpu=pentiumpro / -march=pentiumpro -fomit-frame-pointer
-fno-exceptions” / ./configure / –prefix=/mysql /

#) 安装mysql

make make install make clean

#) 配置mysql

/mysql/bin/mysql_install_db

初始化数据库

cp /mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysql cd
/etc/rc.d/rc3.d ln -s ../init.d/mysql S70mysql

系统启动时加载mysql

#) apache 的预编译

CC=”egcs” / OPTIM=”-O9 -funroll-loops -ffast-math -malign-double
-mcpu=pentiumpro / -march=pentiump

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图