系统要求:centos 5.5及以上版本,linux内核2.6及以上版本
四核cpu,8G内存
安装php环境:
安装系统依赖包
命令行中输入
sudo -s
LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
以上步骤为通过yum命令安装系统依赖包(需要yum源,外网或光盘均可)
下载最新的安装文件
mkdir -p /data0/software
cd /data0/software
wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.46.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.14.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.14-fpm-0.5.14.diff.gz
wget http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.13.1.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz
wget http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.10.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
wget http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/imagick/imagick-2.3.0.tgz
其中nginx最新版本为1.0.10,php最新版本为5.3.8,php 5.3.8版本集成了php-fpm所以与php-5.2.14的安装步骤和启动稍有不同,后面会红色标记。
编译安装PHP所需的支持库
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
make
make install
cd ../
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd http://www.iyunv.com/
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
编译安装PHP
5.2.14版本
tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14/
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-dist /usr/local/webserver/php/etc/php.ini
cd ../
5.3.8版本
tar zxvf php-5.3.8.tar.gz
cd php-5.3.8/
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
make ZEND_EXTRA_LIBS='-liconv'
make install
cp php.ini-development /usr/local/php/etc/php.ini
cd ../
安装php扩展
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../
tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/usr/local/webserver/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../
tar zxvf imagick-2.3.0.tgz
cd imagick-2.3.0/
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
cd ../
创建www用户和组
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data0/htdocs/www
chmod +w /data0/htdocs/www
chown -R www:www /data0/htdocs/www
修改php.ini文件
5.2.14版本
查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./"修改为extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20110613/"
并在此行后增加以下几行,然后保存:
extension = "memcache.so"
extension = "imagick.so"
再查找output_buffering = Off
修改为output_buffering = On
再查找; cgi.fix_pathinfo=0
5.3.8版本
查找/usr/local/php/etc/php.ini中的extension_dir = "./"修改为extension_dir = "/usr/local /php/lib/php/extensions/no-debug-non-zts-20090626/"
并在此行后增加以下几行,然后保存:
extension = "memcache.so"
extension = "imagick.so"
再查找output_buffering = Off
修改为output_buffering = On
再查找; cgi.fix_pathinfo=0
配置eAccelerator加速PHP
5.2.14版本
mkdir -p /usr/local/webserver/eaccelerator_cache
vi /usr/local/webserver/php/etc/php.ini
按shift+g键跳到配置文件的最末尾,加上以下配置信息:
[eaccelerator]
zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
5.3.8版本
mkdir -p /usr/local/eaccelerator_cache
vi /usr/local/php/etc/php.ini
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
创建php-fpm配置文件
5.2.14版本
rm -f /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php/etc/php-fpm.conf
输入
<?xml version="1.0" ?>
<configuration>
All relative paths in this config are relative to php's install prefix
<section name="global_options">
Pid file
<value name="pid_file">/usr/local/webserver/php/logs/php-fpm.pid</value>
Error log file
<value name="error_log">/usr/local/webserver/php/logs/php-fpm.log</value>
Log level
<value name="log_level">notice</value>
When this amount of php processes exited with SIGSEGV or SIGBUS ...
<value name="emergency_restart_threshold">10</value>
... in a less than this interval of time, a graceful restart will be initiated.
Useful to work around accidental curruptions in accelerator's shared memory.
<value name="emergency_restart_interval">1m</value>
Time limit on waiting child's reaction on signals from master
<value name="process_control_timeout">5s</value>
Set to 'no' to debug fpm
<value name="daemonize">yes</value>
</section>
<workers>
<section name="pool">
Name of pool. Used in logs and stats.
<value name="name">default</value>
Address to accept fastcgi requests on.
Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
<value name="listen_address">127.0.0.1:9000</value>
<value name="listen_options">
Set listen(2) backlog
<value name="backlog">-1</value>
Set permissions for unix socket, if one used.
In Linux read/write permissions must be set in order to allow connections from web server.
Many BSD-derrived systems allow connections regardless of permissions.
<value name="owner"></value>
<value name="group"></value>
<value name="mode">0666</value>
</value>
Additional php.ini defines, specific to this pool of workers.
<value name="php_defines">
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">0</value>
</value>
Unix user of processes
<value name="user">www</value>
Unix group of processes
<value name="group">www</value>
Process manager settings
<value name="pm">
Sets style of controling worker process count.
Valid values are 'static' and 'apache-like'
<value name="style">static</value>
Sets the limit on the number of simultaneous requests that will be served.
Equivalent to Apache MaxClients directive.
Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
Used with any pm_style.
<value name="max_children">64</value>
Settings group for 'apache-like' pm style
<value name="apache_like">
Sets the number of server processes created on startup.
Used only when 'apache-like' pm_style is selected
<value name="StartServers">20</value>
Sets the desired minimum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MinSpareServers">5</value>
Sets the desired maximum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MaxSpareServers">35</value>
</value>
</value>
The timeout (in seconds) for serving a single request after which the worker process will be terminated
Should be used when 'max_execution_time' ini option does not stop script execution for some reason
'0s' means 'off'
<value name="request_terminate_timeout">0s</value>
The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
'0s' means 'off'
<value name="request_slowlog_timeout">0s</value>
The log file for slow requests
<value name="slowlog">logs/slow.log</value>
Set open file desc rlimit
<value name="rlimit_files">65535</value>
Set max core size rlimit
<value name="rlimit_core">0</value>
Chroot to this directory at the start, absolute path
<value name="chroot"></value>
Chdir to this directory at the start, absolute path
<value name="chdir"></value>
Redirect workers' stdout and stderr into main error log.
If not set, they will be redirected to /dev/null, according to FastCGI specs
<value name="catch_workers_output">yes</value>
How much requests each process should execute before respawn.
Useful to work around memory leaks in 3rd party libraries.
For endless request processing please specify 0
Equivalent to PHP_FCGI_MAX_REQUESTS
<value name="max_requests">1024</value>
Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
Makes sense only with AF_INET listening socket.
<value name="allowed_clients">127.0.0.1</value>
Pass environment variables like LD_LIBRARY_PATH
All $VARIABLEs are taken from current environment
<value name="environment">
<value name="HOSTNAME">$HOSTNAME</value>
<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
<value name="TMP">/tmp</value>
<value name="TMPDIR">/tmp</value>
<value name="TEMP">/tmp</value>
<value name="OSTYPE">$OSTYPE</value>
<value name="MACHTYPE">$MACHTYPE</value>
<value name="MALLOC_CHECK_">2</value>
</value>
</section>
</workers>
</configuration>
5.3.8版本
无
启动php进程,监听127.0.0.1的9000端口
5.2.14版本
ulimit -SHn 65535
/usr/local/webserver/php/sbin/php-fpm start
注:/usr/local/webserver/php/sbin/php-fpm还有其他参数,包括:start|stop|quit|restart|reload|logrotate,修改php.ini后不重启php-cgi,重新加载配置文件使用reload。
5.3.8版本
ulimit -SHn 65535
/usr/local/php/sbin/php-fpm
安装Nginx
安装Nginx所需的pcre库
tar zxvf pcre-8.10.tar.gz
cd pcre-8.10/
./configure
make && make install
cd ../
安装Nginx
tar zxvf nginx-0.8.46.tar.gz
cd nginx-0.8.46/
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
创建Nginx日志目录
mkdir -p /data1/logs
chmod +w /data1/logs
chown -R www:www /data1/logs
创建Nginx配置文件
rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf
输入以下内容:
user www www;
worker_processes 8;
error_log /data1/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
server
{
listen 80;
server_name 192.168.60.50;
index index.html index.htm index.php;
root /data0/htdocs/www;
#limit_conn crawler 20;
location /
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
rewrite ^(.*)/(.+)/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/index\.php$ $1/index.php?ucode=$2&model=$3&f=$4&ct=$5&siteid=$6&$query_string ;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /data1/logs/access.log access;
}
}
在/usr/local/webserver/nginx/conf/目录中创建fcgi.conf文件:
vi /usr/local/webserver/nginx/conf/fcgi.conf
输入
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
启动Nginx
ulimit -SHn 65535
/usr/local/webserver/nginx/sbin/nginx
配置开机自动启动
vi /etc/rc.local
在末尾增加以下内容:
注意php版本
ulimit -SHn 65535
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx
优化Linux内核参数
vi /etc/sysctl.conf
在末尾增加以下内容:
# Add
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
#net.ipv4.tcp_fin_timeout = 30
#net.ipv4.tcp_keepalive_time = 120
net.ipv4.ip_local_port_range = 1024 65535
使配置立即生效:
/sbin/sysctl –p
定时切割Nginx日志的脚本
创建脚本/usr/local/webserver/nginx/sbin/cut_nginx_log.sh
vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh
输入以下内容:
#!/bin/bash
# This script run at 00:59
# The Nginx logs path
logs_path="/data1/logs/";
date_dir=`date +%Y/%m/%d`
date_dir1=`date +%Y/%m/%d/%H`
mkdir -p ${logs_path}/${date_dir}
mv ${logs_path}access.log ${logs_path}/${date_dir1}.log
sed -i 's#/Jan/#/01/#;s#/Feb/#/02/#;s#/Mar/#/03/#;s#/Apr/#/04/#;s#/May/#/05/#;s#/Jun/#/06/#;s#/Jul/#/07/#;s#/Aug/#/08/#;s#/Sep/#/09/#;s#/Oct/#/10/#;s#/Nov/#/11/#;s#/Dec/#/12/#' ${logs_path}/${date_dir1}.log
kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`
设置crontab,每时59分切割nginx访问日志
输入
crontab -e
输入以下内容:
59 * * * * /bin/bash /usr/local/webserver/nginx/sbin/cut_nginx_log.sh
Oracle客户端扩展(OCI8)安装
安装32位Oracle即时客户端程序包
http://download.oracle.com/otn/linux/instantclient/111070/oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
http://download.oracle.com/otn/linux/instantclient/111070/oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm
http://download.oracle.com/otn/linux/instantclient/111070/oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
32位安装
rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm
rpm -ivh oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
rpm -ivh oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm
echo "/usr/lib/oracle/11.1/client/lib/" > /etc/ld.so.conf.d/oracle_client.conf
/sbin/ldconfig
安装64位Oracle即时客户端程序包
http://download.oracle.com/otn/linux/instantclient/111070/oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
http://download.oracle.com/otn/linux/instantclient/111070/oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
http://download.oracle.com/otn/linux/instantclient/111070/oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
64位安装
rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
echo "/usr/lib/oracle/11.1/client64/lib/" > /etc/ld.so.conf.d/oracle_client.conf
/sbin/ldconfig
安装OCI8 PHP扩展
32位
yum install libaio
wget http://pecl.php.net/get/oci8-1.3.5.tgz
tar zxvf oci8-1.3.5.tgz
cd oci8-1.3.5/
/usr/local/webserver/php/bin/phpize
CFLAGS="-I/usr/include/oracle/11.1/client/"
CXXFLAGS="-I/usr/include/oracle/11.1/client/"
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/11.1/client/lib/
make
make install
64位
yum install libaio
wget http://pecl.php.net/get/oci8-1.3.5.tgz
tar zxvf oci8-1.3.5.tgz
cd oci8-1.3.5/
/usr/local/webserver/php/bin/phpize CFLAGS="-I/usr/include/oracle/11.1/client64/"
/usr/local/webserver/php/bin/phpize CXXFLAGS="-I/usr/include/oracle/11.1/client64/"
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-oci8=instantclient,/usr/lib/oracle/11.1/client64/lib/
make
make install
修改php.ini配置文件
增加一行:
extension = "oci8.so"
MongoDB的安装以及PHP扩展
mkdir -p /data/db/
mkdir -p /data/logs/
wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.6.5.tgz
tar -zxvf mongodb-linux-x86_64-1.6.5.tgz
./bin/mongod --dbpath=/data/db/ --logpath=/data/logs/mongod.log --logappend --port=27017 --fork --rest
General options:
-h [ --help ] show this usage information
--version show version information
-f [ --config ] arg configuration file specifying additional options
--port arg specify port number
--bind_ip arg local ip address to bind listener - all local ips bound by default
-v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv)
--dbpath arg (=/data/db/) directory for datafiles 指定数据存放目录
--quiet quieter output 静默模式
--logpath arg file to send all output to instead of stdout 指定日志存放目录
--logappend appnd to logpath instead of over-writing 指定日志是以追加还是以覆盖的方式写入日志文件
--fork fork server process 以创建子进程的方式运行
--cpu periodically show cpu and iowait utilization 周期性的显示cpu和io的使用情况
--noauth run without security 无认证模式运行
--auth run with security 认证模式运行
--objcheck inspect client data for validity on receipt 检查客户端输入数据的有效性检查
--quota enable db quota management 开始数据库配额的管理
--quotaFiles arg number of files allower per db, requires --quota 规定每个数据库允许的文件数
--appsrvpath arg root directory for the babble app server
--nocursors diagnostic/debugging option 调试诊断选项
--nohints ignore query hints 忽略查询命中率
--nohttpinterface disable http interface 关闭http接口,默认是28017
--noscripting disable scripting engine 关闭脚本引擎
--noprealloc disable data file preallocation 关闭数据库文件大小预分配
--smallfiles use a smaller default file size 使用较小的默认文件大小
--nssize arg (=16) .ns file size (in MB) for new databases 新数据库ns文件的默认大小
--diaglog arg 0=off 1=W 2=R 3=both 7=W+some reads 提供的方式,是只读,只写,还是读写都行,还是主要写+部分的读模式
--sysinfo print some diagnostic system information 打印系统诊断信息
--upgrade upgrade db if needed 如果需要就更新数据库
--repair run repair on all dbs 修复所有的数据库
--notablescan do not allow table scans 不运行表扫描
--syncdelay arg (=60) seconds between disk syncs (0 for never) 系统同步刷新磁盘的时间,默认是60s
安装mongoDB的PHP扩展
wget http://pecl.php.net/get/mongo-1.2.7.tgz
tar zxvf mongodb-mongo-php-driver-1.2.6-11-g5ad4117.tar.gz
cd mongodb-mongo-php-driver-5ad4117
一下注意PHP版本输入正确的路径
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config
make && make install
PHP扩展API下载 最后记得修改php.ini,添加 extension = "mongo.so"
Memcached的安装
memcached下载地址:http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz
Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent。(如果你的系统已经安装了libevent,可以不用安装)
官网:http://www.monkey.org/~provos/libevent/
wget http://www.monkey.org/~provos/libevent-1.4.9-stable.tar.gz
tar zxvf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable
./configure --prefix=/usr/local
make
make install
安装Memcached
wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz
tar -zxvf memcached-1.4.0.tar.gz
cd memcached-1.4.0
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local
Make
make install
安装完成后的memcached在 /usr/local/bin/memcached
将libevent-1.2.so.1拷贝到任何一个列出的lib下。或者软链接到列出的lib下(很多情况下是/usr/lib下有该文件,需要把该文件拷贝到/usr/lib64/下)
启动MemCached,-m表示分配的内存
/usr/local/memcached/bin/memcached -d -m 256 -u admin 127.0.0.1 -p 11211
参数说明:
-d选项是启动一个守护进程
-m是分配给Memcache使用的内存数量,单位是MB,我这里是256MB
-u是运行Memcache的用户,我这里是root
-l是监听的服务器IP地址
-p是设置Memcache监听的端口,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定
-P是设置保存Memcache的pid文件
Tokyo Cabinet与Tokyo Tyrant的安装以及PHP扩展
wget http://fallabs.com/tokyocabinet/tokyocabinet-1.4.47.tar.gz
tar zxvf tokyocabinet-1.4.47.tar.gz
cd tokyocabinet-1.4.47
./configure --prefix=/usr/local/webserver/tc
make && make install
cd ../
wget http://fallabs.com/tokyotyrant/tokyotyrant-1.1.41.tar.gz
tar zxvf tokyotyrant-1.1.41.tar.gz
cd tokyotyrant-1.1.41
./configure --prefix=/usr/local/webserver/tt --with-tc=/usr/local/webserver/tc/
make && make install
cd ../
mkdir -p /data1/db/ttserver
mkdir -p /data/db/ttserver
mkdir -p /data1/db1/ttserver
mkdir -p /data/db1/ttserver
/usr/local/webserver/tt/bin/ttserver -host 127.0.0.1 -port 11212 -thnum 8 -dmn -pid /data1/db/ttserver/ttserver.pid -log /data1/db/ttserver/ttserver.log -le -ulog /data1/db/ttserver/ -ulim 128m -sid 1 -rts /data1/db/ttserver/ttserver.rts /data/db/ttserver/database.tch#bnum=1000000#xmsiz=434217728#rcnum=20000
/usr/local/webserver/tt/bin/ttserver -host 127.0.0.1 -port 1978 -thnum 8 -dmn -pid /data1/db1/ttserver/ttserver.pid -log /data1/db1/ttserver/ttserver.log -le -ulog /data1/db1/ttserver/ -ulim 128m -sid 2 -rts /data1/db1/ttserver/ttserver.rts /data/db1/ttserver/database.tct#bnum=1000000#xmsiz=434217728#rcnum=20000#mode=wcr
wget http://pecl.php.net/get/tokyo_tyrant-0.6.0.tgz
tar zxvf tokyo_tyrant-0.6.0.tgz
cd tokyo_tyrant-0.6.0
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-tokyo-tyrant=/usr/local/webserver/tt/ --with-tokyo-cabinet-dir=/usr/local/webserver/tc/
make && make install
修改php.ini文件添加
extension = tokyo_tyrant.so
安装whtysqs
Whtysqs为代二杰编写的一个包,基于tc实现的服务,所以安装之前一定要安装tc并在makefile里指定tc路径
cd whtysqs-1.0/
make
make install
cd ../
启动whtysqs服务
ulimit -SHn 65535
whtysqs -d -p 3888 -x /data1/queue
安装mongseq
mongseq为代二杰编写的一个包,基于tc实现的服务,所以安装之前一定要安装tc并在makefile里指定tc路径
cd mongoseq/
make
make install
cd ../
启动mongseq服务
ulimit -SHn 65535
mongoseq -d -p 3889 -x /data1/mongoseq |