日期:2012-04-03 01:36:00  来源:本站整理

freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+避免ddos +傻瓜式ports安装法[服务器安全]

赞助商链接



  本文“freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+避免ddos +傻瓜式ports安装法[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

前言
1. 看了张宴的《linux版本的Nginx 0.5.33 + PHP 5.2.5》后,即刻找了一台服务器测试了一下,然后加了一个线上的discuz的论坛跑了一下,性能非常的出色,感慨搜遍整个互联网,就是 nginx+php唯一的一篇文档.关于他的文档,我认为:写的非常专业,关于php extensions库也解析的非常透彻.但是一篇专业的文档,也存在一些专业带来的麻烦,就是起点有点高,假定要更新里面的软件包和定义自己的目录,势 必必要一点崎岖.别的不知道为什么,近来网站老是打不开.情急之下,小弟重新写了一篇freebsd下面的傻瓜式安装文档.
2. 又结合了平常的一些经验,趁便把若何防卸ddos,并通过对系统的优化,若何来进一步提高nginx的并发数做 一些详解.
3. 由于个人本领有限,错误的地方,还请读者谅解

1、安装软件前的预备
系统的安装:插入freebsd6.2以上的光盘,最小化安装系统,同时安装好ports
2、手动安装nginx+php
1) 进入系统后,预备cvs更新:
1. cd /usr/ports/net/cvsup-without-gui
2. cp /usr/share/examples/cvsup/ports-supfile /etc/ports-supfile
3. # vi /etc/ports-supfile
将此中的#*default host=CHANGE_THIS.FreeBSD.org一行改成
*default host=cvsup4.FreeBSDchina.org
4. 更新ports
/usr/local/bin/cvsup -g -L 2 /etc/ports-supfile
2) 安装mysql
#cd /usr/ports/databases/mysql51-server
#make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean
#cp /usr/local/share/mysql/my-large.cnf /usr/local/etc/my.cnf ##mysql的优化参数,也可以手动改正
#rehash
# mysql_install_db –user=mysql ##初始化mysql
#/usr/local/bin/mysqld_safe & ##启动mysql
#/usr/local/bin/mysqladmin -u root password ‘newpass’ ##改正root密码,newpass是你需求改的密码
关闭mysql可以利用mysqladmin -uroot -p shutdown
3) 安装php
#cd /usr/ports/lang/php5
#make config ##配置编译参数
[X] CLI Build CLI version
[X] CGI Build CGI version
[ ] APACHE Build Apache module
[ ] DEBUG Enable debug
[X]] SUHOSIN Enable Suhosin protection system
[X] MULTIBYTE Enable zend multibyte support
[ ] IPV6 Enable ipv6 support
[ ] REDIRECT Enable force-cgi-redirect support (CGI only)
[ ] DISCARD Enable discard-path support (CGI only)
[X] FASTCGI Enable fastcgi support (CGI only)
[X] PATHINFO Enable path-info-check support (CGI only)
#make install clean
# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini ##cp php.ini配置文件
4) 安装php5-extensions
# cd /usr/ports/lang/php5-extensions/
#make config
Options for php5-extensions 1.1
————————————————-
[X] CURL CURL support
[X] FTP FTP support
[X] GD
[X] GETTEXT
[X] MBSTRING multibyte string support
[X] MCRYPT Encryption support
[X] MYSQL
[X] PCRE Perl Compatible Regular Expression support
[ ] POSIX //去掉.
[ ] SQLITE //去掉.
[X] ZIP ZIP support
[X] ZLIB
# make install clean
5) 安装Zend Optimizer
#cd /usr/ports/devel/ZendOptimizer/
#make #不要安装,只需求下载解包
#cd /usr/ports/devel/ZendOptimizer/work/ZendOptimizer-*
#./install-tty ##会呈现一个文字的安装界面,只是最后一步,不要挑选apache便可以了
#vi /usr/local/etc/php.ini #插入zend的途径,普通来说,上面的安装会自动加入下面的文字,假定没有,请手动增添.

[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

小提醒:安装zend,在freebsd下面,目前只有支持到 php5.1.x,关于php5.2.x还不能支持,因为zend还没有为php5.2.x开辟版本,在网上查了好多关于办理此类的问题,但得到的后果 是,zend可以顺利安装,phpinfo也显示zend正常了,但程序无法调用,即zend没有工作,也就是目前无法办理,我想只有等到zend php5.2.x的版本后,才可以办理此问题,也但愿哪位已包办理此类问题的兄弟,share一下你的经验.假定你非要利用zend,那就请你将php降 到5.1.x,大概你不当心已经进级了ports,那倡议你可以安装php4.x,毕竟目前php4.x还通用于大部份的环境
6) 安装nginx
#cd /usr/ports/www/nginx/
#make install
7) 安装lighttpd,为了得到fastcgi
# cd /usr/ports/www/lighttpd/
#make install
#rehash
 配置nginx
#user nobody
删除前面的注释#,改成 user www
#log_format main ‘$remote_addr – $remote_user [$time_local] ‘
# ‘”$request” $status $body_bytes_sent ‘
# ‘”$http_referer” “$http_user_agent”‘;
log_format main ‘$remote_addr – $remote_user [$time_local] ‘
‘”$request” $status $body_bytes_sent ‘
‘”$http_referer” “$http_user_agent”‘;
##以上步骤,为了可以正常解析log的pv,hits,拜候量,才设定的,默许的log格局,是无法精确解析出所需求的后果

location / {
root /usr/local/www/nginx;
index index.html index.htm;
}
在index.html前面增添一个index.php
location / {
root /data/web/www.jk0086.com/htdocs;
index index.php index.html index.htm;
}
#location ~ \.php$ {
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script.name;
# include fastcgi_params;
#}
将前面的#去掉,改正成
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/etc/nginx$fastcgi_script.name;
include fastcgi_params;
}
##去掉注释,其实就是激活了nginx的fastcgi功效,也阐明了nginx本身就已经预备用于fastcgi的环境中

9) 配置spawn-fcgi,就是一个启动fastcgi号令,使得nginx可以通过9000端口拜候(纯粹个人理解-_-)
参数阐明:监听127.0.0.1的9000端口,进程数为64(假如服务器内存小于3GB,可以只开启25个进程),用户为www
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -C 64 -f /usr/local/bin/php-cgi
10) 这边请注意启动次序,先启动fastcgi,再启动nginx
Nginx.conf由于常常需求改正,即常常需求重启nginx,因此这边写了一个启动脚本,请查看:
#!/usr/local/bin/bash
case $1 in
start)
/usr/local/sbin/nginx
;;
stop)
killall -9 nginx
;;
test)
nginx -t -c /usr/local/etc/nginx/nginx.conf
;;
restart)
ps auxww | grep nginx | grep master | awk ‘{print $2}’ | xargs kill -HUP
;;
show)
ps -aux|grep nginx
;;
esac
保存为nginx.sh利用办法为:
nginx.sh start #启动nginx
nginx.sh stop #终止nginx
nginx.sh restart #重启nginx
nginx.sh test #测试nginx.conf的精确性
11) 安装phpMyAdmin
#cd /usr/ports/databases/phpmyadmin
#make install
#mv /usr/local/www/phpmyadmin /data/web/ www.jk0086.com/htdocs/
#cd /data/web/www.jk0086.com/htdocs/phpmyadmin
#vi config.inc.php ##这边要阐明一下,freebsd默许安装的phpmyadmin,里面配置文件有问题,需求手动改正,请改正成以下内容:

/* $Id: config.sample.inc.php 9689 2006-11-10 20:05:49Z nijel $ */

// vim: expandtab sw=4 ts=4 sts=4:

/**

* phpMyAdmin sample configuration, you can use it as base for

* manual configuration. For easier setup you can use scripts/setup.php

*

* All directives are explained in Documentation.html and on phpMyAdmin

* wiki .

*/

/*

* This is needed for cookie based authentication to encrypt password in

* cookie

*/

$cfg['blowfish_secret'] = ‘asdf:LKJ’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/*

* Servers configuration

*/

$i = 0;

/*

* First server

*/

$i++;

/* Authentication type */

$cfg['Servers'][$i]['auth_type'] = ‘cookie’;

/* Server parameters */

$cfg['Servers'][$i]['host'] = ‘localhost’;

$cfg['Servers'][$i]['connect_type'] = ‘tcp’;

$cfg['Servers'][$i]['compress'] = false;

/* Select mysqli if your server has it */

$cfg['Servers'][$i]['extension'] = ‘mysql’;

/* User for advanced features */

// $cfg['Servers'][$i]['controluser'] = ‘pam’;

// $cfg['Servers'][$i]['controlpass'] = ‘pampasswd’;

/* Advanced phpMyAdmin features */

// $cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;

// $cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;

// $cfg['Servers'][$i]['relation'] = ‘pma_relation’;

// $cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;

// $cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;

// $cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;

// $cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;

// $cfg['Servers'][$i]['history'] = ‘pma_history’;

// $cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;

/*

* End of servers configuration

*/

/*

* Directories for saving/loading files from server

*/

$cfg['UploadDir'] = &rdquo
  以上是“freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+避免ddos +傻瓜式ports安装法[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • FreeBSD快速卸载PHP及其扩大的办法
  • Freebsd 8.0上架设PXE Boot及CloneZilla
  • Ubuntu 10.10安装免费网络电视FreetuxTV
  • freebsd+nginx+php+mysql+zend+phpmyadmin+系统优化+避免ddos +傻瓜式ports安装法
  • VirtualBox安装FreeBSD
  • 基于FreeBSD 8.0 Ports配置nginx+php+mysql高性能web平台
  • 在FreeBSD下安装mysql5的注意点
  • 改正FreeBSD默许的shell
  • 用jfreechart来生成统计图表
  • 用JFreeChart成立基于Web的图表
  • Java程序顶用JFreeChart制作图形报表
  • 操纵JFreeChart成立图象
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .