概述
(要自已编义安排下面软件,先用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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复