在windows下玩apache php不能不知的几个小设置

作者 : admin 于 2009年06月10日, 17:09:26
2009
06-10

1、PHPIniDir “D:\PHP5″

这样不用每次都把php.ini拷贝到C:\Windows下

2、set Path=D:\PHP5;D:\PHP5\ext;%Path%

这样不用每次把那些dll拷贝到C:\Windows\system32下

限制apache http线程的带宽

作者 : admin 于 2009年05月29日, 12:09:15
2009
05-29

最近带宽告急,原因是我做了几个开源软件的下载,结果带宽持续飙升,已经到了IDC给我的限度,所以在apache上增加了mod_bw模块(mod_bandwidth).

下载 mod_bw 的源代码 http://www.ivn.cl/apache/files/source/mod_bw-0.8.tgz

解压后,执行 apxs -i -a -c mod_bw.c

貌似自动就加到httpd.conf文件里。

如果不是自动的,就手工拷贝 mod_bw.so 到 apache module目录,httpd.conf 里增加 LoadModule bw_module modules/mod_bw.so

在虚拟主机里增加如下配置文件

  1. BandWidthModule On             #打开带宽限制功能
  2. ForceBandWidthModule On     #强制带宽限制
  3. BandWidth all 102400            #强制100KB
  4. MinBandWidth all -1

具体的配置文档可以看这里

mod_bw-08

我的apache配置-mpm

作者 : admin 于 2009年05月28日, 23:13:29
2009
05-28
  1. <ifmodule mpm_prefork_module>
  2.     StartServers              2
  3.     MinSpareServers         5
  4.     MaxSpareServers        10
  5.     MaxClients                 128
  6.     MaxRequestsPerChild    5000
  7. </ifmodule>

这个配置基本支撑http的访问,几个博客,一个论坛,还有一个哥们很大的静态并发。

以前使用的是work方式,因为不太了解,经常造成进程崩溃,又切换到了prefork方式,这次调整的比较稳定了。

wordpress在不同webserver下的重写规则和配置

作者 : admin 于 2009年04月07日, 21:22:07
2009
04-7

apache下

  1. #.htaccess
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule . /index.php [L]
  7. #httpd.conf
  8. Options ExecCGI FollowSymLinks
  9. AllowOverride All
  10. Order allow,deny
  11. allow from all

nginx下

  1. #nginx.conf
  2. location / {
  3.         if (!-f $request_filename){
  4.             rewrite (.*) /index.php;
  5.         }
  6.     }

还是Nginx对抗负载的能力强

作者 : admin 于 2009年04月07日, 14:45:11
2009
04-7

编译了老半天的apache,又做了很多调整和优化,依然抗不住死机,其实负载也不是很大,但内存CPU就是出奇的高,无奈,装上nginx,负载一下子下来了。

顺便提一下,我PC级的服务器。

感谢  http://www.51fit.com/ 友情提供测试数据

计划重新部署apache,调整工作模式。

使用APACHE代理功能加速网通电信互联收看《丑女无敌》

作者 : admin 于 2009年02月02日, 23:26:33
2009
02-2

e4b891e5a5b3e697a0e6958ce7acac2e5ada3-1内人要看金鹰网的《丑女无敌》,无奈其服务器为电信线路,我们北京网通线路浏览非常慢,肉眼就能看见侦数。

起初想做个vpn,登陆到服务器上,走电信网关,但linux在配置vpn时候内核编译死活不能成功,暂时放弃这个计划,想其他方法。

本以为web播放走流媒体的相关协议,后尝试使用流媒体下载工具,始终没能把文件扒下来,后被逼急,又想入侵其服务器。

扫描了端口,发现其服务器只开21 80端口了,非常诡异,正常的流媒体不走这两个端口的,后抓包发现,web播放器中请求服务器其实是走的HTTP协议

  1. GET /HttpServer/jinying/电视剧下载/丑女无敌第二季/第四集.wmv?SessionID=75440406108580700-17&ServerIP=222.246.135.168&ServiceType=1&ContentID=6754 HTTP/1.1
  2. Host:222.246.135.168
  3. Accept:*/*
  4. User-Agent:Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)
  5. Connection:close
  6. Range:bytes=5444743-5969030         #524287
  7. ConnectId:22455
  8. CheckTag:34275a1d57f84c60b5ccf8519cad6908
  9. UserAgent:PowerStream 1.0.5.5507

页面每隔一段时间去请求一段数据,然后浏览器中的播放器去处理这些数据,转换为影音。

既然是走http,那可以直接用apache做一个代理,我直接把本地的http请求通过亦庄网通的服务器转发,而亦庄虽然是网通机房,但访问电信的速度确比我高的多,这样就实现了网通高速收看电信的节目。

虽然稍卡(码率比较大),但基本达到了顺利观看的水平。

sunboyu-amp-fastcgi-suexec-v22-alpha 发布

作者 : admin 于 2008年12月20日, 15:06:03
2008
12-20

Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.2

1、增加了m4-1.4.9

2、增加了autoconf-2.62

这两个包在安装eaccelerator-0.9.5.2的时候使用

3、增加了PHP –with-mcrypt 参数

4、增加了PHP –enable-sockets 参数

sunboyu-amp-fastcgi-suexec-v22-alpha

Windows下安装Apache,Mysql,PHP过程详解

作者 : admin 于 2008年12月04日, 09:40:14
2008
12-4

原则:使用官方程序,完全自己配置,不使用其他辅助工具套件等。

准备:

apache2.2.*   http://httpd.apache.org/download.cgi   如果有stable版本,最好用stable版,其实最新版作为调试也不错

PHP5.2.*  http://www.php.net/downloads.php  目前是5.2.6

mysql5.1  http://dev.mysql.com/downloads/mysql/5.1.html  下载windows安装版本

1、安装Apache,安装路径随意,默认即可,手工管理更好,建议放到 d:\Apache 放D盘是为了以后重装的话,所有的配置文件都还在(备份不仅要备份数据,还要备份不起眼的配置文件)

2、安装Mysql,同上,安装到 D:\Mysql  理由同上

3、解压PHP5.2.×至目录 D:\PHP5 理由还是同上

4、配置环境变量:在桌面上找到“我的电脑”,右键点击“我的电脑”,选择“属性”里的“高级”标签,点击“环境变量”,在“系统变量”里找到“Path”,点击“编辑”按钮,在“变量值”后面加上“;D:\PHP5\;D:\PHP5\ext”,然后点“确定”退出。环境变量配置完成。(windows下Path环境变量是做什么用,google一下先,这样设置后,系统会自动搜索PHP目录里的可执行文件和加载类库)

5、进入PHP5目录下,找到php.ini-dist文件,将其复制到C盘的WINDOWS目录下,并将其文件名修改为“php.ini”。(php会默认从这个路径找php.ini这个文件,当然也可以手工指定这个目录,修改apache的配置文件即可)

6、再次进入PHP5目录下,将以下文件复制到C盘的WINDOWS目录下的System32里:(原因,我也不太清楚,但貌似可以设置一个环境变量指向这个路径就ok,那个方法一直没找到,也没理解)
fdftk.dll
gds32.dll
libeay32.dll
libmcrypt.dll
libmhash.dll
libmysql.dll
msql.dll
news.txt
ntwdblib.dll

7、打开Apache的主目录,进入conf文件夹,找到“httpd.conf”文件,为操作方便起见,建议使用Dreamweaver打开它。打开后在第126行左右找到 LoadModule vhost_alias_module modules/mod_vhost_alias.so,在后面添加以下语句:
LoadModule php5_module “D:/PHP5/php5apache2_2_filter.dll
“AddType application/x-httpd-php .php
添加完成后保存文件。

8、在apache主目录下htdocs下创建index.php文件,内容为<?php phpinfo(); ?>保存。

9、在浏览器的地址栏里输入http://127.0.0.1/index.php。即可打开显示PHP信息的页面。配置成功。

给APACHE增加mod_perl,使其支持perl脚本编写的程序

作者 : admin 于 2008年11月21日, 16:59:14
2008
11-21

老样子,下载 perl-5.8.8.tar.gz mod_perl-2.0-current.tar.gz perlinfo.zip
wget http://www.sunboyu.cn/sourse/perl-5.8.8.tar.gz
wget http://www.sunboyu.cn/sourse/mod_perl-2.0-current.tar.gz
wget http://www.sunboyu.cn/sourse/perlinfo.zip

tar -zxvf perl-5.8.8.tar.gz
tar -zxvf mod_perl-2.0-current.tar.gz
tar -zxvf perl-5.8.8.tar.gz

先安装perl ./Configure -h 看帮助吧,忘了
在安装 mod_perl #perl Makefile.PL WITH_APXS=/opt/httpd-2.2.9/bin/apxs
如果报错,看看帮助,得加几个参数
然后修改 httpd.conf ,增加 LoadModule perl_module modules/mod_perl.so
最后在虚拟目录里增加

  1. <location /cgi-bin>
  2.   SetHandler perl-script
  3.   PerlResponseHandler ModPerl::Registry
  4.   Options +ExecCGI
  5.   PerlOptions +ParseHeaders
  6.   PerlOptions +SetupEnv
  7. </location>

然后把perlinfo.zip里那个探针放在cgi-bin目录下,访问一下,如果显示相关信息,证明配置成功。
费了半天劲,就为了用一个awstats。
突发奇想,是不是把python和ruby也配置上?

linux_apache_php_mysql_fcgid_suexec_高效安全的主机配置方案

作者 : admin 于 2008年11月08日, 22:35:05
2008
11-8

linux+apache+php+mysql+fcgid+suexec 高效安全主机配置

最近一直在研究web服务器的配置和安全配置,基本搞完了
window2003下
iis+php(isapi)
apache+php(mod)
linux下
apache+php(mod)
apache+php(fastcgi)
四种安装方式的安全设置。其中涉及一些性能方面的调整,但没有实际的环境来测试,所以只涉及方法,不涉及具体的应用,而在安全方面下了很大的功夫。
底下我针对比较复杂的一种安装模式apache+php(fastcgi)进行详细讲解,来介绍如何配置一个安全的虚拟主机系统。

调试环境:

CentOS5
Apache2.2.9
Mysql5.0.22
PHP5.2.6
Fcgid2.4.6

需要的脚本  sunboyu-amp-fastcgi-suexec-v20-alpha

首先用脚本 unboyu-amp-fastcgi-v20-fcgid-suexec-alpha.txt 进行安装。
注:我在我的服务器上做了一个源,如果你感觉较慢的话,可以先吧软件下载到本地,然后修改一下脚本进行安装。

整体运行完后,apache是能成功运行的,但访问的话显示权限错误,底下主要是配置权限
过程用命令来显示,比较符合技术人员的习惯
1、vi /opt/httpd-2.2.9/conf/httpd.conf

修改 User daemon
Group daemon
为 User apache
Group apache

去掉 #Include conf/extra/httpd-vhosts.conf 前边的#,使其生效

2、增加一个虚拟站点的账户

groupadd www
useradd -g www www

现在应该有个目录 /home/www

3、vi /opt/httpd-2.2.9/conf/extra/httpd-vhost.conf

屏蔽或直接删除原来的站点信息
SuexecUserGroup www www #这里一定要弄清楚是做什么用的
ServerAdmin sunboyu@gmail.com
DocumentRoot “/home/www/php-cgi”
ServerName 192.168.0.5 #我测试的ip是这个,实际应该为你的域名
ServerAlias www.dummy-host.example.com #别名
ErrorLog “logs/dummy-host.example.com-error_log” #日志,用独立的名字
CustomLog “logs/dummy-host.example.com-access_log” common

SetHandler fcgid-script #我在编译完apache,附加了两个模块,fastcgi和fcgid,后一个是国人开发的,比fastcgi更稳定和易用
FCGIWrapper /home/www/php/php-cgi .php # php-cgi 是站点下的一个文件,下边建立
Options ExecCGI
allow from all
然后: x 即可

4、建立脚本 /home/www/php/php-cgi

vi /home/www/php/php-cgi
内容为
#!/bin/sh
export PHPRC=/home/www/php-cgi
export PHP_FCGI_CHILDREN=5 #创建的fcgi进程
export PHP_FCGI_MAX_REQUESTS=5000 #最大连接数
/opt/php-5.2.6/bin/php-cgi #php-cgi程序的位置

: x

5、创建独立的php.ini配置文件
cp /opt/php-5.2.6/lib/php.ini /home/www/php-cgi/php.ini

6、修改PHP的open_basedir

在/home/www/php-cgi/php.ini中找到
open_basedir , 修改为
open_basedir = /home/www/php
注:safe_mode_exec_dir 之类的参数如果从比较变态的安全设置来说,也是应该来设定的,但我还不变态

7、配置权限
chgrp root /opt/httpd-2.2.9/bin/suexec
chmod 4751 /opt/httpd-2.2.9/bin/suexec
chown www:www -R /home/www
chmod 755 -R /home/www
chmod 700 -R /home/www/php-cgi/php-cgi

8、重启
server httpd restart

9、如果你能看到成功页面,然后就传一个PHP木马上去测试一下权限和安全的问题.
如果连启动都启动不了,那就得查httpd的error_log ,suexec_log,然后去google一下,看看是哪的权限问题。

总结:本人教懒,整个过程调通后,也没写文档,但看到网上此类资料不多,而且有一些都没有命中要害,比如一些权限的配置和相对详尽的说明。我的注释只是把一些网上没有的解释而我弄明白后的理解写在了上边,但真正要想明白,估计还得搬着手册和google去一条条查。而且,我不是边做边写的,而是根据原来的配置盲写了一遍,估计会不少错误,总比没有强。如果有谁发现这个安全依然有问题,可以帮我提出,因为在安全方面我对自己要求很高。
如果有什么需要讨论的,可以加入这个MSN群 lampper@live.cn (加为msn好友即可)

 Page 1 of 2  1  2 »