#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/' target='_blank'>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;\" style=\"background-image: none; border-right- 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"15\" border=\"0\" alt=\"15\" src=\"/uploads/allimg/111020/0102426332-14.jpg\" width=\"638\" height=\"532\" />
#chown –R root . (再给mysql这个目录root完全的权限)
#chown –R mysql data (给mysql用户这个目录下data目录的权限)
#bin/mysqld_safe -user=mysql & (后台运行MySQL, &表示在后台运行,结果如下图)
650) this.width=650;\" style=\"background-image: none; border-right- 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"16\" border=\"0\" alt=\"16\" src=\"/uploads/allimg/111020/010242M40-15.jpg\" width=\"645\" height=\"73\" />
#bin/mysqladmin –u root password wishes (将管理mysql的管理员密码设置成wishes)
#bin/mysql –u root –p (用mysql的管理员账户登录mysql管理平台,下图为管理界面,输入q退出)
650) this.width=650;\" style=\"background-image: none; border-right- 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"17\" border=\"0\" alt=\"17\" src=\"/uploads/allimg/111020/0102425026-16.jpg\" width=\"651\" height=\"179\" />
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;\" style=\"background-image: none; border-right- 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"18\" border=\"0\" alt=\"18\" src=\"http://files.blogcn.com/wp04/M00/00/2B/wKgKDU24DJ8AAAAAAABQjnciCiA974.jpg\" width=\"638\" height=\"281\" />
出现这个界面表示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;\" style=\"background-image: none; border-right- 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"19\" border=\"0\" alt=\"19\" src=\"/uploads/allimg/111020/0102421V8-18.jpg\" width=\"643\" height=\"395\" />
这里仅仅显示了一部分,后面还有很多,在这里就不详细描述了。如果整合不成功,是不能显示这个页面的。确认整合成功后,我们需要加强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.html' target='_blank'>setup命令打开配置表单,选择Firewall Configuration,到里面选择打开防火墙,并选择下面的Customize,按下图配置即可: