LAMP的详细配置(包括详细的Linux配置,适用Discuz! 环境)#S#

安装Linux

? 安装是在虚拟机上完成的,安装的版本是RedHat Enterprise 5.3,具体资源如图:

650) this.width=650;” >

? 光盘启动开始安装,如图:

650) this.width=650;” >

? 选择安装的语言。(注意:如果是安装带图形界面的Linux,这里并不是选择最后的界面的语言,仅仅是安装时候的语言。)

? 选择适当的键盘。(一般我们都选美式键盘)

? 这时需要你输入它的序列号,就好像在装XP,Vista,7的时候一样,不过这个是可以跳过的,而微软的不行。需要解释一下,Linux都是免费的,这里要输入的序列号,是你购买了这个版本服务的凭证。如图:

650) this.width=650;” >

? 如果并不是要升级原有的系统,请选择全新安装;全新安装可以选择选定磁盘上删除所有分区。相当我们在安装windows时,把分区都清除,干干净净的安装。

? 设置网络设备。按图要求,选DHCP或手动设置IP,设置计算机名,网关和DNS。(当然也可以不在这里设置,等到全部安装好后设置,这个和windows的安装非常相似。)

650) this.width=650;” >

? 设置时区

? 设置管理员口令。(这时Linux最重要的口令。)如图:

650) this.width=650;” >

? 安装Linux的软件定制,选择现在定制。由于这次我们只是利用Linux的服务器功能,所以很多包括桌面等各种图形应用都不需要,所以我们只要选择必要的东西即可。【除去所有的“桌面环境”,“应用程序”只保留“基于文本的互联网和编辑器”,“开发”中选择“开发工具”,再从可选软件包中加上所有gcc开头的,如下图,再选上“开发库”,“服务器”全部去除,“基本系统”中只保留“Java”,“基本”和“老的软件支持”。“基本”中可以去除一些没用的东西,“sendmail”建议保留,“语言支持”就保持“中文”和“英文”支持】

650) this.width=650;” >

? 开始自动安装,之前它会检查一下是否有些要安装的软件需要其他软件包支持,如果提示你,就直接选择同意就好了。如图:

650) this.width=650;” >

确认Linux的环境

? 用SSH远程连接Linux服务器,当然这需要你开始就知道你的Linux服务器的IP地址。由于Linux安装好以后防火墙自动开启的原因,默认只开了SSH的22端口允许远程连接。(屏蔽处为上回登录的机器名或IP)如图:

650) this.width=650;” >

? 检查系统是否正常

a. #more /var/log/messages (检查有无系统级错误信息);

b. #dmesg (检查硬件设备是否有错误信息);

c. #ifconfig (检查网卡设置是否正确);

d. #hostname (检查本地计算机名是否正确);

e. #ping news.sina.com.cn (随便ping个网址,确认可以访问Internet,这点不是必须的,ping内网也行)

650) this.width=650;” >

? 通过修改配置文件修改主机名

#hostname 主机名 (这个命令可以临时修改你的主机名,不过重启后失效)

在两个配置文件中修改hostname,最后系统和hostname文件才回都有效

#vi /etc/hosts (这个配置文件是对应网络中用的)

650) this.width=650;” >

#vi /etc/sysconfig/network (这个配置文件是对应本机的)

650) this.width=650;” >

? 在终端字符界面修改其字体和中文字体大小:如图

#vi /etc/sysconfig/i18n

LANG="en_US.UTF-8" LC_CTYPE="zh_CN.UTF-8" LC_TIME="en_US.UTF-8" SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="latarcyrheb-sun16"

650) this.width=650;” >

? 关闭不需要的服务 (由于Linux安装后会启动很多和我们此次配置没关系的服务,开启占资源,也存在安全隐患。类似windows启动了一些多余的服务一样),下面利用ntsysv命令列出启动的服务,如下图,我们只要保留后面的服务,其它服务一律关闭:

#ntsysv

650) this.width=650;” >

atd

crond

irqbalance

microcode_ctl

network

sendmail

sshd

syslog

? 重启系统,那些不必要的服务关闭需要重启后生效。重启的命令也很多,一下几种都可以。

#reboot

#shutdown ?r

#init 6

? 检查安装所需的开发包。利用yum程序来检查一下的开发包是否安装。(以下检查的都是RPM包)

#yum install ntp vim-enhanced vim-common gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel kernel

示例可以看出我的环境哪些包没有安装:

650) this.width=650;” > ? 安装所需的开发包。利用rpm软件来安装这些没有的开发包,相应的开发包都可以在你的RedHat光盘里Server目录下找到,首先利用ssh软件的文件传输功能把这些rpm包都转移到Linux机器的/root/Linux下,这个目录可以随便指定,我用root登录,所以放这个下面方便。其实用rpm ?Uvh可以安装全部包,但有些包有依赖关系,所以建议还是一个个安装。

#rpm ?ivh ntp-4.2.2p1-9.el5.i386.rpm

#rpm ?ivh libtiff-devel-3.8.2-7.el5_2.2.i386.rpm

#rpm ?ivh libpng-devel-1.2.10-7.1.el5_0.1.i386.rpm

#rpm ?ivh libjpeg-devel-6b-37.i386.rpm

#rpm ?ivh freetype-devel-2.2.1-20.el5_2.i386.rpm

? 定时校正服务器时钟,由于国家授时中心的授时服务器并不是总能连的上,所以我选择了64.90.182.55,当然你的服务器必须能上Internet。

#crontab ?e

加入一行:

*/30 * * * * ntpdate 64.90.182.55 (表示服务器每30分钟和授时服务器同步一次时间)

? 编译一些安装所需的源码包(默认所有的二进制包都已经copy到/root/Linux中,默认位置就在此目录中)

a. 安装ZLIB包

#tar xzvf zlib-1.2.3.tar.gz

#cd zlib-1.2.3

#./configure –prefix=/usr/local/zlib

#make

#make install

b. 安装GD2包 (不知道为什么安装GD时,第一次make出错,我再次执行make就对了,奇怪)

#cd ..

#tar xzvf gd-2.0.35.tar.gz

#cd gd-2.0.35

#./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/lib ?-with-png=/usr/lib –with-freetype=/usr/lib

#make

#make install

c. 安装LibXML2包

#cd ..

#tar xzvf libxml2-2.6.19.tar.gz

#cd libxml2-2.6.19

#./configure –prefix=/usr/local/libxml

#make

#make install

d. 安装LibMcrypt包

#cd ..

#tar xzvf libmcrypt-2.5.7.tar.gz

#cd libmcrypt-2.5.7

#./configure –prefix=/usr/local/libmcrypt

#make

#make install

e. Apache日志截断程序

#cd ..

#tar xzvf cronolog-1.7.0-beta.tar.gz

#cd cronolog-1.7.0

#./configure –prefix=/usr/local/cronolog

升级OpenSSL和OpenSSH (为了提高安全性,请下载最新的源码)

a. 升级OpenSSL

#cd ..

#tar xzvf openssl-0.9.8l.tar.gz

#cd openssl-0.9.8l

#./config –prefix=/usr/local/openssl

#make

#make test

#make install

b. 升级OpenSSH

#cd ..

#tar xzvf openssh-5.3p1.tar.gz

#cd openssh-5.3p1

#./configure –prefix=/usr –with-pam –with-zlib –sysconfdir=/etc/ssh –with-ssl-dir=/usr/local/openssl –with-md5-passwords

#make

#make install

c. 修改SSH的配置文件(使用vi来修改配置文件,vi的使用在这里就不作介绍了)

#vi /etc/ssh/sshd_config

v 禁用SSH V1协议

找到:#Protocol 2,1

改为:Protocol 2

v 禁止root直接登录(处于操作容易,可以在全部配置完成后再修改这个选项)

先建立一个普通系统用户(下面的username你可以建任意一个你希望的名字,passwd后面的username是你希望给着个用户设置的密码):

#useradd username

#passwd username

仍然编辑SSHD的那个配置文件然后找到:

#PermitRootLogin yes

改成:

PermitRootLogin no

这个命令使用并重启计算机后,将不能用root通过ssh登录计算机,可以用刚刚创建的那个用户登录,然后通过:$su ? 这个命令,然后输入root的密码来提升权限继续配置。

v 禁用服务器端GSSAPI

继续编辑SSHD的配置文件找到下面两行,并将它们注释掉(注释的意思就是在该行最前面加上#):

GSSAPIAuthentication yes

GSSAPICleanupCredentials yes

v 禁用DNS名称解析

编辑SSHD的配置文件,找到:

#UseDNS yes

改成

UseDNS no

v 禁用客户端GSSAPI

编辑另外一个配置文件:

#vi /etc/ssh/ssh_config

找到:

GSSAPIAuthentication yes

把这行注释掉

v 确认正确后重新启动SSH服务

#service sshd restart (重启SSH服务)

#ssh ?v (确认OpenSSL和OpenSSH的版本正确)

编译安装MySQL,Apache,PHP,ZendOptimizer

? 下载最新版的软件(当然可以从Windows的机器上下,也可以用wget软件在Linux上直接下)

MySQL最新版是mysql-5.1.44-linux-i686-glibc23.tar.gz,点击它即可看到最新版的下载页面

Apache最新版是httpd-2.2.15.tar.gz,点击它即可看到最新版的下载页面:

PHP最新版是php-5.2.13.tar.gz,可以在下面的网址下载(几天前还是11呢,现在就13了,php是更新最快的)

? 安装配置MySQL

#tar xzvf mysql-5.1.41-linux-i686-glibc23.tar.gz

#mv mysql-5.1.41-linux-i686-glibc23 /usr/local/

#ln ?s /usr/local/mysql-5.1.41-linux-i686-glibc23 /usr/local/mysql

#groupadd mysql (建一个mysql的组)

#useradd ?g mysql mysql (建个属于mysql组的用户mysql)

#cd /usr/local/mysql (这步很重要,如果不到此目录下,下面的命令要出错)

#chown ?R mysql . (允许mysql用户完全使用mysql目录,注意root后面是空格加个点)

#chgrp ?R mysql . (允许mysql组可以完全使用mysql目录)

#./scripts/mysql_install_db –user=mysql (MySQL初始化表,结果如下图,注意user前面是两个减号)

650) this.width=650;” >

#chown ?R root . (再给mysql这个目录root完全的权限)

#chown ?R mysql data (给mysql用户这个目录下data目录的权限)

#bin/mysqld_safe -user=mysql & (后台运行MySQL, &表示在后台运行,结果如下图)

650) this.width=650;” >

#bin/mysqladmin ?u root password wishes (将管理mysql的管理员密码设置成wishes)

#bin/mysql ?u root ?p (用mysql的管理员账户登录mysql管理平台,下图为管理界面,输入q退出)

650) this.width=650;” >

MySQL已经配置完成,现在只要在启动文件里下次电脑启动时就会自动让mysql后台启动就可以了。

#echo ‘/usr/local/mysql/bin/mysqld_safe ?user=mysql &’>> /etc/rc.local

? 安装配置Apache

#cd /root/Linux (返回源文件存放的目录)

#tar xzvf httpd-2.2.15.tar.gz (解压Apache的源文件)

#cd httpd-2.2.15

#./configure –prefix=/usr/local/apache –with-included-apr –enable-so –enable-deflate=shared –enable-expires=shared –enable-rewrite=shared –enable-static-support –disable-userdir

(以上是配置Apache,包括安装路径,使用的模块和一些我也不懂的选项)

#make (编译)

#make install (编译连接)

这时Apache的初始配置已经完成,可以通过下面的命令启动Apache,

#/usr/local/apache/bin/apachectl start

注: start可以换成stop或者是restart,表示停止或重启Apache。

运行后可能会提示下面的错误,

httpd: Could not reliable determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

这个错误是需要在配置文件中确定域名,否则通过域名访问会有问题,这个问题在配置好PHP和Zend之后一起配置Apache配置文档的时候再修改。这时Apache应该已经启动了,你可以在有浏览器的机器上输入这台服务器的IP地址来检查Apache是否启动。如图:

650) this.width=650;” >

出现这个界面表示Apache已经启动,如果是“该页无法访问”或者是“域名无法被解析”都表示Apache有问题,没有启动。没有问题的话,把启动Apache的命令也写到启动文件里:

#echo ‘/usr/local/apache/bin/apachectl start’>> /etc/rc.local

安装配置PHP

#cd /root/Linux (返回源代码目录)

#tar xzvf php-5.2.13.tar.gz (解压PHP的源码)

#cd php-5.2.13 (进入PHP目录)

#./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-libxml-dir=/usr/local/libxml –with-gd=/usr/local/gd2 –with-jpeg-dir –with-png-dir –with-bz2 –with-freetype-dir –with-iconv-dir –with-zlib-dir –with-openssl=/usr/local/openssl –with-mcrypt=/usr/local/libmcrypt –enable-soap –enable-gd-native-ttf –enable-ftp –enable-mbstring –enable-exif –disable-ipv6 –disable-cgi –disable-cli

(配置PHP,其中包括PHP将要安装路径和配置文件位置,指定与其配合的MySQL,Apache的路径,还包括一些其他之前安装软件的路径和模块)

#make (编译PHP)

#make install (编译连接PHP,之前可能提示测试,没有必要做)

#mkdir /usr/local/php/etc (新建PHP配置文件目录)

#cp php.ini-dist /usr/local/php/etc/php.ini (拷贝配置文件例子作为PHP的配置文件)

注:PHP配置的时间比较长,建议去上个厕所或者去倒杯咖啡,坐下来慢慢等。

? 配置ZendOptimizer

#cd /root/Linux (返回源代码目录)

#tar xzvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz (解压ZendOptimizer)

#cd ZendOptimizer-3.3.9-linux-glibc23-i386 (进入ZendOptimizer)

#cp data/5_2_x_comp/ZendOptimizer.so /usr/local/php/etc/ (拷贝对应的文件到PHP的配置目录中)

注:之前的ZendOptimizer都是需要安装的,新版的只需要把相对应的配置文件拷贝过去即可,方便很多。在配置完ZendOptimizer后不要重启Apache。

? 整合Apache和PHP

#vi /usr/local/apache/conf/httpd.conf (编辑Apache的配置文件)

找到AddType application/x-gzip .gz .tgz

在该行下面添加一行 AddType application/x-httpd-php .php (记住后面的.php前面是有个空格的)

找到 DirectoryIndex index.html

将该行改为: DirectoryIndex index.html index.htm index.php (确定目录缺省页面,可以按自己要求改成其他的,当然php这个页面是不能少的,并且优先级也是按前后顺序的)

找到 Servername

把后面的域名改成本机的IP地址,后面的端口是缺省的80,当然可以改成你喜欢的port,这就是之前配置Apache出现的那个错误修改的地方。

配置保存后,重启Apache,不过建议最好把计算机重启一下。

Apache的缺省页面是放在htdocs下面的,里面有一个文件是index.html,你会发现这就是之前测试Apache的那个It Works! 你可以新建一个文件:

#vi /usr/local/apache/htdocs/index.php

<?php

phpinfo();

?>

这时你就可以测试你的Apache和PHP有没有整合了。当然不能直接选择本机的IP地址打开,因为按照优先原则,浏览器会先打开index.html,仍然是It Works!要不你就删除index.html,要不你就在浏览器上输完全http://x.x.x.x/index.php,如果整合完全,你将会发现一些PHP的信息,上面有具体的参数,如下图:

650) this.width=650;” >

这里仅仅显示了一部分,后面还有很多,在这里就不详细描述了。如果整合不成功,是不能显示这个页面的。确认整合成功后,我们需要加强PHP的安全性,这时我们要修改一下php.ini:

#vi /usr/local/php/etc/php.ini

找到disable_functions=

在后面加上:

phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,

ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

设置后,会发现打开index.php显示phpinfo就会被提示安全性提高,不能显示。毕竟这里的信息是最全的。

服务器的安全性设置

这里我们简单设置一下,因为对外发布的话,我们只要设置好对外的硬件防火墙即可。本机上通过setup命令打开配置表单,选择Firewall Configuration,到里面选择打开防火墙,并选择下面的Customize,按下图配置即可:

650) this.width=650;” >

L.A.M.P已经配置完成,当然这个配置只是适用Discuz!的Linux环境。Discuz!的配置请参考他们的网站。

切忌贪婪,恨不得一次玩遍所有传说中的好景点,

LAMP的详细配置(包括详细的Linux配置,适用Discuz! 环境)#S#

相关文章:

你感兴趣的文章:

标签云: