VPS服务安装与配置STEP BY STEP  

目录

1、前置知识
2、准备工作
3、安装一些库
4、安装mysql
5、安装PHP5.3.3
6、安装PHP扩展
7、安装Nginx
8、安装VSFTPD
10、安装memcached
11、安装服务器监控服务
12、coreseek的安装
13、用SSH翻墙

 

一、前置知识
关于linux版本的挑选
我主要用过三个版本:cent os/ubuntu server/gentoo
cent os和ubuntu server类似,前者有便捷的yum后者有便捷的apt-get;而gentoo的emerge是下载源码后编译,虽然性能比较好但是安装较费时间,一般推荐大型网站使用。听说豆瓣用的就是gentoo。
还有人用unix的BSD,用的也比较广泛。

为什么要使用php5.3.x
php5.3更省内存,主要因为:更好的垃圾回收机制、内置更完善的fpm(自php5.3.3始)、更省内存的mysqlnd引擎。
更多的功能:namespace等。

为什么不使用php5.3.x
如果源码不是为php5.3定制的,很有可能出现兼容性问题(2010/8/29)。

如果觉得编译时间太长,需要离开,可以学习下screen的用法。
yum -y install screen

另外,如果不会vi,最好学会vi的使用

tar的使用知识
Linux下的压缩档格式 tar、tar.gz(或者缩写成tgz)、tar.bz2

.tar文件是打包但是没有对内容进行压缩
用tar xvf xxx.tar来解压

.tar.gz文件用 tar zxvf xxx.tar.gz来解压
.tar.bz2用 tar jxvf xxx.tar.bz2来解压

make命令的使用
make clean可以在make失败的时候做下简单的清理,否则易出错。
make uninstall则可以回滚,这样就不用在系统装得一塌糊涂的时候重装系统了。

几乎所有的./configure都有–prefix=目录这个选项,可以自定义软件安装的目录。但是如果一些库安装的位置太有个性,依赖于该库的软件将找不到该库而发生错误。这时就需要ln来做个“快捷方式”。


二、准备工作
本文基于张宴的基础上,主要介绍面向开发者的VPS的使用,补充了FTP、memcached、snmpd、SSH翻墙的介绍。
所谓磨刀不误砍柴工,首先要做的准备工作
安装一些必要的软件

 

BSHELL代码
  1. sudo -s   
  2. LANG=C   
  3. yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype libevent libevent-devel freetype-devel libxml2 libxml2-devel zlib zlib-devel pam-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  

如果不安装上面的软件,在下面编译的时候就会出现各种错误。搜索一下错误信息,一般就是提示哪个哪个哪个没装。

接下来是软件的挑选
nginx可以进nginx.org挑选最新版本。nginx最新版本bug影响还是比较少的。
而mysql最新版甚至无法编译通过。所以选择了最新的稳定版。
(tips:如果你要使用mysqli,请不要下载mysql5.1.50,可以使用mysql5.1.49。否则会提示错误:“my_compiler.h: No such file or directory”
如果一定要用mysqli和mysql5.1.50,可以先下载mysql5.1.49,编译PHP后升级mysql
) MySQL5.1.51已经修复这个BUG。
php比较激进地选择了php5.3.3,默认包含了fpm的支持。如果php版本是5.3.0+但是小于php5.3.3,那么fpm的支持需要在svn下载代码后编译。
如果部署的不是你亲手写的程序,你必须要向开发者了解是否支持php5.3.x,否则,建议使用兼容性更好的php5.2。因为http://wucha.sg/是自己开发的,服务器只运行一个网站,所以本文只介绍php5.3.x的安装。
下面的软件安装方法大同小异,要安装额外的扩展可以照葫芦画瓢地添加。

 

BSHELL代码
  1. wget http://nginx.org/download/nginx-0.8.49.tar.gz   
  2. wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.51.tar.gz/from/http://mysql.he.net/   
  3. wget http://cn2.php.net/get/php-5.3.3.tar.bz2/from/www.php.net/mirror   
  4. wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz   
  5. wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?modtime=1171868460&big_mirror=0"  
  6. wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0"  
  7. wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0"  
  8. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz   
  9. wget http://sourceforge.net/projects/imagemagick/files/ImageMagick/00-6.6.5/ImageMagick-6.6.5-7.tar.bz2/download   
  10. wget http://pecl.php.net/get/imagick-3.0.0.tgz   
  11. wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz  


三、安装一些库

libiconv

PHP代码
  1. tar zxvf libiconv-1.13.1.tar.gz   
  2. cd libiconv-1.13.1/   
  3. ./configure –prefix=/usr/local   
  4. make   
  5. make install   
  6. cd ../  


libmcrypt

PHP代码
  1. tar zxvf libmcrypt-2.5.8.tar.gz    
  2. cd libmcrypt-2.5.8/   
  3. ./configure   
  4. make   
  5. make install   
  6. /sbin/ldconfig   
  7. cd libltdl/   
  8. ./configure –enable-ltdl-install   
  9. make   
  10. make install   
  11. cd ../../  


mhash

PHP代码
  1. tar zxvf mhash-0.9.9.9.tar.gz   
  2. cd mhash-0.9.9.9/   
  3. ./configure   
  4. make   
  5. make install   
  6. cd ../  

链接地址,以防程序找不到库

Java代码
  1. ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la   
  2. ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so   
  3. ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4  
  4. ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8  
  5. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a   
  6. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la   
  7. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so   
  8. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2  
  9. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1  
  10. ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config   


mcrypt

PHP代码
  1. tar zxvf mcrypt-2.6.8.tar.gz   
  2. cd mcrypt-2.6.8/   
  3. /sbin/ldconfig   
  4. ./configure   
  5. make   
  6. make install   
  7. cd ../  


四、安装Mysql


添加mysql组和用户

PHP代码
  1. /usr/sbin/groupadd mysql   
  2. /usr/sbin/useradd -g mysql mysql  

解压

PHP代码
  1. tar zxvf mysql-5.1.51.tar.gz   
  2. cd mysql-5.1.51   
  3. ./configure  –prefix=/usr/local/mysql –enable-assembler –with-extra-charsets=complex –enable-thread-safe-client –with-big-tables –with-readline –with-ssl –with-embedded-server –enable-local-infile –with-plugins=partition,innobase,myisammrg   
  4. make && make install  

设置权限

PHP代码
  1. chmod +w /usr/local/mysql   
  2. chown -R mysql:mysql /usr/local/mysql  

创建mysql使用目录

Java代码
  1. mkdir -p /data/mysql/data/   
  2. mkdir -p /data/mysql/binlog/   
  3. mkdir -p /data/mysql/relaylog/   
  4. chown -R mysql:mysql /data/mysql/  

初始化mysql库

PHP代码
  1. /usr/local/mysql/bin/mysql_install_db –basedir=/usr/local/mysql –datadir=/data/mysql/data –user=mysql   

编辑mysql的配置

PHP代码
  1. vi /data/mysql/my.cnf  

配置文件正文

PHP代码
  1. [client]   
  2. character-set-server = utf8   
  3. port    = 3306   
  4. socket  = /tmp/mysql.sock   
  5.   
  6. [mysqld]   
  7. character-set-server = utf8   
  8. replicate-ignore-db = mysql   
  9. replicate-ignore-db = test   
  10. replicate-ignore-db = information_schema   
  11. user    = mysql   
  12. port    = 3306   
  13. socket  = /tmp/mysql.sock   
  14. basedir = /usr/local/mysql   
  15. datadir = /data/mysql/data   
  16. log-error = /data/mysql/mysql_error.log   
  17. pid-file = /data/mysql/mysql.pid   
  18. open_files_limit    = 10240   
  19. back_log = 600   
  20. max_connections = 5000   
  21. max_connect_errors = 6000   
  22. table_cache = 614   
  23. external-locking = FALSE   
  24. max_allowed_packet = 32M   
  25. sort_buffer_size = 1M   
  26. join_buffer_size = 1M   
  27. thread_cache_size = 300   
  28. #thread_concurrency = 8   
  29. query_cache_size = 512M   
  30. query_cache_limit = 2M   
  31. query_cache_min_res_unit = 2k   
  32. default-storage-engine = MyISAM   
  33. thread_stack = 192K   
  34. transaction_isolation = READ-COMMITTED   
  35. tmp_table_size = 246M   
  36. max_heap_table_size = 246M   
  37. long_query_time = 3   
  38. log-slave-updates   
  39. log-bin = /data/mysql/binlog/binlog   
  40. binlog_cache_size = 4M   
  41. binlog_format = MIXED   
  42. max_binlog_cache_size = 8M   
  43. max_binlog_size = 1G   
  44. relay-log-index = /data/mysql/relaylog/relaylog   
  45. relay-log-info-file = /data/mysql/relaylog/relaylog   
  46. relay-log = /data/mysql/relaylog/relaylog   
  47. expire_logs_days = 30   
  48. key_buffer_size = 256M   
  49. read_buffer_size = 1M   
  50. read_rnd_buffer_size = 16M   
  51. bulk_insert_buffer_size = 64M   
  52. myisam_sort_buffer_size = 128M   
  53. myisam_max_sort_file_size = 10G   
  54. myisam_repair_threads = 1   
  55. myisam_recover   
  56.   
  57. interactive_timeout = 120   
  58. wait_timeout = 120   
  59.   
  60. skip-name-resolve   
  61. #master-connect-retry = 10   
  62. slave-skip-errors = 1032,1062,126,1114,1146,1048,1396   
  63.   
  64. #master-host     =   192.168.1.2   
  65. #master-user     =   username   
  66. #master-password =   password   
  67. #master-port     =  3306   
  68.   
  69. server-id = 1   
  70.   
  71. innodb_additional_mem_pool_size = 16M   
  72. innodb_buffer_pool_size = 512M   
  73. innodb_data_file_path = ibdata1:256M:autoextend   
  74. innodb_file_io_threads = 4   
  75. innodb_thread_concurrency = 8   
  76. innodb_flush_log_at_trx_commit = 2   
  77. innodb_log_buffer_size = 16M   
  78. innodb_log_file_size = 128M   
  79. innodb_log_files_in_group = 3   
  80. innodb_max_dirty_pages_pct = 90   
  81. innodb_lock_wait_timeout = 120   
  82. innodb_file_per_table = 0   
  83.   
  84. #log-slow-queries = /data/mysql/slow.log   
  85. #long_query_time = 10   
  86.   
  87. [mysqldump]   
  88. quick   
  89. max_allowed_packet = 32M   
  90.   


上面的参数可以根据服务器的状况调整。

添加mysql操作的脚本

PHP代码
  1. vi /data/mysql/mysql  

 

Java代码
  1. #!/bin/sh   
  2.   
  3. mysql_port=3306  
  4. mysql_username="admin"  
  5. mysql_password="12345678"  
  6.   
  7. function_start_mysql()   
  8. {   
  9.     printf "Starting MySQL…\n"  
  10.     /bin/sh /usr/local/mysql/bin/mysqld_safe –defaults-file=/data/mysql/my.cnf 2>1 > /dev/null &   
  11. }   
  12.   
  13. function_stop_mysql()   
  14. {   
  15.     printf "Stoping MySQL…\n"  
  16.     /usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown   
  17. }   
  18.   
  19. function_restart_mysql()   
  20. {   
  21.     printf "Restarting MySQL…\n"  
  22.     function_stop_mysql   
  23.     sleep 5  
  24.     function_start_mysql   
  25. }   
  26.   
  27. function_kill_mysql()   
  28. {   
  29.     kill –9 $(ps -ef 124; grep 'bin/mysqld_safe' 124; grep ${mysql_port} 124; awk '{printf $2}')   
  30.     kill –9 $(ps -ef 124; grep 'libexec/mysqld' 124; grep ${mysql_port} 124; awk '{printf $2}')   
  31. }   
  32.   
  33. if [ "$1" = "start" ]; then   
  34.     function_start_mysql   
  35. elif [ "$1" = "stop" ]; then   
  36.     function_stop_mysql   
  37. elif [ "$1" = "restart" ]; then   
  38. function_restart_mysql   
  39. elif [ "$1" = "kill" ]; then   
  40. function_kill_mysql   
  41. else  
  42.     printf "Usage: /data/mysql/mysql {start|stop|restart|kill}\n"  
  43. fi   
  44.   

添加执行权限

PHP代码
  1. chmod +x /data/mysql/mysql  

启动mysql

Java代码
  1. /data/mysql/mysql start  

小提示
用 netstat -an ,检查3306端口没有启动。
如果没有启动,可以 

PHP代码
  1. vi /data/mysql/mysql_error.log   

查看出错的原因,一般是配置有问题

 

通过命令行登录管理MySQL服务器(提示输入密码时直接回车):

Java代码
  1. /usr/local/mysql/bin/mysql -u root -p -S /tmp/mysql.sock  


添加一个用户

SQL代码
  1. GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';   
  2. GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';  

 

MYSQL安装完成。


五、安装PHP5.3.3

 

PHP代码
  1. tar jxvf php-5.3.3.tar.bz2   
  2. /usr/sbin/useradd www   
  3. mkdir -p /data/htdocs   
  4. cd php-5.3.3   
  5. ./configure –prefix=/usr/local/php –with-config-file-path=/etc/php –with-mysql=/usr/local/mysql –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-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fpm –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   
  6. make ZEND_EXTRA_LIBS='-liconv'  


(tips:如果只写make则会提示undefined reference to libiconv)

PHP代码
  1. make install  

配置php.ini

JavaScript代码
  1. mkdir /etc/php   
  2. cp php.ini-production /etc/php/php.ini   
  3. vi /etc/php/php.ini  

修改扩展的目录

ASP/Visual Basic代码
  1. extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"  

杜绝nginx下的php解析任意文件的漏洞

ASP/Visual Basic代码
  1. cgi.fix_pathinfo=0  

然后创建php-fpm的配置文件
这个配置文件已经是ini格式而不是xml格式了

ASP/Visual Basic代码
  1. mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf  

 

ASP/Visual Basic代码
  1. user=www   
  2. group=www   
  3. pm.min_spare_servers=3   
  4. pm.max_spare_servers=35   
  5. pm.max_children=35  

 

PHP代码
  1. ulimit -SHn 65535   
  2. /usr/local/php/sbin/php-fpm  


这里的php-fpm和旧版有所不同(后面附带了操作php-fpm的脚本)

 


六、安装PHP扩展
php扩展的安装方式和步骤都差不多,要装啥扩展自己挑,自己进php.net下载。
这里把我要安装的写下来

ImageMagick是一个强大的图像操作软件

ASP/Visual Basic代码
  1. tar jxvf ImageMagick-6.6.3-9.tar.bz2   
  2. cd ImageMagick-6.6.3-9   
  3. ./configure   
  4. make   
  5. make install   
  6. cd ..   
  7. tar zxvf imagick-3.0.0.tgz   
  8. cd imagick-3.0.0   
  9. /usr/local/php/bin/phpize   
  10. ./configure –with-php-config=/usr/local/php/bin/php-config   
  11. make   
  12. make install   
  13. cd ..  


在php.ini里添加

ASP/Visual Basic代码
  1. extension = "imagick.so"  


安装MYSQL PDO 

JavaScript代码
  1. tar zxvf PDO_MYSQL-1.0.2.tgz   
  2. cd PDO_MYSQL-1.0.2/   
  3. /usr/local/php/bin/phpize   
  4. ./configure —with-php-config=/usr/local/php/bin/php-config —with-pdo-mysql=/usr/local/mysql   
  5. make   
  6. make install   
  7. cd ..  


在php.ini里添加

ASP/Visual Basic代码
  1. extension = "pdo_mysql.so"  


安装APC
你也可以选择xcache。至于ea么,很多函数都没法启用,所以不建议选择。

因为APC的稳定版本不能适用PHP5.3,所以下载最新beta版

ASP/Visual Basic代码
  1. wget http://pecl.php.net/get/APC-3.1.4.tgz   
  2. tar zxvf APC-3.1.4.tgz   
  3. cd APC-3.1.4 
  4. /usr/local/php/bin/phpize   
  5. ./configure –with-php-config=/usr/local/php/bin/php-config   
  6. make   
  7. make install  

修改下php.ini,加载就可以了

ASP/Visual Basic代码
  1. extension=apc.so   
  2. [APC]    
  3. apc.enabled = 1    
  4. apc.shm_segments = 1    
  5. apc.shm_size = 64M   
  6. apc.max_file_size = 10M    
  7. apc.stat=1   

如果安装的是xcache

ASP/Visual Basic代码
  1. wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz   
  2. tar zxvf xcache-1.3.0.tar.gz   
  3. cd xcache-1.3.0   
  4. /usr/local/php/bin/phpize   
  5. ./configure –with-php-config=/usr/local/php/bin/php-config   
  6. make   
  7. make install  

然后修改下php.ini。
这个配置呢请下载后看xcache-zh-gb2312.ini里面的说明,简体中文,很详细了。

 


七、安装Nginx

安装Nginx所需的pcre库:

ASP/Visual Basic代码
  1. tar zxvf pcre-8.10.tar.gz   
  2. cd pcre-8.10/   
  3. ./configure   
  4. make && make install   
  5. cd ../  


安装Nginx

ASP/Visual Basic代码
  1. tar zxvf nginx-0.8.49.tar.gz   
  2. cd nginx-0.8.49/   
  3. ./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module  
  4. make && make install
ASP/Visual Basic代码
  1. mkdir -p /data/logs   
  2. chmod +w /data/logs   
  3. chown -R www:www /data/logs  
ASP/Visual Basic代码
  1. chmod +w /data/htdocs   
  2. chown -R www:www /data/htdocs  


修改nginx的配置文件

ASP/Visual Basic代码
  1. vi /usr/local/nginx/conf/nginx.conf  

我的是这样的

PHP代码
  1. user  www www;   
  2. worker_processes  1;   
  3.   
  4. error_log  /data/logs/nginx_error.log crit;   
  5.   
  6. pid        /usr/local/nginx/nginx.pid;   
  7.   
  8. worker_rlimit_nofile 65535;   
  9.   
  10. events {   
  11.     use epoll;   
  12.     worker_connections 65535;   
  13. }   
  14.   
  15.   
  16. http {   
  17.     include       mime.types;   
  18.     default_type  application/octet-stream;   
  19.   
  20.     server_names_hash_bucket_size 128;   
  21.     client_header_buffer_size 32k;   
  22.     large_client_header_buffers 4 32k;   
  23.     client_max_body_size 8m;   
  24.     sendfile        on;   
  25.     tcp_nopush     on;   
  26.     keepalive_timeout  65;   
  27.     tcp_nodelay on;   
  28.   
  29.     fastcgi_connect_timeout 300;   
  30.     fastcgi_send_timeout 300;   
  31.     fastcgi_read_timeout 300;   
  32.     fastcgi_buffer_size 64k;   
  33.     fastcgi_buffers 4 64k;   
  34.     fastcgi_busy_buffers_size 128k;   
  35.     fastcgi_temp_file_write_size 128k;   
  36.   
  37.     gzip on;   
  38.     gzip_min_length  1k;   
  39.     gzip_buffers     4 16k;   
  40.     gzip_http_version 1.0;   
  41.     gzip_comp_level 2;   
  42.     gzip_types       text/plain application/x-javascript text/css application/xml;   
  43.     gzip_vary on;   
  44.   
  45.     server {   
  46.         listen       80;   
  47.         location / {   
  48.             root   /data/htdocs/$host;   
  49.             index  index.html index.htm index.php;   
  50.         }   
  51.         error_page   500 502 503 504  /50x.html;   
  52.         location = /50x.html {   
  53.             root   /data/htdocs/$host;   
  54.         }   
  55.         location ~ .*\.(php)?$ {   
  56.             root           /data/htdocs/$host;   
  57.             fastcgi_pass   127.0.0.1:9000;   
  58.             fastcgi_index  index.php;   
  59.             include        fastcgi_params;   
  60.         }   
  61.         log_format  access  '$remote_addr – $remote_user [$time_local] "$request" '  
  62.               '$status $body_bytes_sent "$http_referer" '  
  63.               '"$http_user_agent" $http_x_forwarded_for';   
  64.         access_log  /data/logs/access.log  access;   
  65.     }   
  66. }   

然后在fastcgi_params加上

XML/HTML代码
  1. fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;  

启动nginx

PHP代码
  1. /usr/local/nginx/sbin/nginx   


设置开机自启动,你可以视情况修改

ASP/Visual Basic代码
  1. vi /etc/rc.local  

内容添加

ASP/Visual Basic代码
  1. ulimit -SHn 65535   
  2. /usr/local/php/sbin/php-fpm start   
  3. /usr/local/nginx/sbin/nginx   
  4. /data/mysql/mysql start  

 

八、安装ftp的支持
vsftpd就不编译了,反正也就自己用用,不做专业FTP服务器。
安装后的效果是只要在mysql里添加一条数据,并在指定文件夹内添加帐号限定的目录就可以登录ftp了。

 

XML/HTML代码
  1. yum -y install vsftpd  


修改配置文件为

ASP/Visual Basic代码
  1. anonymous_enable=NO   
  2. anon_root=/var/ftp/pub   
  3. anon_max_rate=10000000   
  4. local_enable=YES   
  5. write_enable=YES   
  6. local_umask=077   
  7. dirmessage_enable=YES   
  8. xferlog_enable=YES   
  9. pasv_enable=YES   
  10. pasv_min_port=50000   
  11. pasv_max_port=60000   
  12. xferlog_file=/var/log/vsftpd.log   
  13. xferlog_std_format=YES   
  14. idle_session_timeout=600   
  15. data_connection_timeout=120   
  16. accept_timeout=60   
  17. connect_timeout=60   
  18. ftpd_banner=WuCha FTP Service   
  19. chroot_local_user=YES   
  20. max_clients=100   
  21. max_per_ip=3   
  22. guest_enable=YES   
  23. guest_username=www   
  24. pam_service_name=vsftpd   
  25. userlist_enable=YES   
  26. user_config_dir=/etc/vsftpd/users   
  27. virtual_use_local_privs=YES   
  28. listen=YES   
  29. tcp_wrappers=YES   
  30. use_localtime=YES   
  31.   

 

 

ASP/Visual Basic代码
  1. vi /etc/pams.d/vsftpd  

内容

JavaScript代码
  1. auth required /lib/security/pam_mysql.so user=admin passwd=12345678 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0   
  2. account required /lib/security/pam_mysql.so user=admin passwd=12345678 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0   

安装pam_mysql

ASP/Visual Basic代码
  1. wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz   
  2. tar zxvf pam_mysql-0.7RC1.tar.gz   
  3. cd pam_mysql-0.7RC1   
  4. ./configure –with-mysql=/usr/local/mysql 
  5. make && make install  


初始化vsftpd在mysql里的结构

SQL代码
  1. mysql -uroot -p  


新建一个数据库,名叫vsftpd
(不要问我语句是啥,我是用phpmyadmin建的。你要在mysql里用SQL语句创建自己去Google.)

然后执行

SQL代码
  1. use vsftpd;   
  2. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";   
  3. CREATE TABLE IF NOT EXISTS `users` (   
  4.   `namechar(20) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,   
  5.   `passwd` char(20) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL  
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;  

增加一个用户

SQL代码
  1. INSERT INTO `users` (`name`, `passwd`) VALUES ('shiny''123');  

限定用户使用的目录

ASP/Visual Basic代码
  1. mkdir /etc/vsftpd/users   
  2. cd /etc/vsftpd/users   
  3. vi shiny  

输入内容

ASP/Visual Basic代码
  1. local_root=/data/htdocs/  

启动ftp

ASP/Visual Basic代码
  1. service vsftpd start  

然后你就可以ftp连接了,用户名shiny,密码123

 

九、安装memcached

ASP/Visual Basic代码
  1. wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
  2. tar zxvf memcached-1.4.5.tar.gz
  3. cd memcached-1.4.5
  4. ./configure –prefix=/usr/local/memcached   
  5. make   
  6. make install
  7. cd ..

然后在 /etc/rc.local添加开机启动项

XML/HTML代码
  1. /usr/local/memcached/bin/memcached -u www  

 

十、安装服务器监控服务

XML/HTML代码
  1. wget http://downloads.sourceforge.net/project/net-snmp/net-snmp/5.5/net-snmp-5.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnet-snmp%2Ffiles%2Fnet-snmp%2F5.5%2Fts=1283062319use_mirror=ncu  
  2. tar zxvf net-snmp-5.5.tar.gz
  3. cd net-snmp-5.5
  4. ./configure –prefix=/usr/local/snmp –with-openssl=/usr/ –with-mib-modules=ucd-snmp/diskio   

–with-mib-modules=ucd-snmp/diskio选项是为了支持磁盘的监控
然后一路回车

XML/HTML代码
  1. make   
  2. make install  


然后
创建一个帐号

ASP/Visual Basic代码
  1. /usr/local/snmp/bin/net-snmp-create-v3-user  

注意不要使用过于简单的密码,否则帐号添加失败。
然后就可以在监控宝里添加服务器了。

XML/HTML代码
  1. vi /etc/rc.local  


然后添加

XML/HTML代码
  1. /usr/local/snmp/sbin/snmpd  

这样就可以开机自启动


十一、安装coreseek
coreseek是一款基于Sphinx、支持中文的开源检索引擎,支持TB级的全文数据索引。
安装可以参考这篇文档http://www.coreseek.cn/products-install/install_on_bsd_linux/

安装必要的环境

ASP/Visual Basic代码
  1. yum -y install g++ libtool automake imake mysql-devel expat-devel   
  2.   
  3. wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.13.tar.gz   
  4. tar xzvf coreseek-3.2.13.tar.gz   
  5. cd coreseek-3.2.13   
  6. cd mmseg-3.2.13   
  7. ./bootstrap   
  8. ./configure –prefix=/usr/local/mmseg3   
  9. make   
  10. make install   
  11.   
  12. cd ../csft-3.2.13   

修改 configure 文件,把 #define USE_LIBICONV 0 最后的数值由1改为0 (这是为了防止报iconv的错,编码转换可以由PHP来做)

 

XML/HTML代码
  1. ./configure –prefix=/usr/local/coreseek –with-mmseg –with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ –with-mmseg-libs=/usr/local/mmseg3/lib/   
  2. make   
  3. make install   
  4.   
  5. cd ../testpack   
  6. ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.16 /lib64/libmysqlclient.so.16   
  7. /usr/local/coreseek/bin/indexer -c etc/csft.conf   
  8. /usr/local/coreseek/bin/indexer -c etc/csft.conf –all   


可以看到工作正常了
/usr/local/coreseek/bin/searchd -c etc/csft.conf 以该配置文件开启服务
/usr/local/coreseek/bin/searchd -c etc/csft.conf –stop 停止服务

还可以配置mysql数据源,这个就再看官方的文档吧。

 

十二、用SSH翻墙
语句
useradd -M -s /sbin/nologin 用户名
然后passwd 用户名
输入密码
就可以用mr zhang商业版、ssh tunnel之类拿来连接,并且无法用putty登录,有较好的安全性。
但是需要注意的是用不要泄露,否则有人拿来P2P后就有可能收到投诉信,一般VPS提供商会封你VPS。

 

附录1:php的 ./configure选项

PHP代码
  1. Usage: configure [options] [host]   
  2. Options: [defaults in brackets after descriptions]   
  3. Configuration:   
  4.   –cache-file=FILE       cache test results in FILE   
  5.   –help                  print this message   
  6.   –no-create             do not create output files   
  7.   –quiet, –silent       do not print `checking…' messages
  8.   –version               print the version of autoconf that created configure  
  9. Directory and file names:  
  10.   –prefix=PREFIX         install architecture-independent files in PREFIX  
  11.                           [/usr/local]  
  12.   –exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX  
  13.                           [same as prefix]  
  14.   –bindir=DIR            user executables in DIR [EPREFIX/bin]  
  15.   –sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]  
  16.   –libexecdir=DIR        program executables in DIR [EPREFIX/libexec]  
  17.   –datadir=DIR           read-only architecture-independent data in DIR  
  18.                           [PREFIX/share]  
  19.   –sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]  
  20.   –sharedstatedir=DIR    modifiable architecture-independent data in DIR  
  21.                           [PREFIX/com]  
  22.   –localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]  
  23.   –libdir=DIR            object code libraries in DIR [EPREFIX/lib]  
  24.   –includedir=DIR        C header files in DIR [PREFIX/include]  
  25.   –oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]  
  26.   –infodir=DIR           info documentation in DIR [PREFIX/info]  
  27.   –mandir=DIR            man documentation in DIR [PREFIX/man]  
  28.   –srcdir=DIR            find the sources in DIR [configure dir or ..]  
  29.   –program-prefix=PREFIX prepend PREFIX to installed program names  
  30.   –program-suffix=SUFFIX append SUFFIX to installed program names  
  31.   –program-transform-name=PROGRAM  
  32.                           run sed PROGRAM on installed program names  
  33. Host type:  
  34.   –build=BUILD           configure for building on BUILD [BUILD=HOST]  
  35.   –host=HOST             configure for HOST [guessed]  
  36.   –target=TARGET         configure for TARGET [TARGET=HOST]  
  37. Features and packages:  
  38.   –disable-FEATURE       do not include FEATURE (same as –enable-FEATURE=no)  
  39.   –enable-FEATURE[=ARG]  include FEATURE [ARG=yes]  
  40.   –with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]  
  41.   –without-PACKAGE       do not use PACKAGE (same as –with-PACKAGE=no)  
  42.   –x-includes=DIR        X include files are in DIR  
  43.   –x-libraries=DIR       X library files are in DIR  
  44. –enable and –with options recognized:  
  45.   –with-libdir=NAME      Look for libraries in …/NAME rather than …/lib  
  46.   –disable-rpath         Disable passing additional runtime library  
  47.                           search paths  
  48.   –enable-re2c-cgoto     Enable -g flag to re2c to use computed goto gcc extension  
  49.  
  50. SAPI modules:  
  51.  
  52.   –with-aolserver=DIR    Specify path to the installed AOLserver  
  53.   –with-apxs[=FILE]      Build shared Apache 1.x module. FILE is the optional  
  54.                           pathname to the Apache apxs tool [apxs]  
  55.   –with-apache[=DIR]     Build Apache 1.x module. DIR is the top-level Apache  
  56.                           build directory [/usr/local/apache]  
  57.   –enable-mod-charset      APACHE: Enable transfer tables for mod_charset (Rus Apache)  
  58.   –with-apxs2filter[=FILE]     
  59.                           EXPERIMENTAL: Build shared Apache 2.0 Filter module. FILE is the optional  
  60.                           pathname to the Apache apxs tool [apxs]  
  61.   –with-apxs2[=FILE]     Build shared Apache 2.0 Handler module. FILE is the optional  
  62.                           pathname to the Apache apxs tool [apxs]  
  63.   –with-apache-hooks[=FILE]        
  64.                           EXPERIMENTAL: Build shared Apache 1.x module. FILE is the optional  
  65.                           pathname to the Apache apxs tool [apxs]  
  66.   –with-apache-hooks-static[=DIR]  
  67.                           EXPERIMENTAL: Build Apache 1.x module. DIR is the top-level Apache  
  68.                           build directory [/usr/local/apache]  
  69.   –enable-mod-charset      APACHE (hooks): Enable transfer tables for mod_charset (Rus Apache)  
  70.   –with-caudium[=DIR]    Build PHP as a Pike module for use with Caudium.  
  71.                           DIR is the Caudium server dir [/usr/local/caudium/server]  
  72.   –disable-cli           Disable building CLI version of PHP  
  73.                           (this forces –without-pear)  
  74.   –with-continuity=DIR   Build PHP as Continuity Server module.   
  75.                           DIR is path to the installed Continuity Server root  
  76.   –enable-embed[=TYPE]   EXPERIMENTAL: Enable building of embedded SAPI library  
  77.                           TYPE is either 'shared' or 'static'. [TYPE=shared]  
  78.   –enable-fpm              EXPERIMENTAL: Enable building of the fpm SAPI executable  
  79.   –with-libevent-dir[=PATH]  libevent install prefix, for fpm SAPI. (default: /usr/local)  
  80.   –with-fpm-user[=USER]  Set the user for php-fpm to run as. (default: nobody)  
  81.   –with-fpm-group[=GRP]  Set the group for php-fpm to run as. For a system user, this   
  82.                   should usually be set to match the fpm username (default: nobody)  
  83.   –with-isapi[=DIR]      Build PHP as an ISAPI module for use with Zeus  
  84.   –with-litespeed        Build PHP as litespeed module  
  85.   –with-milter[=DIR]     Build PHP as Milter application  
  86.   –with-nsapi=DIR        Build PHP as NSAPI module for Netscape/iPlanet/Sun Webserver  
  87.   –with-phttpd=DIR       Build PHP as phttpd module  
  88.   –with-pi3web[=DIR]     Build PHP as Pi3Web module  
  89.   –with-roxen=DIR        Build PHP as a Pike module. DIR is the base Roxen  
  90.                           directory, normally /usr/local/roxen/server  
  91.   –enable-roxen-zts        ROXEN: Build the Roxen module using Zend Thread Safety  
  92.   –with-thttpd=SRCDIR    Build PHP as thttpd module  
  93.   –with-tux=MODULEDIR    Build PHP as a TUX module (Linux only)  
  94.   –with-webjames=SRCDIR  Build PHP as a WebJames module (RISC OS only)  
  95.   –disable-cgi           Disable building CGI version of PHP  
  96.  
  97. General settings:  
  98.  
  99.   –enable-gcov           Enable GCOV code coverage (requires LTP) – FOR DEVELOPERS ONLY!!  
  100.   –enable-debug          Compile with debugging symbols  
  101.   –with-layout=TYPE      Set how installed files will be laid out.  Type can  
  102.                           be either PHP or GNU [PHP]  
  103.   –with-config-file-path=PATH  
  104.                           Set the path in which to look for php.ini [PREFIX/lib]  
  105.   –with-config-file-scan-dir=PATH  
  106.                           Set the path where to scan for configuration files  
  107.   –enable-safe-mode      Enable safe mode by default  
  108.   –with-exec-dir[=DIR]   Only allow executables in DIR under safe-mode  
  109.                           [/usr/local/php/bin]  
  110.   –enable-sigchild       Enable PHP's own SIGCHLD handler   
  111.   –enable-magic-quotes   Enable magic quotes by default.   
  112.   –enable-libgcc         Enable explicitly linking against libgcc   
  113.   –disable-short-tags    Disable the short-form <? start tag by default  
  114.   –enable-dmalloc        Enable dmalloc   
  115.   –disable-ipv6          Disable IPv6 support   
  116.   –enable-fd-setsize     Set size of descriptor sets   
  117.   
  118. Extensions:   
  119.   
  120.   –with-EXTENSION=[shared[,PATH]]   
  121.      
  122.     NOTE: Not all extensions can be build as 'shared'.   
  123.   
  124.     Example: –with-foobar=shared,/usr/local/foobar/   
  125.   
  126.       o Builds the foobar extension as shared extension.   
  127.       o foobar package install prefix is /usr/local/foobar/   
  128.   
  129.   
  130.  –disable-all   Disable all extensions which are enabled by default  
  131.   
  132.   –with-regex=TYPE       regex library type: system, php. [TYPE=php]   
  133.                           WARNING: Do NOT use unless you know what you are doing!   
  134.   –disable-libxml        Disable LIBXML support   
  135.   –with-libxml-dir[=DIR]   LIBXML: libxml2 install prefix   
  136.   –with-openssl[=DIR]    Include OpenSSL support (requires OpenSSL >= 0.9.6)   
  137.   –with-kerberos[=DIR]     OPENSSL: Include Kerberos support   
  138.   –with-pcre-regex=DIR   Include Perl Compatible Regular Expressions support.   
  139.                           DIR is the PCRE install prefix [BUNDLED]   
  140.   –without-sqlite3[=DIR] Do not include SQLite3 support. DIR is the prefix to   
  141.                           SQLite3 installation directory.   
  142.   –with-zlib[=DIR]       Include ZLIB support (requires zlib >= 1.0.9)   
  143.   –with-zlib-dir=<DIR>   Define the location of zlib install directory   
  144.   –enable-bcmath         Enable bc style precision math functions   
  145.   –with-bz2[=DIR]        Include BZip2 support   
  146.   –enable-calendar       Enable support for calendar conversion   
  147.   –disable-ctype         Disable ctype functions   
  148.   –with-curl[=DIR]       Include cURL support   
  149.   –with-curlwrappers     EXPERIMENTAL: Use cURL for url streams   
  150.   –enable-dba            Build DBA with bundled modules. To build shared DBA   
  151.                           extension use –enable-dba=shared   
  152.   –with-qdbm[=DIR]         DBA: QDBM support   
  153.   –with-gdbm[=DIR]         DBA: GDBM support   
  154.   –with-ndbm[=DIR]         DBA: NDBM support   
  155.   –with-db4[=DIR]          DBA: Oracle Berkeley DB 4.x or 5.x support   
  156.   –with-db3[=DIR]          DBA: Oracle Berkeley DB 3.x support   
  157.   –with-db2[=DIR]          DBA: Oracle Berkeley DB 2.x support   
  158.   –with-db1[=DIR]          DBA: Oracle Berkeley DB 1.x support/emulation   
  159.   –with-dbm[=DIR]          DBA: DBM support   
  160.   –without-cdb[=DIR]       DBA: CDB support (bundled)   
  161.   –disable-inifile         DBA: INI support (bundled)   
  162.   –disable-flatfile        DBA: FlatFile support (bundled)   
  163.   –disable-dom           Disable DOM support   
  164.   –with-libxml-dir[=DIR]   DOM: libxml2 install prefix   
  165.   –with-enchant[=DIR]     Include enchant support.   
  166.                           GNU Aspell version 1.1.3 or higher required.   
  167.   –enable-exif           Enable EXIF (metadata from images) support   
  168.   –disable-fileinfo      Disable fileinfo support   
  169.   –disable-filter        Disable input filter support   
  170.   –with-pcre-dir           FILTER: pcre install prefix   
  171.   –enable-ftp            Enable FTP support   
  172.   –with-openssl-dir[=DIR]  FTP: openssl install prefix   
  173.   –with-gd[=DIR]         Include GD support.  DIR is the GD library base   
  174.                           install directory [BUNDLED]   
  175.   –with-jpeg-dir[=DIR]     GD: Set the path to libjpeg install prefix   
  176.   –with-png-dir[=DIR]      GD: Set the path to libpng install prefix   
  177.   –with-zlib-dir[=DIR]     GD: Set the path to libz install prefix   
  178.   –with-xpm-dir[=DIR]      GD: Set the path to libXpm install prefix   
  179.   –with-freetype-dir[=DIR] GD: Set the path to FreeType 2 install prefix   
  180.   –with-t1lib[=DIR]        GD: Include T1lib support. T1lib version >= 5.0.0 required   
  181.   –enable-gd-native-ttf    GD: Enable TrueType string function  
  182.   –enable-gd-jis-conv      GD: Enable JIS-mapped Japanese font support   
  183.   –with-gettext[=DIR]    Include GNU gettext support   
  184.   –with-gmp[=DIR]        Include GNU MP support   
  185.   –with-mhash[=DIR]      Include mhash support   
  186.   –disable-hash          Disable hash support   
  187.   –without-iconv[=DIR]   Exclude iconv support   
  188.   –with-imap[=DIR]       Include IMAP support. DIR is the c-client install prefix   
  189.   –with-kerberos[=DIR]     IMAP: Include Kerberos support. DIR is the Kerberos install prefix   
  190.   –with-imap-ssl[=DIR]     IMAP: Include SSL support. DIR is the OpenSSL install prefix   
  191.   –with-interbase[=DIR]  Include InterBase support.  DIR is the InterBase base   
  192.                           install directory [/usr/interbase]   
  193.   –enable-intl           Enable internationalization support   
  194.   –with-icu-dir=DIR      Specify where ICU libraries and headers can be found   
  195.   –disable-json          Disable JavaScript Object Serialization support   
  196.   –with-ldap[=DIR]       Include LDAP support   
  197.   –with-ldap-sasl[=DIR]    LDAP: Include Cyrus SASL support   
  198.   –enable-mbstring       Enable multibyte string support   
  199.   –disable-mbregex         MBSTRING: Disable multibyte regex support   
  200.   –disable-mbregex-backtrack   
  201.                             MBSTRING: Disable multibyte regex backtrack check   
  202.   –with-libmbfl[=DIR]      MBSTRING: Use external libmbfl.  DIR is the libmbfl base   
  203.                             install directory [BUNDLED]   
  204.   –with-onig[=DIR]         MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix.   
  205.                             If DIR is not set, the bundled oniguruma will be used   
  206.   –with-mcrypt[=DIR]     Include mcrypt support   
  207.   –with-mssql[=DIR]      Include MSSQL-DB support.  DIR is the FreeTDS home   
  208.                           directory [/usr/local/freetds]   
  209.   –with-mysql[=DIR]      Include MySQL support.  DIR is the MySQL base   
  210.                           directory.  If mysqlnd is passed as DIR,    
  211.                           the MySQL native driver will be used [/usr/local]   
  212.   –with-mysql-sock[=DIR]   MySQL/MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer.   
  213.                             If unspecified, the default locations are searched   
  214.   –with-zlib-dir[=DIR]     MySQL: Set the path to libz install prefix   
  215.   –with-mysqli[=FILE]    Include MySQLi support.  FILE is the path   
  216.                           to mysql_config.  If mysqlnd is passed as FILE,   
  217.                           the MySQL native driver will be used [mysql_config]   
  218.   –enable-embedded-mysqli  MYSQLi: Enable embedded support   
  219.                             Note: Does not work with MySQL native driver!   
  220.   –with-oci8[=DIR]       Include Oracle (OCI8) support. DIR defaults to $ORACLE_HOME.   
  221.                           Use –with-oci8=instantclient,/path/to/instant/client/lib    
  222.                           to use an Oracle Instant Client installation   
  223.   –with-adabas[=DIR]     Include Adabas D support [/usr/local]   
  224.   –with-sapdb[=DIR]      Include SAP DB support [/usr/local]   
  225.   –with-solid[=DIR]      Include Solid support [/usr/local/solid]   
  226.   –with-ibm-db2[=DIR]    Include IBM DB2 support [/home/db2inst1/sqllib]   
  227.   –with-ODBCRouter[=DIR] Include ODBCRouter.com support [/usr]   
  228.   –with-empress[=DIR]    Include Empress support [$EMPRESSPATH]   
  229.                           (Empress Version >= 8.60 required)   
  230.   –with-empress-bcs[=DIR]   
  231.                           Include Empress Local Access support [$EMPRESSPATH]   
  232.                           (Empress Version >= 8.60 required)   
  233.   –with-birdstep[=DIR]   Include Birdstep support [/usr/local/birdstep]   
  234.   –with-custom-odbc[=DIR]   
  235.                           Include user defined ODBC support. DIR is ODBC install base   
  236.                           directory [/usr/local]. Make sure to define CUSTOM_ODBC_LIBS and  
  237.                           have some odbc.h in your include dirs. f.e. you should define    
  238.                           following for Sybase SQL Anywhere 5.5.00 on QNX, prior to   
  239.                           running this configure script:   
  240.                               CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"  
  241.                               LDFLAGS=-lunix   
  242.                               CUSTOM_ODBC_LIBS="-ldblib -lodbc"  
  243.   –with-iodbc[=DIR]      Include iODBC support [/usr/local]   
  244.   –with-esoob[=DIR]      Include Easysoft OOB support [/usr/local/easysoft/oob/client]   
  245.   –with-unixODBC[=DIR]   Include unixODBC support [/usr/local]   
  246.   –with-dbmaker[=DIR]    Include DBMaker support   
  247.   –enable-pcntl          Enable pcntl support (CLI/CGI only)   
  248.   –disable-pdo           Disable PHP Data Objects support   
  249.   –with-pdo-dblib[=DIR]    PDO: DBLIB-DB support.  DIR is the FreeTDS home directory   
  250.   –with-pdo-firebird[=DIR] PDO: Firebird support.  DIR is the Firebird base   
  251.                             install directory [/opt/firebird]   
  252.   –with-pdo-mysql[=DIR]    PDO: MySQL support. DIR is the MySQL base directory   
  253.                                  If mysqlnd is passed as DIR, the MySQL native   
  254.                                  native driver will be used [/usr/local]   
  255.   –with-zlib-dir[=DIR]       PDO_MySQL: Set the path to libz install prefix   
  256.   –with-pdo-oci[=DIR]      PDO: Oracle OCI support. DIR defaults to $ORACLE_HOME.   
  257.                             Use –with-pdo-oci=instantclient,prefix,version    
  258.                             for an Oracle Instant Client SDK.    
  259.                             For Linux with 10.2.0.3 RPMs (for example) use:   
  260.                             –with-pdo-oci=instantclient,/usr,10.2.0.3   
  261.   –with-pdo-odbc=flavour,dir   
  262.                             PDO: Support for 'flavour' ODBC driver.   
  263.                             include and lib dirs are looked for under 'dir'.   
  264.                                
  265.                             'flavour' can be one of:  ibm-db2, iODBC, unixODBC, generic   
  266.                             If ',dir' part is omitted, default for the flavour    
  267.                             you have selected will used. e.g.:   
  268.                                
  269.                               –with-pdo-odbc=unixODBC   
  270.                                  
  271.                             will check for unixODBC under /usr/local. You may attempt    
  272.                             to use an otherwise unsupported driver using the "generic"    
  273.                             flavour.  The syntax for generic ODBC support is:   
  274.                                
  275.                               –with-pdo-odbc=generic,dir,libname,ldflags,cflags   
  276.   
  277.                             When build as shared the extension filename is always pdo_odbc.so   
  278.   –with-pdo-pgsql[=DIR]    PDO: PostgreSQL support.  DIR is the PostgreSQL base   
  279.                             install directory or the path to pg_config   
  280.   –without-pdo-sqlite[=DIR]   
  281.                             PDO: sqlite 3 support.  DIR is the sqlite base   
  282.                             install directory [BUNDLED]   
  283.   –with-pgsql[=DIR]      Include PostgreSQL support.  DIR is the PostgreSQL   
  284.                           base install directory or the path to pg_config   
  285.   –disable-phar          Disable phar support   
  286.   –disable-posix         Disable POSIX-like functions   
  287.   –with-pspell[=DIR]     Include PSPELL support.   
  288.                           GNU Aspell version 0.50.0 or higher required   
  289.   –with-libedit[=DIR]    Include libedit readline replacement (CLI/CGI only)   
  290.   –with-readline[=DIR]   Include readline support (CLI/CGI only)   
  291.   –with-recode[=DIR]     Include recode support   
  292.   –disable-session       Disable session support   
  293.   –with-mm[=DIR]           SESSION: Include mm support for session storage   
  294.   –enable-shmop          Enable shmop support   
  295.   –disable-simplexml     Disable SimpleXML support   
  296.   –with-libxml-dir=DIR     SimpleXML: libxml2 install prefix   
  297.   –with-snmp[=DIR]       Include SNMP support   
  298.   –with-openssl-dir[=DIR]  SNMP: openssl install prefix   
  299.   –enable-ucd-snmp-hack    SNMP: Enable UCD SNMP hack   
  300.   –enable-soap           Enable SOAP support   
  301.   –with-libxml-dir=DIR     SOAP: libxml2 install prefix   
  302.   –enable-sockets        Enable sockets support   
  303.   –without-sqlite=DIR    Do not include sqlite support.  DIR is the sqlite base   
  304.                           install directory [BUNDLED]   
  305.   –enable-sqlite-utf8      SQLite: Enable UTF-8 support for SQLite   
  306.   –with-sybase-ct[=DIR]  Include Sybase-CT support.  DIR is the Sybase home   
  307.                           directory [/home/sybase]   
  308.   –enable-sysvmsg        Enable sysvmsg support   
  309.   –enable-sysvsem        Enable System V semaphore support   
  310.   –enable-sysvshm        Enable the System V shared memory support   
  311.   –with-tidy[=DIR]       Include TIDY support   
  312.   –disable-tokenizer     Disable tokenizer support   
  313.   –enable-wddx           Enable WDDX support   
  314.   –with-libxml-dir=DIR     WDDX: libxml2 install prefix   
  315.   –with-libexpat-dir=DIR   WDDX: libexpat dir for XMLRPC-EPI (deprecated)   
  316.   –disable-xml           Disable XML support   
  317.   –with-libxml-dir=DIR     XML: libxml2 install prefix   
  318.   –with-libexpat-dir=DIR   XML: libexpat install prefix (deprecated)   
  319.   –disable-xmlreader     Disable XMLReader support   
  320.   –with-libxml-dir=DIR     XMLReader: libxml2 install prefix   
  321.   –with-xmlrpc[=DIR]     Include XMLRPC-EPI support   
  322.   –with-libxml-dir=DIR     XMLRPC-EPI: libxml2 install prefix   
  323.   –with-libexpat-dir=DIR   XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)   
  324.   –with-iconv-dir=DIR      XMLRPC-EPI: iconv dir for XMLRPC-EPI   
  325.   –disable-xmlwriter     Disable XMLWriter support   
  326.   –with-libxml-dir=DIR     XMLWriter: libxml2 install prefix   
  327.   –with-xsl[=DIR]        Include XSL support.  DIR is the libxslt base   
  328.                           install directory (libxslt >= 1.1.0 required)   
  329.   –enable-zip            Include Zip read/write support   
  330.   –with-zlib-dir[=DIR]     ZIP: Set the path to libz install prefix   
  331.   –with-pcre-dir           ZIP: pcre install prefix   
  332.   –disable-mysqlnd-compression-support   
  333.                             Enable support for the MySQL compressed protocol in mysqlnd   
  334.   –with-zlib-dir[=DIR]       mysqlnd: Set the path to libz install prefix   
  335.   
  336. PEAR:   
  337.   
  338.   –with-pear=DIR         Install PEAR in DIR [PREFIX/lib/php]   
  339.   –without-pear          Do not install PEAR   
  340.   
  341. Zend:   
  342.   
  343.   –with-zend-vm=TYPE     Set virtual machine dispatch method. Type is   
  344.                           one of CALL, SWITCH or GOTO [TYPE=CALL]   
  345.   –enable-maintainer-zts Enable thread safety – for code maintainers only!!   
  346.   –disable-inline-optimization    
  347.                           If building zend_execute.lo fails, try this switch  
  348.   –enable-zend-multibyte Compile with zend multibyte support   
  349.   
  350. TSRM:   
  351.   
  352.   –with-tsrm-pth[=pth-config]   
  353.                           Use GNU Pth   
  354.   –with-tsrm-st          Use SGI's State Threads   
  355.   –with-tsrm-pthreads    Use POSIX threads (default)   
  356.   
  357. Libtool:   
  358.   
  359.   –enable-shared[=PKGS]  build shared libraries [default=yes]   
  360.   –enable-static[=PKGS]  build static libraries [default=yes]   
  361.   –enable-fast-install[=PKGS]  optimize for fast installation [default=yes]   
  362.   –with-gnu-ld           assume the C compiler uses GNU ld [default=no]   
  363.   –disable-libtool-lock  avoid locking (might break parallel builds)   
  364.   –with-pic              try to use only PIC/non-PIC objects [default=use both]   
  365.   –with-tags[=TAGS]      include additional configurations [automatic]   
  366.   
  367.   –with-gnu-ld           assume the C compiler uses GNU ld [default=no]   
  368.   
  369.   
  370.   
  371.   
  372.   

附录2:一个操作PHP-FPM的脚本

因为php5.3.3的php-fpm是内置的,所以php/sbin/php-fpm是一个二进制文件而不是一个脚本,所以需要自己编写脚本进行载入、平滑重启等操作。

内容如下

XML/HTML代码
  1. #! /bin/sh  
  2.  
  3. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  
  4. CMD=/usr/local/php/sbin/php-fpm  
  5. PID_FILE=/usr/local/php/var/run/php-fpm.pid  
  6. NAME=php-fpm  
  7. DESC=php-fpm  
  8.   
  9.   
  10. test -x $CMD || exit 0  
  11.   
  12.   
  13. case "$1" in  
  14.   start)  
  15.         echo -n "Starting $DESC: "  
  16.         $CMD  
  17.         echo "$NAME."  
  18.          ;;  
  19.    stop)  
  20.          echo -n "Stopping $DESC: "  
  21.          #SIGQUIT平滑终止,SIGINT立即终止  
  22.          /bin/kill -SIGQUIT `cat $PID_FILE`  
  23.          echo "$NAME."  
  24.          ;;  
  25.    restart|force-reload)  
  26.          echo -n "Restarting $DESC: "  
  27.          /bin/kill -SIGQUIT `cat $PID_FILE`  
  28.          $CMD  
  29.          echo "$NAME."  
  30.          ;;  
  31.    reload)  
  32.          echo -n "Reloading $DESC configuration: "  
  33.           /bin/kill -SIGUSR2 `cat $PID_FILE`  
  34.          echo "$NAME."  
  35.          ;;  
  36.    *)  
  37.          echo "Usage: $NAME {start|stop|restart|reload|force-reload}" >&2  
  38.          exit 1  
  39.          ;;  
  40. esac  
  41.   
  42.   
  43. exit 0  

保存到/etc/init.d,然后用rcconf设置开机自启动即可。至于php5.3.3中php-fpm的详细控制参数,如下文:

 

PHP5.3.3内php-fpm 不再支持 php-fpm 补丁具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:
master进程可以理解以下信号
SIGINT, SIGTERM 立刻终止
SIGQUIT 平滑终止
SIGUSR1 重新打开日志文件
SIGUSR2 平滑重载所有worker进程并重新载入配置和二进制模块
示例:
php-fpm 关闭:
kill -SIGINT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启:
kill -SIGUSR2 `cat /usr/local/php/var/run/php-fpm.pid`

 

附录3:如何节省内存开销

默认按此配置512MB内存的系统将会感觉运行缓慢

欲节省内存可按此步骤:

1、限制PHP-CGI进程,MAX控制在12、启动进程为2即可。

2、注意控制apc/ea/xcache的shm_size大小,在php-cgi下,每个进程都需要占用一份缓存;很容易导致内存不足。

3、编辑my.cnf,把各类缓存依情况减少,如果没有使用INNODB引擎,可取消

4、取消不使用的服务,如使用SFTP代替FTP,对于海外服务器实际上更稳定,并更节省内存;

各类有用的命令

vmstat 3 每隔三秒刷新系统内存使用状况

swapoff -a  收回Swap空间

swapon -a 激活Swap文件

free -m 查看内存使用情况

top 进程状况

ps aux 查看进程

如果SWAP占用超过30%将严重影响系统性能。

 

附录3:PHP5.3.X内的PHP-FPM设置

 

  1. 小于PHP5.3.3版本的php-fpm需要在svn内获取
  2. PHP5.3.3及以后的版本,默认附带php-fpm
  3. PHP5.3.3的php-fpm实现了类apache的进程管理方式,可在服务器压力大的时候动态调整PHP进程数。PHP5.2内的PHP-FPM没有实现这个功能
  4. 对于小内存的VPS(指小于1G内存的服务器),最好不要设置太大,否则压力增大时超过swap就会导致Fatal error: Allowed memory size of **** bytes exhausted (tried to allocate **** bytes)的错误,不管memory_limit设置的多大,并注意使用监控工具监控swap占用率(如监控宝),一般超过30%就可以引起注意了

欢迎大佬支持本博客的发展 -- Donate --

本文链接:VPS服务安装与配置STEP BY STEP

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  1. 没有评论

  1. 没有通告