一、配置防火牆
vim /etc/sysconfig/iptables
# 允許80端口通過防火牆
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# 允許3306端口通過防火牆
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 允許21端口通過防火牆
-A INPUT -p tcp -m state -m tcp --dport 21 --state NEW -j ACCEPT
# 禁用ping
-A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
# 重新開機防火牆使配置生效
/etc/init.d/iptables restart
備注: COMMIT ~ COMMIT 之間方可生效
二、安裝Tengine
# 更新yum
yum update
# 删除系統自帶的軟體包
yum remove httpd* php*
# 編譯庫
yum install gcc-c++
# 安裝依賴庫
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
# 安裝ngx_cache_purge子產品
wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz && tar -zxvf ngx_cache_purge-2.1.tar.gz && rm -rf ngx_cache_purge-2.1.tar.gz
# 下載下傳Tengine
wget http://tengine.taobao.org/download/tengine-2.0.3.tar.gz
# 解壓,重命名,删除包
tar -zxvf tengine-2.0.3.tar.gz && rm -rf tengine-2.0.3.tar.gz
# 安裝Tengine
cd tengine-2.0.3 && ./configure --add-module=/usr/local/ngx_cache_purge-2.1 --with-http_stub_status_module --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
# 設定nginx開機啟動 (配置檔案 -> nginx開機啟動.txt)
vim /etc/rc.d/init.d/nginx
chmod 775 /etc/rc.d/init.d/nginx
chkconfig --level 012345 nginx on
# 添加nginx組與添加nginx使用者并啟動nginx
groupadd nginx && useradd -g nginx nginx && service nginx start
三、安裝MySQL
# 輸入Y即可自動安裝,直到安裝完成
yum install mysql mysql-server
# 啟動MySQL
/etc/init.d/mysqld start
# 設為開機啟動
chkconfig mysqld on
# 拷貝配置檔案(注意:如果/etc目錄下面預設有一個my.cnf,直接覆寫即可)
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# 為root賬戶設定密碼回車,根據提示輸入Y,輸入2次密碼,回車,根據提示一路輸入Y,最後出現:Thanks for using MySQL!
mysql_secure_installation
# MySql密碼設定完成,重新啟動 MySQL:(restart:重新開機, stop:停止, start:啟動)
/etc/init.d/mysqld (restart|stop|start)
service mysqld (restart|stop|start)
四、安裝PHP5
# 根據提示輸入Y直到安裝完成
yum install php php-fpm
# 這裡選擇以上安裝包進行安裝,根據提示輸入Y回車
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
# 設定php-fpm開機啟動
chkconfig php-fpm on
# 啟動php-fpm (restart:重新開機, stop:停止, start:啟動)
/etc/init.d/php-fpm (restart|stop|start)
service php-fpm (restart|stop|start)
五、配置nginx支援php
# 備份原有配置檔案
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.backup
# 編輯 nginx.conf (配置檔案 -> nginx.conf.txt)
vim /usr/local/nginx/conf/nginx.conf
# 增加代理配置檔案 (配置檔案 -> proxy(代理配置).conf.txt)
vim /usr/local/nginx/conf/proxy.conf
# 增加主機配置檔案 (配置檔案 -> mysvrhost(主機配置).conf.txt)
vim /usr/local/nginx/conf/mysvrhost.conf
# 增加壓縮配置檔案 (配置檔案 -> mysvrhost(主機配置).conf.txt)
vim /usr/local/nginx/conf/gzip.conf
# 增加虛拟機配置檔案 (配置檔案 -> 虛拟機.conf.txt)
vim /usr/local/nginx/conf/conf.d/xxx.conf
# 優化TCP設定 (配置檔案 -> 優化TCP設定.txt)
vim /etc/sysctl.conf
/sbin/sysctl -p
# 重新開機nginx
service nginx restart
六、php配置
# 編輯 php.ini
vim /etc/php.ini
# 在946行 把前面的分号去掉,改為date.timezone = PRC
date.timezone = PRC
# 在386行 列出PHP可以禁用的函數,如果某些程式需要用到這個函數,可以删除,取消禁用
disable_functions =
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
# 在432行 禁止顯示php版本的資訊
expose_php = Off
# 給session 相關使用者權限
cd /var/lib/php/ && chown -R nginx:nginx session
七、配置php-fpm
# 備份原有配置檔案并編輯
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.backup && vim /etc/php-fpm.d/www.conf
# 修改使用者為nginx
user = nginx
# 修改組為nginx
group = nginx
八、建立站點
# 進入 /home/webapps
cd /home/webapps
# 建立站點
mkdir www.xxx.com/{backup,logs,public} && cd www.xxx.com
# 設定Nginx運作權限
chown nginx.nginx -R public
# 建立測試檔案
vim public/index.php
# 檔案内容
<?php
phpinfo();
九、重新開機nginx,php-fpm
# 重新開機nginx
service nginx restart
# 重新開機php-fpm
service php-fpm restart