安装环境:centos5.4\5.5\5.6 x32

  1. #!/bin/bash  
  2.  
  3. echo "get some sources"  
  4.  
  5. LANG=C 
  6. 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  
  7.  
  8. cat >>/etc/security/limits.conf<<EOF 
  9. * soft nofile 51200  
  10. * hard nofile 51200  
  11. EOF  
  12.  
  13. echo "start install PHP 5.2.8 lib"  
  14.  
  15. tar zxvf libiconv-1.12.tar.gz  
  16. cd libiconv-1.12/  
  17. ./configure --prefix=/usr/local  
  18. make  
  19. make install  
  20. cd ../  
  21.  
  22. tar zxvf libmcrypt-2.5.8.tar.gz  
  23. cd libmcrypt-2.5.8/  
  24. ./configure  
  25. make  
  26. make install  
  27. /sbin/ldconfig  
  28. cd libltdl/  
  29. ./configure --enable-ltdl-install  
  30. make  
  31. make install  
  32. cd ../  
  33. cd ../  
  34.  
  35. tar zxvf mhash-0.9.9.tar.gz  
  36. cd mhash-0.9.9/  
  37. ./configure  
  38. make  
  39. make install  
  40. cd ../  
  41.  
  42. echo "start install GeoIP 1.4.6 lib"  
  43. tar zxvf  GeoIP.tar.gz  
  44. cd GeoIP-1.4.6  
  45. ./configure && make && make install  
  46. cd ../  
  47.  
  48. ln -s /usr/local/lib/libGeoIP.so.1 /usr/lib/libGeoIP.so.1  
  49. ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la  
  50. ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so  
  51. ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4  
  52. ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8  
  53. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a  
  54. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la  
  55. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so  
  56. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2  
  57. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1  
  58.  
  59. tar zxvf mcrypt-2.6.7.tar.gz  
  60. cd mcrypt-2.6.7/  
  61. /sbin/ldconfig  
  62. ./configure  
  63. make  
  64. make install  
  65. cd ../  
  66.  
  67. echo "start install MySQL 5.1.30"  
  68.  
  69. /usr/sbin/groupadd mysql  
  70. /usr/sbin/useradd -g mysql mysql  
  71. tar zxvf mysql-5.1.30.tar.gz  
  72. cd mysql-5.1.30/  
  73. ./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-innodb  
  74. make  
  75. make install  
  76. mkdir -p /var/lib/mysql  
  77. chmod +w /usr/local/mysql  
  78. chmod +w /usr/local/mysql  
  79. chown -R mysql:mysql /var/lib/mysql  
  80. cd ../  
  81.  
  82. rm -f /etc/my.cnf  
  83. cp my-bak.cnf /usr/local/mysql/my.cnf  
  84.  
  85. echo "install mysql-lib"  
  86.  
  87. rpm -ivh MySQL-shared-community-5.1.31-0.rhel5.i386.rpm  
  88. cp pureftpd-mysql-bak.conf /etc/pureftpd-mysql.conf  
  89.  
  90. /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 
  91.  
  92. /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &  
  93.  
  94. ln -s /usr/local/mysql/bin/* /usr/bin/  
  95. ln -s /tmp/mysql.sock  /var/lib/mysql/mysql.sock  
  96. cp mysql /etc/init.d/mysql  
  97.  
  98. echo "start install PHP"  
  99.  
  100. tar zxvf php-5.2.8.tar.gz  
  101. gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1  
  102. cd php-5.2.8/  
  103. ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --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 --enable-zip  
  104. make ZEND_EXTRA_LIBS='-liconv' 
  105. make install  
  106. cd ../  
  107.  
  108. rm -f /etc/php.ini  
  109. cp php-bak.ini /usr/local/php/etc/php.ini  
  110.  
  111. echo "start install PHP extra"  
  112.  
  113. tar zxvf memcache-2.2.4.tgz  
  114. cd memcache-2.2.4/  
  115. /usr/local/php/bin/phpize  
  116. ./configure --with-php-config=/usr/local/php/bin/php-config  
  117. make  
  118. make install  
  119. cd ../  
  120.  
  121. tar jxvf eaccelerator-0.9.5.3.tar.bz2  
  122. cd eaccelerator-0.9.5.3/  
  123. /usr/local/php/bin/phpize  
  124. ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config  
  125. make  
  126. make install  
  127. cd ../  
  128.  
  129. tar zxvf PDO_MYSQL-1.0.2.tgz  
  130. cd PDO_MYSQL-1.0.2/  
  131. /usr/local/php/bin/phpize  
  132. ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql  
  133. make  
  134. make install  
  135. cd ../  
  136.  
  137. tar zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz  
  138. mkdir -p /usr/local/Zend/lib  
  139. cp /data0/software/centos/ZendOptimizer-3.3.3-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/Zend/lib/  
  140.  
  141. echo "config eAccelerator"  
  142.  
  143. mkdir -p /usr/local/eaccelerator_cache  
  144.  
  145. cat >>/etc/sysctl.conf<<EOF 
  146. kernel.shmmax = 134217728 
  147. net.ipv4.tcp_fin_timeout = 30 
  148. net.ipv4.tcp_keepalive_time = 300 
  149. net.ipv4.tcp_syncookies = 1 
  150. net.ipv4.tcp_tw_reuse = 1 
  151. net.ipv4.tcp_tw_recycle = 1 
  152. net.ipv4.ip_local_port_range = 5000    65000  
  153. EOF  
  154.  
  155. /sbin/sysctl -p  
  156.  
  157. echo "add www:www"  
  158.  
  159. /usr/sbin/groupadd www  
  160. /usr/sbin/useradd -g www www  
  161.  
  162.  
  163. echo "config php-fpm"  
  164.  
  165. rm -f /usr/local/php/etc/php-fpm.conf  
  166. cp php-fpm-bak.conf /usr/local/php/etc/php-fpm.conf  
  167.  
  168. echo "start php-cgi"  
  169.  
  170. ulimit -SHn 51200  
  171. /usr/local/php/sbin/php-fpm start  
  172.  
  173.  
  174. tar zxvf pcre-7.8.tar.gz  
  175. cd pcre-7.8/  
  176. ./configure  
  177. make && make install  
  178. cd ../  
  179.  
  180. echo "install Nginx 0.7.63"  
  181.  
  182. tar zxvf nginx-0.7.63.tar.gz  
  183. cd nginx-0.7.63/  
  184. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_gzip_static_module --with-http_geoip_module  
  185. make && make install  
  186. cd ../  
  187.  
  188. echo "start install GeoIP country and city  DATABASES lib"  
  189. gzip -d GeoLiteCity.dat.gz  
  190. mv GeoLiteCity.dat  /usr/local/nginx/conf/GeoLiteCity.dat  
  191.  
  192. gzip -d GeoIP.dat.gz  
  193. mv GeoIP.dat  /usr/local/nginx/conf/GeoIP.dat  
  194.  
  195. rm -f /usr/local/nginx/conf/nginx.conf  
  196. cp nginx-bak.conf /usr/local/nginx/conf/nginx.conf  
  197. cp fcgi-bak.conf /usr/local/nginx/conf/fcgi.conf  
  198.  
  199. cat >>/etc/rc.local<<EOF 
  200. ulimit -SHn 51200  
  201. /usr/local/php/sbin/php-fpm start  
  202. /usr/local/nginx/sbin/nginx  
  203. /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf  
  204. EOF  
  205.  
  206. echo "config Nginx log"  
  207.  
  208. cp cut_nginx_log-bak.sh /usr/local/nginx/sbin/cut_nginx_log.sh  
  209. cp ngx-bak.sh /usr/local/nginx/sbin/ngx.sh  
  210. cp rewrite-bak.conf /usr/local/nginx/conf/rewrite.conf  
  211. cp proxy-bak.conf /usr/local/nginx/conf/proxy.conf  
  212.  
  213. yum -y install vixie-cron  
  214.  
  215. cp root-bak /var/spool/cron/root  
  216. service crond restart  
  217.  
  218. echo "install pure-ftpd"  
  219.  
  220. tar zxvf pure-ftpd-1.0.21.tar.gz  
  221. cd pure-ftpd-1.0.21  
  222. ./configure -prefix=/usr/local/pureftpd -with-mysql=/usr/local/mysql -with-paranoidmsg -with-welcomemsg -with-uploadscript -with-cookie -with-virtualchroot -with-virtualhosts -with-virtualroot -with-diraliases -with-quotas -with-sysquotas -with-ratios -with-ftpwho -with-throttling  
  223. make  
  224. make check  
  225. make install  
  226. cd configuration-file  
  227. chmod u+x pure-config.pl  
  228. cp pure-config.pl /usr/local/sbin/pure-config.pl  
  229. cd ../  
  230. cd ../  
  231. cp pure-ftpd-bak.conf /usr/local/etc/pure-ftpd.conf  
  232.  
  233. echo "make dir"  
  234.  
  235. mkdir -p /data1/logs  
  236. mkdir -p /data0/account  
  237. mkdir -p /data0/htdocs  
  238. chmod +w /data0  
  239. chmod +w /data1  
  240. chown -R www:www /data0  
  241. chown -R www:www /data1  
  242. chown www:www /usr/local/nginx/conf/nginx.conf  
  243. chmod -R 777 /usr/local/nginx/conf  
  244.  
  245. echo "start Nginx"  
  246.  
  247. ulimit -SHn 51200  
  248. /usr/local/nginx/sbin/nginx  
  249.  
  250. echo "start pure-ftpd"  
  251.  
  252. /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf  
  253.  
  254. service crond restart  
  255. service iptables restart  
  256.  
  257. /usr/sbin/groupadd products  
  258. /usr/sbin/useradd -g products products  
  259. mkdir -p /data0/products  
  260. chown -R products:products /data0/products  
  261.  
  262. tar -zxf ocaml-3.10.2.tar.gz  
  263. cd  ocaml-3.10.2  
  264. ./configure  
  265. make world opt  
  266. make install  
  267. cd ../  
  268. tar -zxf unison-2.27.57.tar.gz  
  269. cd unison-2.27.57  
  270. make UISTYLE=text 
  271. make install  
  272. cp ./unison /usr/local/bin  
  273. cd ../  
  274.  
  275. yum -y install sendmail mailx  
  276. /etc/rc.d/init.d/sendmail start  
  277.  
  278. echo "Configure methods of the system user commands recording "  
  279. ./history-011.5.bin  
  280.  
  281. mkdir -p /data0/www  
  282. chown -R  www:www /data0/www  
  283. rm -rf  /etc/init.d/mysqld  
  284. cp mysqld  /etc/init.d/  
  285. rm -rf /usr/local/nginx/conf/nginx.php  
  286. cp nginx.php /usr/local/nginx/conf/   
  287. rm -rf /usr/local/nginx/sbin/ngx.sh  
  288. cp ngx.sh /usr/local/nginx/sbin/  
  289. chmod +x mysqld  
  290. echo "configure iptables and start install SNMP"  
  291. chmod +x prelinux-11.5.bin  
  292. ./prelinux-11.5.bin  
  293. echo "start phpmyadmin"  
  294. unzip phpmyadmin.zip  
  295. mv phpMyAdmin-3.2.2-all-languages /data0/www/phpmyadmin  
  296. chown -R www:www /data0/www  
  297. echo "Generate rsa public key "  
  298. su www  
  299. cd  
  300. ssh-keygen -t rsa  
  301.  
  302. echo "The WEB SERVER installation was completed"  
  303.  
  304.    
  305.  
  306.  
  307. febay@code.root  
  308.  
  309.    
  310.  
  311. cd /etc/snmp/  &&  
  312.  
  313. scp root@220.231.158.124:~/snmpd.conf  /etc/snmp/  
  314.  
  315.    
  316.  
  317.  vi /etc/snmp/snmpd.conf  
  318.  
  319. com2sec notConfigUser   220.231.158.124         public_jia  
  320.  
  321.  
  322. /etc/init.d/snmpd restart  
  323.  
  324.    
  325.  
  326. #!/bin/bash  
  327. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin  
  328. iptables -F  
  329. iptables -A INPUT -i lo -j ACCEPT  
  330. iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT  
  331. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  
  332. #for monitor  
  333. #for ping:  
  334. iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT  
  335. iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT  
  336. #iptables -A INPUT -p tcp  --syn  --dport 80 -m connlimit --connlimit-above 8  -j REJECT  
  337. iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT  
  338. iptables  -A INPUT   -s   84.22.112.0/26  -m tcp  -p tcp  --dport  3306  -j ACCEPT  
  339.  
  340.  
  341. #iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60  --hitcount 15 -j REJECT  
  342. #iptables -A INPUT -m state --state NEW  -m tcp  -p tcp  --dport 80 -m connlimit --connlimit-above 5 -j REJECT  
  343.  
  344. #iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT  
  345. #iptables -A  INPUT  -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT  
  346.  
  347. #iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j REJECT  
  348. #iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT  
  349.  
  350.  
  351. #iptables -A INPUT -p tcp  --syn --dport 80 -m connlimit --connlimit-above 1 -j REJECT  
  352. #iptables -A INPUT -m limit --limit 3/hour --limit-burst 5       -j  REJECT  
  353. #iptables  -A  INPUT  -p tcp  --syn  -m  limit  --limit  1/s   -j  ACCEPT  
  354.  
  355. #iptables -A INPUT -p tcp     --dport 80 -m connlimit --connlimit-above 30 -j REJECT  
  356.  
  357.  
  358. #for DNS:  
  359. iptables -A INPUT -p tcp --source-port 53 -j ACCEPT  
  360. iptables -A INPUT -p udp --source-port 53 -j ACCEPT  
  361. ##########################################  
  362. #for special IP  drop something port  
  363. #dropip="203.188.197.0/24 168.95.5.0/24 203.188.197.9" 
  364. # for ip in $dropip; do  
  365. #        iptables -A INPUT  -s $ip  -j DROP  
  366. #        iptables -A OUTPUT -d $ip -j DROP  
  367. # done  
  368. ####################################  
  369. TCPPORT=" 80 20 22  21 12000 873 199 1388 25 110 993 995 465" 
  370. for port in $TCPPORT; do  
  371.         iptables -A INPUT -p tcp --dport $port -j ACCEPT  
  372.         iptables -A OUTPUT -p tcp --sport $port -j ACCEPT  
  373. done  
  374. #################################################  
  375. UDPPORT="161 199 25" 
  376. for port in $UDPPORT; do  
  377.         iptables -A INPUT -p udp --dport $port -j ACCEPT  
  378.         iptables -A OUTPUT -p udp --sport $port -j ACCEPT  
  379. done  
  380. ######################################################  
  381. #for Local FTP Server:  
  382. iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT  
  383. iptables -A INPUT -p tcp  --dport 40000:42000 -j ACCEPT  
  384. #for same ip in port  
  385. #acceptport="873 3306" 
  386. #for port in $acceptport; do  
  387. #acceptip="205.209.136.212" 
  388. # for ip in $acceptip; do  
  389. #     iptables -A INPUT -p tcp --dport $port -s $ip -j ACCEPT  
  390. #     iptables -A OUTPUT -p tcp --sport $port -d $ip -j ACCEPT     
  391. # done  
  392. #done  
  393.  
  394. #iptables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT  
  395. #iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED -j ACCEPT  
  396.  
  397.  
  398. iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset  
  399. iptables -A INPUT -j DROP  
  400. iptables -A FORWARD -j DROP  
  401.    
  402.    
  403.    
  404.    
  405.  
  406.    
  407.  
  408.    
  409.  
  410.    
  411.