我是靠谱客的博主 饱满短靴,最近开发中收集的这篇文章主要介绍apache,php, mysql, php加速, mod_evasive防ddos for linux,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(要自已编义安排下面软件,先用rpm -q 软件,如果以有,要先删除 rpm -e --nodeps 软件)

1
MySQL]
# cd /home/tmp (进入压缩包所在目录)
# groupadd mysql (如果还没有建立mysql组)
# useradd -g mysql mysql (如果还没有在mysql组中建立mysql用户)
# tar -zxvf mysql-5.0.37.tar.gz (解压mysql源码,bz2压缩包请用“tar -jvxf 文件名”指令)
# cd mysql-5.0.37 (进入解压目录)
# ./configure --prefix=/usr/local/mysql5 (prefix参数指明mysql安装目录)
(如果出现这个configure: error: No curses/termcap library found错误 加上 ./configure --with-named-curses-libs=/usr/lib/libncursesw.so.5就行)

# make
# make install
# /usr/local/mysql5/bin/mysql_install_db --user=mysql (初始化数据库)

 

# cp support-files/my-medium.cnf /etc/my.cnf (复制mysql配置文档到/etc目录)
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 700 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld

# cd /usr/local/mysql5 (进入mysql安装目录)
# chown -R root .     (不要漏了后面的“.”)
# chown -R mysql var (如果有些权限提示问题,注意此项权限)
# chgrp -R mysql .    (不要漏了后面的“.”)

# /usr/local/mysql5/bin/mysqld_safe --user=mysql & (启动mysql,出现mysqld ended时点击回车,回到命令行)
# /usr/local/mysql5/bin/mysqladmin -u root password 123456 第一次设密码
{############################
1.这是没启动mysql的守护进程,执行service mysql start就行了(不成功)

出现Starting MySQL.Manager of pid-file quit without updating fi[FAILED]的报错
打开/etc/selinux/config把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器后问题就得以解决。(我解决问题)

2.mysql5.1.30  初次启动会出现Starting MySQL.Manager of pid-file quit without updating fi[FAILED]的报错,需要注释/etc/my.cnf里的skip-federated注释掉即#skip-federated就OK了!
####################}


2
安装gdbm-1.8.3.tar.gz 来支持apache支持rewrite攻能的模块
tar -zxvf gdbm-1.8.3.tar.gz 过入目录
./configure --prefix=/usr/local/gdbm
make
make install

3
tar -zxvf apache1.34.tar.gz
  mv apache1.34 apache
cd apache
  ./configure --prefix=/usr/local/apache --enable-module=rewrite --enable-shared=max --enable-module=so
   #这里我们通过enable-module参数告诉设置脚本,我们需要启动so和rewrite模块,enable-shared=max 这个参数的作用时编译apache时,把    除了so以外的所有apache的标准模块都编译成DSO模块。而不是编译进apache核心内
  make
  make install 
  安装apache至/usr/local/apache --enable-module=so并配置apache支持dso方式
  
4
php
  
  tar -zxvf php-5.0.4.tar.gz
  mv php-5.0.4 php
  cd php
  ./configure --prefix=/usr/local/php5 --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib {--enable-track-vars --with-xml} --with-mysql=/usr/local/mysql5
  make
  make install
  其中apache和mysql是根据你安装的目录名变,我的是 =/usr/local/apache2/bin/apxs 和MySQL
  
    cp php/php.ini-dist /usr/local/lib/php.ini

   以dso方式安装php至/usr/local/php 设置配置文件目录为/usr/local/lib 开启mysql,xml支持


5
.配置  
  vi /usr/local/apache/conf/httpd.conf
  对apache做如下配置
  #将ServerAdmin mailto:linux@linuxidc.com一行改为您的邮箱地址 

  #DocumentRoot "/home/httpd/html/" 此处为html文件主目录  
  # 同上  
  #Options FollowSymLinks MultiViews 为安全起见,去掉"Indexes"   
  #
      DirectoryIndex default.php default.phtml default.php3 default.html default.htm
  #
  #设置apache的默认文件名次序  
      AddType application/x-httpd-php .php .phtml .php3 .inc
     AddType application/x-httpd-php-source .phps
  #设置php文件后缀  
  存盘退出   
  vi /usr/local/lib/php.ini
  #register-golbals = On  (默认是off,可以不用设置比较安全)
  存盘退出


启动服务 及其他可能出现要处理的。
  /usr/local/apache/bin/apachectl start


6
    eAccelerator(eacc)安装配置:eAccelerator 可以明显降低CPU和内存等资源占用
    使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍
  
a) 安装
   先去eAccelerator官方下载最新版的源码包:eaccelerator-0.9.5.1.tar
   #tar -zxvf tar zxvf eaccelerator-0.9.5.1.tar
   #cd eaccelerator-0.9.5.1
   #export PHP_PREFIX="/usr/local/php" (把PHP安装目录导入到环境变量)
   #$PHP_PREFIX/bin/phpize
   #./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
   #make
   #make install、
b) ini文件配置
   安装完成,开始配置php.ini文件,eAccelerator提供了两种配置和调用方式,分别如下。
   安装为 Zend extension 模式:
   zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
   注:模块的具体位置(根据自已的系统路径而定);
   eaccelerator.shm_size="16" 注:共享内存大小;
   eaccelerator.cache_dir="/home/eaccelerator" 注:缓存目录;
   eaccelerator.enable="1"
   eaccelerator.optimizer="1"
   eaccelerator.check_mtime="1"
   eaccelerator.debug="0"
   eaccelerator.log_file = "/var/log/eaccelerator_log"
   eaccelerator.filter=""

# mkdir /home/eaccelerator
# chmod 777 /home/eaccelerator
注:创建缓存目录池,权限是777

7
     mod_evasive防ddos攻击模块安装配置
对于Apache 1.x 请用下面的编译方法( mod_evasive.c(Apache 1.x用之)  mod_evasive20.c (Apache 2.x用之))

   #tar zxvf mod_evasive_1.10.1.tar.gz
   #cd mod_evasive
   #/usr/sbin/apxs -iac mod_evasive.c

   httpd.conf 会有这段
   LoadModule evasive_module     libexec/mod_evasive.so

Apache v1.x 版本中,要加入;

<IfModule mod_evasive.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
</IfModule>

如果您不知道把这些插入到哪,用下面的办法做也是可以的;

   在/etc目录中创建一个文件,比如mod_evasive.conf;
   #touch /etc/mod_evasive.conf
   然后把根据自己的Apache版本来加入相应的内容;
   接着我们再修改 httpd.conf ,在最后一行加入
   Include /etc/mod_evasive.conf


   对mod_evasive测试验证 ;

   a)防DDOS的模块做好后,我们可以要验证,可以用Apache 自带的ab工具,比如;

   #/usr/local/apache/bin/ab -n 1000 -c 50 http://www.google.com:80/

   注:上面的例子的意思是,如果您的服务器是google的WEB服务器,我们要发送数据请求包,总共1000个,每次并发50个;

   b)另外一个测试工具就是mod_evasive的解压包的目录中,有个test.pl ,你可以修改IP地址,然后用

   #perl test.pl

是不是有效果,请根据 ab工具或 测试脚本出来的结果来查看;

因为我们编译mod_evasive时,用的是默认配置,所以日志被存放在/tmp目录中。如果有DDOS攻击,会在/tmp产生日志。日志的文件是以 dos-开头的;


   mod_evasive 的高级配置;

   如果想更改一些适合自己的参数,有些必要的参数,并不是通过配置文件修改就一下起作用的,我们要修改源码包中的;
   mod_evasive.c

   #define DEFAULT_HASH_TBL_SIZE   3097ul  // Default hash table size
   #define DEFAULT_PAGE_COUNT      2       // Default maximum page hit count per interval
   #define DEFAULT_SITE_COUNT      50      // Default maximum site hit count per interval
   #define DEFAULT_PAGE_INTERVAL   1       // Default 1 Second page interval
   #define DEFAULT_SITE_INTERVAL   1       // Default 1 Second site interval
   #define DEFAULT_BLOCKING_PERIOD 10      // Default for Detected IPs; blocked for 10 seconds
   #define DEFAULT_LOG_DIR         "/tmp"  // Default temp directory

   比如修改日志存放目录,就把/tmp改成别的目录。
   如果您在这里更改了参数,不要忘记修改Apache 配置文件中关于mod_evasive 的参数/etc/mod_evasive.conf;

   如果您想加入一些其它的参数,请查阅源码包中的README.

 

8
取得最新版本的 perl,
  tar -zxvf stable.tar.gz
   在目录 perl-5.6.0 下安装 perl:
  rm -f config.sh Policy.sh
  sh Configure -de
  make
  make test
  make install
  config.sh Policy.sh 为以前安装时的配置文件,新安装或升级安装时需要将其删除。
  sh Configure -de 安装使用默认配置,一般而言将会ok 。
  安装完成后 perl 所在目录为 /usr/local/lib/perl5, perl 执行文件在 /usr/local/bin 中


9
以上服务安装后常用的命令及修改设置方法:

mysql设置密码和修改密码:
/usr/local/mysql/bin/mysqladmin -u root password 123456 第一次设密码。
mysqladmin -u root -p password mypasswd 修改密码
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。

 

mysqladmin -u <username> -p flush-tables(出现table is only read时用这个 数据库权限变成700 归属mysql用户)

就是mysql5导出的有default-charact的设置,mysql4不支持,需要加skip-opt参数,如:
mysqldump -uroot -p --default-character-set=gbk -skip-opt databse > hx.sql

一般的数据导出用 mysqldump -uroot -p密码 database > database.sql //导出数据。

mysqldump -uroot -p密码 --opt 数据名 表名 > /home/2009_5_29.sql 备份数据中的表

mysqldump -uroot -p密码 --databases 数据名1 数据名2 > /home/2009_5_29.sql 备份都个数据库

mysql -u root -p book <book.sql //其中book为数据库

 

数据结构和内容还是有问题,用myisamchk查


       cd /path/apache/src/modules/standard/
-------/usr/local/apache/bin/apxs -i -a -c mod_rewrite.c
或用--/usr/local/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.so

gcc -shared -o mod_rewrite.so mod_rewrite.lo
gcc -shared -o mod_rewrite.so mod_rewrite.lo -lgdbm


./configure --prefix=/usr/local/apache --enable-module=shared --enable-spling=shared --enable-shared=max --enable-module=so (apache 是2.0时的规则)

apache动态加载模块:
如加载mod_vhost_alias.c
进入/path/apache/src/modules/standard/
方法:使用/usr/local/apache/bin/apxs –i –a –c 模块名称.c 即可生成.so文件
拷到/usr/local/apache/libexec/下即可,并在apache主配文件中添加。
格式:LoadModule foo_module libexec/mod_foo.so
参数含义:
--enable-so:激活动态加载模块功能(这是apache要加载动态模块的先前要加的规则)


myisamchk

使用myisamchk必须暂时停止MySQL服务器。例如,我们要检修discuz数据库。执行以下操作:

# service mysql stop (停止MySQL);
# myisamchk -r /var/lib/mysql/discuz/*MYI
# service mysql start
myisamchk会自动检查并修复数据表中的索引错误。

 

设置apache开机启动输入
ln -s /server/apache/bin/apachectl /etc/rc3.d/S80apache
ln -s /server/apache/bin/apachectl /etc/rc5.d/S80apache
ln -s /server/apache/bin/apachectl /etc/rc0.d/K80apache
ln -s /server/apache/bin/apachectl /etc/rc6.d/K80apache
解释:/server/apache/    是apache的安装路径
     /etc/rc3.d/S80apache   把文件S80apache放入目录/etc/rc3.d中
     S   开始的意思就是start
     K   停止
     80  端口

另一种办法
echo "/usr/local/apache/bin/apachectl start" >>/etc/rc.local 设置开机启动

    grep -v "#" /usr/local/apache/bin/apachectl > /etc/init.d/apache
  用vi编辑Apache服务控制脚本/etc/init.d/apache:
    vi /etc/init.d/apache
  在文件最前面插入下面的行,使其支持chkconfig命令:
    #!/bin/sh
  # chkconfig: 2345 85 15
  # description: Apache is a World Wide Web server.
  保存后退出vi编辑器,执行下面的命令增加Apache服务控制脚本执行权限:
    chmod +x /etc/init.d/apache
  执行下面的命令将Apache服务加入到系统服务:
    chkconfig --add apache
  执行下面的命令检查Apache服务是否已经生效:
    chkconfig --list apache

 

最后

以上就是饱满短靴为你收集整理的apache,php, mysql, php加速, mod_evasive防ddos for linux的全部内容,希望文章能够帮你解决apache,php, mysql, php加速, mod_evasive防ddos for linux所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部