Debian 6.0 + PHP 5.2.17 (FastCGI) 编译参数

作者:reistlin 发布时间:May 3, 2011 分类:原创文章

作者: reistlin
来源: http://www.reistlin.com/blog/302
更新时间: 2011.05
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

debian.gif

一,环境:

Debian 6.0.1
PHP 5.2.17 (php-5.2.17.tar.gz)
PHP-FPM 5.2.17 (php-5.2.17-fpm-0.5.14.diff.gz)

用户信息:

用户:www-data
组:www-data
主目录:/home/www-data

目录结构:

app:应用程序安装目录
pkgs:源代码包目录
pkgs/build:源代码包编译目录

阅读剩余部分...

Nginx Http Proxy 代理服务器配置

作者:reistlin 发布时间:April 28, 2011 分类:原创文章

作者: reistlin
来源: http://www.reistlin.com/blog/301
更新时间: 2011.04
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

nginx

配置 Nginx Http Proxy 代理服务器,与 [Squid] 功能一样,适用于正向代理 Http 网站。

一,Nginx 正向代理配置文件:

server {
    resolver 8.8.8.8;
    resolver_timeout 5s;
 
    listen 0.0.0.0:8080;
 
    access_log  /home/reistlin/logs/proxy.access.log;
    error_log   /home/reistlin/logs/proxy.error.log;
 
    location / {
        proxy_pass $scheme://$host$request_uri;
        proxy_set_header Host $http_host;
 
        proxy_buffers 256 4k;
        proxy_max_temp_file_size 0;
 
        proxy_connect_timeout 30;
 
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 301 1h;
        proxy_cache_valid any 1m;
    }
}

二,Nginx 正向代理配置说明:

1,配置 DNS 解析 IP 地址,比如 Google Public DNS,以及超时时间(5秒)。

resolver 8.8.8.8;
resolver_timeout 5s;

2,配置正向代理参数,均是由 Nginx 变量组成。其中 proxy_set_header 部分的配置,是为了解决如果 URL 中带 "."(点)后 Nginx 503 错误。

proxy_pass $scheme://$host$request_uri;
proxy_set_header Host $http_host;

3,配置缓存大小,关闭磁盘缓存读写减少I/O,以及代理连接超时时间。

proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
proxy_connect_timeout 30;

4,配置代理服务器 Http 状态缓存时间。

proxy_cache_valid 200 302 10m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;

三,不支持代理 Https 网站

因为 Nginx 不支持 CONNECT,所以无法正向代理 Https 网站(网上银行,Gmail)。
如果访问 Https 网站,比如:https://www.google.com,Nginx access.log 日志如下:

"CONNECT www.google.com:443 HTTP/1.1" 400

Linux SSH DenyUsers

作者:reistlin 发布时间:April 27, 2011 分类:自由点击

linux

1,配置文件:/etc/ssh/sshd_config(拒绝用户 user1 user2 登陆;拒绝组 group1 group2 登陆)

vim /etc/ssh/sshd_config
 
DenyUsers user1 user2
DenyGroups group1 group2

2,重新启动 sshd 服务

/etc/init.d/sshd restart

Nginx Error: 413 Request Entity Too Large

作者:reistlin 发布时间:April 16, 2011 分类:自由点击

nginx

问题:

nginx error – 413 Request Entity Too Large

解决:

1,在 nginx.conf 配置文件中:client_max_body_size 8M;

vim /etc/nginx/sites-available/reistlin.com
 
server {
 
client_max_body_size 8M;
 
}

2,重新启动 nginx 服务

/etc/init.d/nginx reload

Apache v1.3 启用 Mod_Rewrite

作者:reistlin 发布时间:April 16, 2011 分类:自由点击

linux

1. 编译:

./configure –prefix=/home/apache \
–enable-module=so \
–enable-module=rewrite \
–activate-module=src/modules/fastcgi/libfastcgi.a

2. 配置:

vi /home/apache/conf/httpd.conf

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
 
<IfModule mod_rewrite.c>
 
RewriteEngine On
RewriteLog /home/apache/logs/rewrite_log
RewriteLogLevel 0
 
</IfModule>

3. 测试:

重新启动Apache

/etc/init.d/httpd restart

检查Apache静态编译模块

/home/apache/bin/httpd -l

libssh2 collect2: ld returned 1 exit status

作者:reistlin 发布时间:April 12, 2011 分类:自由点击

linux

环境:

Debian 6 zlib-1.2.5 openssl-1.0.0d libssh2-1.2.8

问题:

错误信息:

collect2: ld returned 1 exit status
[scp_nonblock] Error 1
[all-recursive] Error 1

collect2: ld returned 1 exit status
make[2]: *** [scp_nonblock] Error 1
make[2]: Leaving directory `/home/www-data/pkgs/build/libssh2-1.2.8/example''
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/www-data/pkgs/build/libssh2-1.2.8/example''
make: *** [all-recursive] Error 1

解决:

编译参数(+):LDFLAGS=-ldl

./configure --with-openssl --with-libssl-prefix=/usr/local/ssl/ LDFLAGS=-ldl

make clean
 
./configure --with-openssl --with-libssl-prefix=/usr/local/ssl/ LDFLAGS=-ldl
 
configure: summary of build options:
 
  version:          -
  Host type:        i686-pc-linux-gnu
  Install prefix:   /usr/local
  Compiler:         gcc
  Compiler flags:   -g -O2
  Library types:    Shared=yes, Static=yes
  Crypto library:   openssl: yes (AES-CTR: no) libgcrypt: no
  Debug build:      no
  Path to sshd:     /usr/sbin/sshd (only for self-tests)
  libz compression: yes
 
make
make install

libpng configure: error: zlib not installed

作者:reistlin 发布时间:April 7, 2011 分类:自由点击

linux

环境:

Debian 6 zlib-1.2.5 libpng-1.4.4

zlib-1.2.5 安装路径:$HOME/lib/zlib-1.2.5
(ln -s $HOME/lib/zlib-1.2.5 $HOME/lib/zlib)

libpng-1.4.4 安装路径:$HOME/lib/libpng-1.4.4
(ln -s $HOME/lib/libpng-1.4.4 $HOME/lib/libpng)

问题:

checking for zlibVersion in -lz... no
configure: error: zlib not installed

分析:

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor

解决:

export LDFLAGS="-L $HOME/lib/zlib/lib"
export CPPFLAGS="-I $HOME/lib/zlib/include"

./configure --prefix=$HOME/lib/libpng-1.4.4
make
make install

Redhat Enterprise Linux AS NFS 配置

作者:reistlin 发布时间:March 24, 2011 分类:原创文章

作者: reistlin
来源: http://www.reistlin.com/blog/199
更新时间: 2011.03
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

redhat

1,安装 nfs,portmap 服务:

rpm -ivh nfs-utils-1.0.9-42.el5.i386.rpm nfs-utils-lib-1.0.8-7.6.el5.i386.rpm system-config-nfs-1.3.23-1.el5.noarch.rpm portmap-4.0-65.2.2.1.i386.rpm

2,配置 nfs 目录,权限:/etc/exports

可以通过配置 nfs 目录权限来进行访问控制,包括来源,目录,读写权限。

reistlin:~# vim /etc/exports
 
/home/nfs/public *(ro)
/home/nfs/domain *.reistlin.com(ro,async)
/home/nfs/backup reistlin(rw,async)

配置说明:

所有用户可以访问 /home/nfs/public 目录(只读);
来自 *.reistlin.com 域的用户可以访问 /home/nfs/domain 目录(只读);
用户 reistlin 可以访问 /home/nfs/backup 目录(读写)。

建议通过映射 UID 和 GID 的方法来设置权限:

anonuid=xxx
将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)

anongid=xxx
将远程访问的所有用户组都映射为匿名用户组,并指定该匿名用户组为本地用户组(GID=xxx)

3,配置 nfs 协议端口:/etc/sysconfig/nfs

因为 rpc 服务,mount TCP/UDP 端口都是随机的,所以会导致默认配置的 nfs 服务器,通过防火墙时无法进行正常挂载,导致 mount 失败(随机端口无法配置防火墙访问策略)

reistlin:~# vim /etc/sysconfig/nfs
 
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662

版本区别:

如果是 RHEL 5.x 版本,请直接修改 /etc/sysconfig/nfs 将里面的上述内容注释掉,重新启动NFS服务。

如果是 RHEL 4.x 版本,默认没有此文件,所以,请创建一个 nfs 配置文件放到 /etc/sysconfig 目录下。

4,启动 nfs 服务:nfs,portmap

reistlin:~# /etc/init.d/portmap start
Starting portmap:                                          [  OK  ]
 
reistlin:~# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]

Debian Linux Apache2 HTTPS/SSL + SVN 配置

作者:reistlin 发布时间:March 23, 2011 分类:原创文章

作者: reistlin
来源: http://www.reistlin.com/blog/197
更新时间: 2009.12
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

debian.gif

一,环境:

Debian Liunx(5.x / 6.x) + apache2(2.2.16)+ HTTPS/SSL + Subversion(1.6.12)

二,配置:

1,安装 apache2,openssl

reistlin:~# apt-get install apache2 openssl

2,创建 ssl 目录,用于存放 ssl pem 证书文件

reistlin:~# mkdir -p /etc/apache2/ssl

3,创建 ssl 证书(svn.pem),保存到 ssl 目录(/etc/apache2/ssl)

-days 365 证书有效时间为一年,可根据需求自定义。

reistlin:~# RANDFILE=/dev/random openssl req $@ -new -x509 -days 365 -nodes \
-out /etc/apache2/ssl/svn.pem \
-keyout /etc/apache2/ssl/svn.pem

阅读剩余部分...

Debian Linux Apache2 + SVN 配置

作者:reistlin 发布时间:March 22, 2011 分类:原创文章

作者: reistlin
来源: http://www.reistlin.com/blog/195
更新时间: 2009.12
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

debian.gif

一,环境:

Debian Liunx(5.x / 6.x) + apache2(2.2.16)+ Subversion(1.6.12)

二,配置:

1,apt-get 安装 apache2, openssl(https) 和 svn

reistlin:~# apt-get install apache2 apache2-mpm-worker openssl subversion libapache2-svn

2,新建 svn 目录(/home/svn),配置目录所有者(www-data)以及权限

reistlin:~# mkdir /home/svn
reistlin:~# chown www-data:www-data -R /home/svn/
reistlin:~# chmod 770 -R /home/svn/

3,创建 svn 用户密码配置文件:/etc/apache2/dav_svn.passwd

reistlin:~# /usr/bin/htpasswd -c /etc/apache2/dav_svn.passwd admin
New password:
Re-type new password:
Adding password for user admin

密码文件默认加密方法:CRYPT encryption,密码文件格式:用户名:密码
基于安全考虑,建议加密方法使用 SHA encryption:htpasswd -s 用户名

阅读剩余部分...