有一朋友liunx主机配置php的gd库未支持jpeg,需要重新编译支持jpeg,
凭经验用
./configure –with-gd –with-jpeg-dir=/usr/lib
这个居然不起作用
改变顺序如下生效
./configure –with-jpeg-dir=/usr/lib –with-gd
在此谨记!
有一朋友liunx主机配置php的gd库未支持jpeg,需要重新编译支持jpeg,
凭经验用
./configure –with-gd –with-jpeg-dir=/usr/lib
这个居然不起作用
改变顺序如下生效
./configure –with-jpeg-dir=/usr/lib –with-gd
在此谨记!
http://www.ninjasys.co.uk/linux/using-curl-to-check-if-a-page-is-gzippedcompressed/
方法如下
curl -I -H 'Accept-Encoding: gzip,deflate' -H "Host:域名" http://ip/url
如果结果是
HTTP/1.1 200 OK
Server: nginx/0.8.52
Date: Tue, 05 Jul 2011 01:28:30 GMT
Content-Type: application/x-javascript
Last-Modified: Tue, 10 Aug 2010 00:33:24 GMT
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 04 Aug 2011 01:28:30 GMT
Cache-Control: max-age=2592000
Content-Encoding: gzip 很好支持
如果没有 Content-Encoding: gzip 就不支持gzip
tail -f /var/log/secure 以确定具体是否是因为pam登陆验证的问题
最近一朋友的centos apache 2.2 发现大量的ip 出现 time_wait 显现
即 netstat -an | grep “:80” 的结果大量显现 time_wait
初期以为是 被Ddos 了,后发现即使是就一个ip访问,也产生大量time_wait
遂修改 apache 配置文件 httpd.conf
KeepAlive On
MaxKeepAliveRequests 120
KeepAliveTimeout 15
观察后问题解决
for srv in acpid anacron atd auditd autofs avahi-daemon bluetooth cpuspeed crond cups firstboot gpm haldaemon hidd hplip irqbalance isdn kudzu lm_sensors mcstrans mdmonitor messagebus microcode_ctl netfs nfslock pcscd portmap rawdevices readahead_early restorecond rpcgssd rpcidmapd sendmail setroubleshoot smartd snmpd xfs xinetd yum-updatesd
do
chkconfig $srv off
service $srv stop
done
有颜色部分是需要根据情况修改的
1.安装包
yum -y install ppp
yum -y install pptp
2.配置文件
vi /etc/ppp/chap-secrets
——————————————
# Secrets for authentication using CHAP
# client server secret IP addresses
username myvpn “password” *
——————————————
vi /etc/ppp/peers/myvpn
——————————————
# written by pptpsetup
pty “pptp vpnserverip –nolaunchpppd”
lock
#noauth
nobsdcomp
nodeflate
name username
remotename myvpn
ipparam myvpn
require-mppe-128
refuse-pap
refuse-chap
refuse-eap
refuse-mschap
——————————————
3.复制命令
cp /usr/share/doc/ppp-2.4.4/scripts/pon /usr/sbin/
cp /usr/share/doc/ppp-2.4.4/scripts/poff /usr/sbin/
chmod +x /usr/sbin/pon /usr/sbin/poff
4.拨vpn
pon myvpn
5)ifconfig 看ppp0
pptp 如果 yum 安装不了,可以到 rpmfind.net 去查
http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=pptp&field[]=1&field[]=2
6.断开连接
poff myvpn
昨日一个客户的IBM x3650 m2 7947 上安装 Centos 4.8 发现无法使用网络 ifconfig 显示 lo ,无eth0 和 eth1 ,
此机器板载 Broadcom (R) NetXtreme II (TM) 网卡2块,
解决方法如下:
到 www.ibm.com 英文网站下Support & downloads 根据型号下载 for redhat 4 的驱动和固件升级程序
Broadcom NetXtreme and NetXtreme II Firmware Update Utility v2.1.1b for Linux 04 Dec 2009 v2.1.1b
Broadcom (bnx2) NetXtreme II driver v1.9.20b for Red Hat Enterprise Linux 4 (32-bit and 64-bit) 02 Sep 2009 vbnx2-1.9.20b
首先安装固件升级程序 方法是
chmod +x brcm_fw_nic_2.1.1b_linux_32-64.bin
./brcm_fw_nic_2.1.1b_linux_32-64.bin -s
然后根据情况去安装 driver ,有可能无需安装,因为 centos 4.8 似乎也有类似驱动
############################################## #version="20100718" #author="phpsir" #author_email="[email protected]" #QQ 733905 ############################################## maxnum=100 runmin_max=120 #runmin_max is run iptables -F timeout banip_data_file="/root/banip_data.txt" ipopenfile="/root/openip.txt" ipfile="/tmp/80link.txt" nsfile="/tmp/netstat80.txt" myip=`/sbin/ifconfig eth0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .` if [ ! -f $ipopenfile ] then echo "init $ipopenfile" touch $ipopenfile fi if [ -f $banip_data_file ] then source $banip_data_file echo "last runtime=$runtime" else echo "init $banip_data_file" echo 'runtime='`date "+%s"` > $banip_data_file source $banip_data_file runmin_max=-1 fi echo "start shell" `date "+%Y-%m-%d %H:%M:%S"` runmin=$((`date "+%s"`-$runtime)) if [ $runmin -gt $runmin_max ] then echo $runmin "is bigger than " $runmin_max echo "clear ips" /sbin/iptables -F echo 'runtime='`date "+%s"` > $banip_data_file else echo $runmin "is lowwer than " $runmin_max fi netstat -an | grep "$myip:80" > $nsfile echo "Total Links = " `cat $nsfile | wc -l ` echo "Total Links ESTABLISHED = " `cat $nsfile | grep ESTABLISHED | wc -l ` echo "Total Links SYNC = " `cat $nsfile | grep SYN | wc -l ` cat $nsfile | sed "s/::ffff://g" | awk '{print $5}' | awk -F: '{print $1}' | sort|uniq -c|sort -rn | head -n 10 > $ipfile cat $ipfile | while read oneline do ip=`echo $oneline | cut -d " " -f 2` num=`echo $oneline | cut -d " " -f 1` str="$ip has linked $num " banme="yes" for allowip in `cat $ipopenfile` do echo $ip | grep $allowip > /dev/null if [ $? -eq 0 ] then banme="no" echo $allowip "banme = " $banme /sbin/iptables -D INPUT -p tcp -s $ip -d $myip --dport 80 -j REJECT > /dev/null 2>&1 continue fi done if [ $banme = "yes" ] then if [ $num -gt "$maxnum" ] then /sbin/iptables -L -n | grep "$ip" >/dev/null status=`echo $?` if [ $status -eq 1 ] then echo "deny $ip ,because $str " /sbin/iptables -A INPUT -p tcp -s $ip -d $myip --dport 80 -j REJECT echo "BAN " $ip " OK " #/sbin/iptables -L -n | grep "$ip" else echo > /dev/null #echo "$str alread reject" fi else echo > /dev/null #echo "$str $ip ok ,less $maxnum " fi fi done echo "stop shell" `date "+%Y-%m-%d %H:%M:%S"`
“lighttpd -D -f lighttpd.conf 这个作为 daemontools的 run 配置文件”
参考文档:
http://redmine.lighttpd.net/projects/lighttpd/wiki/LighttpdUnderSupervise
脚本如下:
mkdir -p /srv/lighttpd/log/main/
vi /srv/lighttpd/run
#! /bin/sh
exec 2>&1
exec lighttpd -D -f $PATHTO/lighttpd.conf
vi /srv/lighttpd/log/run
#! /bin/sh
umask 0027
exec setuidgid nobody multilog ./main
chown nobody /srv/lighttpd/log/main
最后
ln -s /srv/lighttpd /service/
等待5秒左右就可以看到 lighttpd 启动了
以下均为Linux 平台配置
1. 首先假设你已经可以使 nginx + php 在 fastcgi 模式下运行 (如果不会,请参考nginx 资料)
2. 安装djb daemontools
脚本如下
mkdir -p /package
chmod 1755 /package/
cd /package/
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar xzf daemontools-0.76.tar.gz
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
cd admin/daemontools-0.76
patch -p1 < ../../daemontools-0.76.errno.patch
rm ../../daemontools-0.76.errno.patch ../../daemontools-0.76.tar.gz
./package/install
3. 配置 nginx在 daemontools下运行
脚本如下
修改nginx.conf 加入 daemon off; (在 worker_processes 前面!!)
mkdir -p /srv/nginx
vi /srv/nginx/run 内容为
#!/bin/sh
exec /usr/local/nginx/sbin/nginx
4. php fastcgi 在 daemontools 下运行 (最关键的 -n )
#! /bin/sh
exec /usr/local/lighttpd/bin/spawn-fcgi -n -a 127.0.0.1 -p 9999 -C 30 -u nobody -g nobody -f /usr/local/php/bin/php-cgi
5. 配置svscan 监控
ln -s /srv/nginx /service
ln -s /srv/phpfcgi /service
手动停止 你的 nginx 和 php-cgi 进程看看,是不是 php-cgi 和 nginx 自动启动了。呵呵
6. 学习如何手动停止 nginx 和 php-cgi
svc -d /service/nginx 停止 nginx
svc -u /service/nginx 启动 nginx
svc -d /service/phpfcgi 停止phpfcgi
svc -u /service/phpfcgi 启动phpfcgi
That’s all !
补充,php 可以打 fpm补丁后不用此方法