江湖过客 大约9小时前 平静 的说 不想睡觉啊   demon13 大约10小时前 平静 的说 突然,不知不觉,我已抽完我所有的烟   angellover08 大约10小时前 平静 的说 突然,好想来一根烟   维以不永伤 大约14小时前 无聊 的说 无聊中发烧 这都可以   zdk6105 大约17小时前 高兴 的说 哈哈哈,偶遇知己,欣喜无比   zhouchunyan 大约17小时前 平静 的说 算了,保持心情平静~~~~~~~   zdk6105 大约20小时前 无聊 的说 这个周末真无聊,明天又开始上班了,怎么比在山里还寂寞?   wxhua5 大约21小时前 高兴 的说 哈哈这个啊,好玩,社区加油啊   zdk6105 大约22小时前 高兴 的说 月下听蝉,不错,我记住了   王子的微笑 大约23小时前 平静 的说 感冒了,难受啊   [查看全部 203 条唧唧歪歪...]


打印

[LINUX] [LINUX]编译安装apache+php+mysql+mod_security

[LINUX]编译安装apache+php+mysql+mod_security

  #############
版权说明:
作者:hew 主页:http://www.linuxsky.net
本文章可以任意转载,但请注明作者和出处,谢谢
#############
系统平台:maigic linux 2.0 rc1, magic linux 是中国linux公社开发一个社区版本linux,magic linux重点在于完美的中文桌面,所以如果诸位要做服务器的可以选择debian,redhat,suse等版本,个人推荐cenots 是rhel as 系列的免费实现 。
下载:
apache2
http://www.apache.org/dist/httpd/httpd-2.0.55.tar.bz2
mysql4:
http://mysql.oss.eznetsols.org/D ... mysql-4.1.15.tar.gz
php4:
http://cn.php.net/distributions/php-4.4.1.tar.bz2

mod_security
http://www.modsecurity.org/download/modsecurity-apache-1.9.tar.gz
mysql 安装:
$ tar zxvf mysql-4.1.15.tar.gz
$ cd mysql-4.1.15
#  groupadd mysql
# useradd -g mysql mysql
# ./configure --prefix=/usr/local/mysql
# make
# make install
# cp support-files/my-medium.cnf /etc/my.cnf
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql
# chown -R root  .
# chown -R mysql var
# chgrp -R mysql .
# bin/mysqld_safe --user=mysql &

apache 2 安装:

$ tar jxvf  httpd-2.0.55.tar.bz2
$ cd httpd-2.055
$ vi config.sh 写入内容如下:
复制内容到剪贴板
代码:
#!/bin/bash
HTTPD_ROOT="/apache2"
./configure --prefix=$HTTPD_ROOT \
      --enable-so  \
      --enable-rewrite  \
      --enable-info  \
      --enable-cgid   \
      --enable-mime-magic  \
      --enable-alias  \
      --enable-access  \
      --enable-deflate \
      --enable-forward
# sh config.sh
上面过程等同于直接
./configure --prefix=/apache2
      --enable-so  \
      --enable-rewrite  \
      --enable-info  \
      --enable-cgid   \
      --enable-mime-magic  \
      --enable-alias  \
      --enable-access  \
      --enable-deflate \
      --enable-forward
写一个config.sh 只是个人习惯方便今后查看和升级再编译。
# make
# make install

安装php4
$ tar jxvf php-4.4.1.tar.bz2
$ cd php-4.4.1
$ vi config.sh 写入内容:
复制内容到剪贴板
代码:
#!/bin/bash

PHP_ROOT=/apache2
./configure --prefix=$PHP_ROOT \
   --with-apxs2=$PHP_ROOT/bin/apxs \
   --with-mysql \
   --enable-ftp \
   --enable-zip \
   --enable-mbstring \
   --enable-mbregex \
   --enable-calendar \
   --enable-curl \
   --disable-debug  \
   --enable-inline-optimization -q \
   --with-jpeg \
   --with-png \
   --enable-thread-safety \
   --enable-ctype \
   --with-bz \
   --with-zlib \
   --with-gd \
   --with-kerberos \
   --with-gettext \
   --enable-force-cgi-redirect
$ make
# make install

安装modsecurity(mod_security 可以加强apache的安全性特别是在防sql 注入上有很好的效果。):
$ tar zxvf modsecurity-apache-1.9.tar.gz
$ cd modsecurity-apache-1.9/apache2/
$ /apache2/bin/apxs -cia mod_security.c     

配置:
1.编辑/etc/my.cnf
去掉[mysqld]段skip-networking这句的注释,这样mysql只能从本机连接,有助提高安全性。

2.编辑/apache/conf/httpd.conf
修改ServerAdmin you@example.com 将后面的mail 地址改为服务器管理员地址。
增加一个php 文件配置
AddType application/x-httpd-php .php
在DirectoryIndex 后增加一个 index.php
增加deflate 配置信息
复制内容到剪贴板
代码:
<Location />
# Insert filter
SetOutputFilter DEFLATE

# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won&#39;t work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Don&#39;t compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary

# Make sure proxies don&#39;t deliver the wrong content
#Header append Vary User-Agent env=!dont-vary
</Location>

DeflateFilterNote ratio
LogFormat &#39;"%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" (%{ratio}n)&#39; deflate

CustomLog logs/deflate_log deflate
添加一段mod_security的配置文件
复制内容到剪贴板
代码:
<IfModule mod_security.c>
SecFilterEngine On
SecFilterCheckURLEncoding On
SecFilterDefaultAction "deny,log,status:500"
#SecFilterForceByteRange 32 126
#SecFilterScanPOST On
SecAuditLog logs/audit_log
###
SecFilter "\.\./"
#####
SecFilter /etc/*passwd
SecFilter /bin/*sh

#for css attack
SecFilter "<( | )*script"
SecFilter "<(.| )+>"
#for sql attack
SecFilter "delete[ ]+from"
SecFilter "insert[ ]+into"
SecFilter "select.+from"
SecFilter "union[ ]+from"
SecFilter "drop[ ]"
</IfModule>
测试:
在/apache2/htdocs 创建文件test.php 内容为:
复制内容到剪贴板
代码:
<?php
echo phpinfo();
?>
在浏览器中打开 http://127.0.0.1/test.php 如果你能看到 phpinfo 界面那么恭喜一切搞定。 :em03:

注:安装时请注意你是否已安装了足够的开发工具和库文件,如果安装失败请仔细检查configure.log。同时也要注意新版本Linux中SELinux 的限制,最简单办法是关闭SELinux,如果想自己定制请参考以下下文档:
Red Hat SELinux Guide
http://www.linuxsky.net/down/rhel/docs/rhel-selg-en-4/

其他在我服务器上使用的mod 介绍
Bandwidth Module 官方网站: http://www.ivn.cl/apache/
这是一个带宽限制工具可以针对虚拟主机或目录做限制。

mod_limitipconn  官方网站: http://dominia.org/djao/
这个是一个针对目录的进程限制工具,这个mod 需要设置 “ExtendedStatus On“

Zend Optimizer官方主页: http://www.zend.com
大名鼎鼎的Zend Optimizer就不多说了,下载: http://downloads.zend.com/optimizer/2.5.10/

TOP

做服务器...

信息学院得服务器现在还用的是win2k.毛病多多,无语...
迷茫ing...Linux Blog                  RS小组

TOP