Archive for » 10月, 2008 «

星期三, 10月 29th, 2008 | Author: Joshua

此服务器做为SAND BOX使用,要求支持Zend Framework(同样支持大多数PHP DEV的需求).

转载请著名出处http://www.wemvc.com/535.html

作者:Joshua

时间:2008年11月

前提:安装centos 5.1安装时默认配置就好,配置好网卡,安装系统时自订软件,只安装最基本的工具,Development Library、Development Tool、Editor。

相关站点:

PHP

Official Nginx Site

Nginx Wiki

Official PCRE Site

相关软件:

首先我们要看下Zend Framework官方的的需求。

Table A.1. PHP Extensions Used in Zend Framework by Component

Extension Dependency Type Used by Zend Framework Components
apc Hard Zend_Cache_Backend_Apc
bcmath Soft Zend_Locale
bitset Soft Zend_Search_Lucene
bz2
calendar
com_dotnet
ctype Hard Zend_Auth_Adapter_Http
Zend_Gdata
Zend_Http_Client
Zend_Pdf
Zend_Rest_Client
Zend_Rest_Server
Zend_Search_Lucene
Zend_Uri
Zend_Validate
curl Hard Zend_Http_Client_Adapter_Curl
date
dba
dbase
dom Hard Zend_Feed
Zend_Gdata
Zend_Log_Formatter_Xml
Zend_Rest_Server
Zend_Search_Lucene
Zend_Service_Amazon
Zend_Service_Delicious
Zend_Service_Flickr
Zend_Service_Simpy
Zend_Service_Yahoo
Zend_XmlRpc
exif
fbsql
fdf
filter
ftp
gd Hard Zend_Pdf
gettext
gmp
hash Hard Zend_Auth_Adapter_Http
ibm_db2 Hard Zend_Db_Adapter_Db2
iconv Hard Zend_Currency
Zend_Locale_Format
Zend_Mime
Zend_Pdf
Zend_Search_Lucene
Zend_Service_Audioscrobbler
Zend_Service_Flickr
Zend_XmlRpc_Client
imap
informix
interbase Hard Zend_Db_Adapter_Firebird
json Soft Zend_Json
ldap
libxml Hard DOM
SimpleXML
XSLT
mbstring Hard Zend_Feed
mcrypt
memcache Hard Zend_Cache_Backend_Memcached
mhash
mime_magic Hard Zend_Http_Client
ming
msql
mssql
mysql
mysqli Hard Zend_Db_Adapter_Mysqli
ncurses
oci8 Hard Zend_Db_Adapter_Oracle
odbc
openssl
pcntl
pcre Hard Virtually all components
pdo Hard All PDO database adapters
pdo_dblib
pdo_firebird
pdo_mssql Hard Zend_Db_Adapter_Pdo_Mssql
pdo_mysql Hard Zend_Db_Adapter_Pdo_Mysql
pdo_oci Hard Zend_Db_Adapter_Pdo_Oci
pdo_pgsql Hard Zend_Db_Adapter_Pdo_Pgsql
pdo_sqlite Hard Zend_Db_Adapter_Pdo_Sqlite
pgsql
posix Soft Zend_Mail
pspell
readline
recode
Reflection Hard Zend_Controller
Zend_Filter
Zend_Filter_Input
Zend_Json
Zend_Log
Zend_Rest_Server
Zend_Server_Reflection
Zend_Validate
Zend_View
Zend_XmlRpc_Server
session Hard Zend_Controller_Action_Helper_Redirector
Zend_Session
shmop  
SimpleXML Hard Zend_Config_Xml
Zend_Feed
Zend_Rest_Client
Zend_Service_Audioscrobbler
Zend_XmlRpc
soap Hard Zend_Service_StrikeIron
sockets
SPL Hard Virtually all components
SQLite Hard Zend_Cache_Backend_Sqlite
standard Hard Virtually all components
sybase
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xml Hard Zend_Translate_Adapter_Qt
Zend_Translate_Adapter_Tmx
Zend_Translate_Adapter_Xliff
XMLReader
xmlrpc
XMLWriter
xsl
zip
zlib Hard Zend_Pdf
Memcache

php-5.2.5.tar.gz

libxml2-2.6.24.tar.gz (安装php5必须)
curl-7.15.0.tar.gz
libiconv-1.12.tar.gz
libmcrypt-2.5.7.tar.gz
mcrypt-2.6.7.tar.gz

xmlrpc-2.2.1.tar.gz

libedit-0.3.tar.gz

pspell-.12.2.tar.gz

openssl-0.9.8i.tar.gz

gettext-0.17.tar.gz
gd-2.0.35.tar.gz
freetype-2.3.7.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.2.33.tar.gz
zlib-1.2.3.tar.gz

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz
libiconv-1.12.tar.gz
ftp://ftp.gnu.org/gnu/gettext/gettext-0.17.tar.gz
http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.24.tar.gz
http://curl.haxx.se/download/curl-7.15.0.tar.gz
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

http://voxel.dl.sourceforge.net/sourceforge/mcrypt/mcrypt-2.6.7.tar.gz
http://www.libgd.org/releases/gd-2.0.35.tar.gz
http://voxel.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.7.tar.gz
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
http://voxel.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.33.tar.gz
http://www.zlib.net/zlib-1.2.3.tar.gz

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz

把以上所有软件包下载到:/home/source/software/目录下。

tar xzvf mysql-standard-4.0.17-pc-linux-i686.tar.gz
#此处下载的的二进制分发包,故没有./configure步骤
mv mysql-standard-4.0.17-pc-linux-i686 /usr/local/mysql
cd /usr/local/mysql
#下步cp要看服务器硬件环境,可选small,medium,large,huge
cp support-files/my-medium.cnf /etc/my.cnf
echo “/usr/local/mysql/bin/safe_mysqld –user=mysql&” >> /etc/rc.d/rc.local
groupadd mysql
useradd -g mysql mysql
./scripts/mysql_install_db
chown -R mysql.mysql data
#启动
/usr/local/mysql/bin/safe_mysqld –user=mysql&

MySQL路径为/usr/local/mysql

去PHP官网下载最新的源码包,我下的是php-5.2.6.tar.bz2。

libedit-0.3.tar.gz

mkdir /usr/local/libedit

cd libedit

# ./configure –prefix=/usr/local/libedit
# make; make install

pspell-.12.2.tar.gz

mkdir /usr/local/pspell

cd pspell-.12.2

# ./configure –prefix=/usr/local/pspell
# make; make install

a.安装 jpeg6
建立目录:
# mkdir -p /usr/local/jpeg
# mkdir -p /usr/local/jpeg/bin
# mkdir -p /usr/local/jpeg/lib
# mkdir -p /usr/local/jpeg/include
# mkdir -p /usr/local/jpeg/man
# mkdir -p /usr/local/jpeg/man1
# mkdir -p /usr/local/jpeg/man/man1

# cd /home/source/software/
# tar -zvxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure –prefix=/usr/local/jpeg/ –enable-shared –enable-static
# make; make install

备注:

在64 位下编译jpeg-6b时候报以下错误: 

make: ./libtool: Command not found 
make: *** [jcapimin.lo] Error 127 

错误分析:由于libtool版本过低导致的,重新下载新版本的libtool以默认方式安装,执行以下命令: 

./configure 
make 
make install 

然后进入jpeg-6b的源码目录,然后执行以下步骤,切记! 

cp /usr/share/libtool/config.sub . 
cp /usr/share/libtool/config.guess . 
./configure –enable-shared –enable-static 
make 
mkdir -p /usr/local/man/man1 
make install 

 

b.:安装zlib
# cd /home/source/software/
# tar -zxvf zlib-1.2.3.tar.gz
# mkdir -p /usr/local/zlib
# cd zlib.1.2.3
# ./configure --prefix=/usr/local/zlib
# make;make install

c.安装 freetype
# cd /home/source/software/
# tar -zvxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# mkdir -p /usr/local/freetype
# ./configure --prefix=/usr/local/freetype
# make;make install

d.安装libpng
# cd /home/source/software/
# mkdir -p /usr/local/png
# tar -zvxf libpng-1.2.8.tar.gz
# cd libpng-1.2.8
# cp scripts/makefile.
std makefile

vi makefile

不要用prefix定义路径否则会影响gd安装

ZLIBLIB=/usr/local/zlib
ZLIBINC=/usr/local/zlib/include


# make; make install

e.安装gettext
ftp://ftp.gnu.org/gnu/gettext/gettext-0.17.tar.gz


tar xf gettext-0.17.tar.gz
cd gettext-0.17
mkdir /usr/local/gettext
./configure --prefix=/usr/local/gettext
make
make install

f.安装GD库
# cd /home/source/software/
# tar -zvxf gd-2.0.33.tar.gz
# mkdir -p /usr/local/gd2
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg/
--with-zlib=/usr/local/zlib
--with-freetype=/usr/local/freetype/

–with-png


# make; make install

g.安装Curl库
# cd /home/source/software/
# tar -zvxf curl-7.15.0.tar.gz
# mkdir -p /usr/local/curl
# ./configure --prefix=/usr/local/curl
# make; make install

h.安装libxml2

# cd /home/xiutuo/software/
# tar -zxvf libxml2-2.6.24.tar.gz
# cd libxml2-2.6.24
# mkdir -p /usr/local/libxml2
# ./configure --prefix=/usr/local/libxml2
# make; make install

i.安装libiconv-1.12.tar.gz

# tar -zxvf libiconv-1.12.tar.gz
# cd libiconv-1.12
# ./configure --prefix=/usr/local/libiconv
# make
# make install
# make clean

j.安装libmcrypt
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

# tar xf libmcrypt-2.5.7.tar.gz
# mkdir /usr/local/libmcrypt
# cd libmcrypt-2.5.7
# ./configure --prefix=/usr/local/libmcrypt
# make
# make install

k.安装mhash
http://voxel.dl.sourceforge.net/sourceforge/mhash/mhash-0.9.9.tar.gz

# tar xf mhash-0.9.9.tar.gz
# cd mhash-0.9.9
# mkdir /usr/local/mhash
# ./configure --prefix=/usr/local/mhash/

# make;make install

j.安装PHP


$ sudo -s
$ mkdir /usr/local/php
$ mkdir /usr/local/php/sourcecode
$ mv ~/Download/php-5.2.6.tar.bz2 /usr/local/php/sourcecode
$ cd /usr/local/php/sourcecode
$ tar xf php-5.2.6.tar.bz2
$ cd php-5.2.6


$ ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fastcgi --enable-force-cgi-redirect --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-curl=/usr/local/curl --with-libxml-dir=/usr/local/libxml2 --with-libexpat-dir=/usr/lib --with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg/ --with-zlib-dir=/usr/local/zlib/ --with-png-dir=/usr/local/png/ --with-freetype-dir=/usr/local/freetype/ --enable-soap --enable-sockets --enable-dom --enable-sysvshm=yes --enable-ftp --enable-calendar --enable-sockets --with-db4 --with-bz2 --with-iconv=/usr/local/libiconv --with-gettext=/usr/local/gettext --with-mcrypt=/usr/local/libmcrypt --enable-mbstring=cn --with-mhash=/usr/local/mhash --with-mime-magic --with-openssl --disable-cli --enable-bcmath --enable-calendar --enable-ctype --enable-shmop --enable-soap --enable-sockets --enable-wddx --enable-zip --enable-dba=shared --enable-dbase --enable-exif --with-pspell=/usr/local/pspell --with-gmp
$ make
$ make install

说明:
sudo -s切换到超级用户模式,输入你的密码;
mkdir /usr/local/php建立php 5.2.6的安装目录;
mkdir /usr/local/php/sourcecode 并建立源码包存放位置,以方便日后快速的往php里面添加所须的模块;
解压缩,然后配置安装。

Mac OS 10.5不带PCRE,而PCRE又是NGINX不可缺少的,所以要我们自己安装。


$ mkdir -p /usr/local/src
$ cd /usr/local/src
$ curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
$ tar xvfz pcre-7.7.tar.gz
$ cd pcre-7.7
$ ./configure --prefix=/usr/local --enable-utf8
$ make
$ make install
$ cd ..

可以直接到官方下载源码包,也可以从用下面的CURL下载。

$ cd /tmp
$ curl -O http://sysoev.ru/nginx/nginx-0.6.32.tar.gz
$ tar xvfz nginx-0.6.32.tar.gz
$ cd nginx-0.6.32
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module
$ make
$ sudo make install

启动NGINX:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

至此东西安装好了,看下http://localhost/,是不是nginx在欢迎你进入它的世界呢?呵呵,如果你看到了,那么恭喜你。

NGINX配置文件修改:

server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~ .*\.php?$ {
fastcgi_pass 127.0.0.1:1026;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

启动PHPCGI:

/usr/local/php/bin/php-cgi -q -b "127.0.0.1:1026"

此时你可以在/usr/local/nginx/html/底下写一个index.php,然后访问http://localhost/index.php
phpinfo();
?>

bash-3.2# curl -o http://www.lighttpd.net/download/lighttpd-1.4.20.tar.gz
bash-3.2# tar xf lighttpd-1.4.20.tar.gz
bash-3.2# cd lighttpd-1.4.20
bash-3.2# ./configure
bash-3.2# make
bash-3.2# cp src/spawn-fcgi /usr/local/nginx/sbin/

bash-3.2# /usr/local/nginx/sbin/spawn-fcgi -p 1026 -C 5 -u nobody -g nobody -f /usr/local/php/bin/php-cgi

也可以自己写个shell脚本,在此就不多写了。


大公告成~!

备注:

若出现这个错误

error while loading shared libraries: /usr/local/gd/lib/libgd.so.2: cannot restore segment prot after reloc: Permission denied

原来这是SELinux搞的鬼,解决办法有如下两个
1. 使用chcon 命令
示例: chcon -t texrel_shlib_t /usr/local/gd/lib/libgd/*.so.2
2. 禁止掉SELinux
更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled

附加使用教程:
关闭NGINX:(Mac OS 用户可以通过活动监视器杀死nginx进程)

killall -9 nginx

不中断服务,重新启动NGINX:

ps -aux | grep nginx

查看主进程号pid

kill -HUP pid

作者:JoshuaLJD

星期六, 10月 25th, 2008 | Author: Joshua

方法一:

location ~* \.(js|css|jpg|png|gif|others)$ {
valid_referers none blocked *.sasacity.com sasacity.com;
if ($invalid_referer) {
rewrite ^/ http://www.sasacity.com/logo.gif;
#return 404;
}
}

方法二:
使用ngx_http_accesskey_module模块

配置例子:

location /download {
accesskey on;
accesskey_hashmethod md5;
accesskey_arg "key";
accesskey_signature "mypass$remote_addr";
}

此时客户端访问路径: http://example.com/download/file.zip?key=09093abeac094.

详细请见:http://wiki.codemongers.com/NginxHttpAccessKeyModule

Category: 服务器技术  | Tags: ,  | Leave a Comment
星期一, 10月 20th, 2008 | Author: Joshua

最近发现好几多网站在抄袭奕尚网(SASACITY),有些简直就是直接复制过去的。最搞笑的是竟然卖成人用品的也在抄,呵呵。无语。。。

抄袭者也别怪我在这里把你公布,谁让你抄了哩~?

奕尚网(SASACITY):www.sasacity.com

以下为抄袭者名单:
more…

Category: 随便说说  | Tags:  | Leave a Comment