Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

编译安装apache+php+mysql+mod_security

[复制链接]
hew 发表于 2005-11-21 14:26:10 | 显示全部楼层 |阅读模式
#############
版权说明:
作者: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/Downloads/MySQL-4.1/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 写入内容如下:

  1. #!/bin/bash
  2. HTTPD_ROOT="/apache2"
  3. ./configure --prefix=$HTTPD_ROOT \
  4.         --enable-so  \
  5.         --enable-rewrite   \
  6.         --enable-info   \
  7.         --enable-cgid    \
  8.         --enable-mime-magic  \
  9.         --enable-alias  \
  10.         --enable-access  \
  11.         --enable-deflate \
  12.         --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 写入内容:

  1. #!/bin/bash

  2. PHP_ROOT=/apache2
  3. ./configure --prefix=$PHP_ROOT \
  4.     --with-apxs2=$PHP_ROOT/bin/apxs \
  5.     --with-mysql \
  6.     --enable-ftp \
  7.     --enable-zip \
  8.     --enable-mbstring \
  9.     --enable-mbregex \
  10.     --enable-calendar \
  11.     --enable-curl \
  12.     --disable-debug  \
  13.     --enable-inline-optimization -q \
  14.     --with-jpeg \
  15.     --with-png \
  16.     --enable-thread-safety \
  17.     --enable-ctype \
  18.     --with-bz \
  19.     --with-zlib \
  20.     --with-gd \
  21.     --with-kerberos \
  22.     --with-gettext \
  23.     --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 配置信息

  1. <Location />
  2. # Insert filter
  3. SetOutputFilter DEFLATE

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

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

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

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

  14. # Don't compress images
  15. SetEnvIfNoCase Request_URI \
  16. \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary

  17. # Make sure proxies don't deliver the wrong content
  18. #Header append Vary User-Agent env=!dont-vary
  19. </Location>

  20. DeflateFilterNote ratio
  21. LogFormat '"%v %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" (%{ratio}n)' deflate

  22. CustomLog logs/deflate_log deflate
复制代码

添加一段mod_security的配置文件

  1. <IfModule mod_security.c>
  2. SecFilterEngine On
  3. SecFilterCheckURLEncoding On
  4. SecFilterDefaultAction "deny,log,status:500"
  5. #SecFilterForceByteRange 32 126
  6. #SecFilterScanPOST On
  7. SecAuditLog logs/audit_log
  8. ###
  9. SecFilter "\.\./"
  10. #####
  11. SecFilter /etc/*passwd
  12. SecFilter /bin/*sh

  13. #for css attack
  14. SecFilter "<( | )*script"
  15. SecFilter "<(.| )+>"
  16. #for sql attack
  17. SecFilter "delete[ ]+from"
  18. SecFilter "insert[ ]+into"
  19. SecFilter "select.+from"
  20. SecFilter "union[ ]+from"
  21. SecFilter "drop[ ]"
  22. </IfModule>
复制代码


测试:
在/apache2/htdocs 创建文件test.php 内容为:
  1. <?php
  2. echo phpinfo();
  3. ?>
复制代码


在浏览器中打开 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/
j9595 发表于 2006-1-7 05:42:31 | 显示全部楼层
回复

使用道具 举报

 楼主| hew 发表于 2006-1-8 16:52:35 | 显示全部楼层
总算有人支持我的文章了 T-T
回复

使用道具 举报

xuzhoujs 发表于 2007-10-31 20:12:25 | 显示全部楼层
喜欢喜欢
回复

使用道具 举报

dongshanmu 发表于 2007-12-2 15:45:50 | 显示全部楼层
有人吗 为什么这步进行不下去啊
回复

使用道具 举报

dongshanmu 发表于 2007-12-2 15:46:13 | 显示全部楼层
# cp support-files/my-medium.cnf /etc/my.cnf
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-20 04:20 , Processed in 0.025067 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表