1. 程式人生 > >Linux下的Nginx安裝(開機自啟動)

Linux下的Nginx安裝(開機自啟動)

1.在安裝Nginx前,需要確保系統安裝了g++,gcc, openssl-devel、pcre-devel和zlib-devel軟體。安裝必須軟體:

[java] view plain copy  print?
  1. yum  -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel  

2.Nginx安裝

在centos下執行yum search nginx可以檢視系統自帶的Nginx,執行 yum install nginx可以快捷的安裝Nginx。但由於系統自帶的Nginx的版本太低,所以一般我們不這麼安裝。不過在我們執行yum install nginx可以看到Nginx依賴包。

2.1安裝Nginx的依賴包

[java] view plain copy  print?
  1. yum install GeoIP gd libXpm libxslt  

2.2 安裝Nginx

1.上傳我們剛下載的nginx的tar包到Linux伺服器上,並將tar包移動到/usr/local目錄下

[java] view plain copy  print?
  1. mv nginx-1.7.3.tar.gz /usr/local  

2.解壓安裝

進入/usr/local目錄下(cd /usr/local)解壓Nginx的安裝包

[java] view plain
 copy  print?
  1. tar –zxv nginx-1.7.3.tar.gz  

3.Nginx配置

為了方便起見,將nginx-1.7.3重新命名為nginx

[java] view plain copy  print?
  1. cd nginx  
  2.  ./configure  
  3.  make  
  4.  make install  

2.3驗證

檢視nginx安裝路徑(whereis nginx)並啟動Nginx( /usr/local/nginx/sbin/nginx) [java] view plain copy  print?
  1. whereis nginx  
  2. /usr/local/nginx/sbin/nginx  

3.開機自動啟動Nginx

這裡使用的是編寫shell指令碼的方式來處理,vi /etc/init.d/nginx輸入下面的程式碼 [java] view plain copy  print?
  1. #!/bin/bash  
  2. # nginx Startup script for the Nginx HTTP Server  
  3. # it is v.0.0.2 version.  
  4. # chkconfig: - 8515
  5. # description: Nginx is a high-performance web and proxy server.  
  6. #              It has a lot of features, but it's not for everyone.  
  7. # processname: nginx  
  8. # pidfile: /var/run/nginx.pid  
  9. # config: /usr/local/nginx/conf/nginx.conf  
  10. nginxd=/usr/local/nginx/sbin/nginx  
  11. nginx_config=/usr/local/nginx/conf/nginx.conf  
  12. nginx_pid=/var/run/nginx.pid  
  13. RETVAL=0
  14. prog="nginx"
  15. # Source function library.  
  16. . /etc/rc.d/init.d/functions  
  17. # Source networking configuration.  
  18. . /etc/sysconfig/network  
  19. # Check that networking is up.  
  20. [ ${NETWORKING} = "no" ] && exit 0
  21. [ -x $nginxd ] || exit 0
  22. # Start nginx daemons functions.  
  23. start() {  
  24. if [ -e $nginx_pid ];then  
  25.    echo "nginx already running...."
  26.    exit 1
  27. fi  
  28.    echo -n $"Starting $prog: "
  29.    daemon $nginxd -c ${nginx_config}  
  30.    RETVAL=$?  
  31.    echo  
  32.    [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx  
  33.    return $RETVAL  
  34. }  
  35. # Stop nginx daemons functions.  
  36. stop() {  
  37.         echo -n $"Stopping $prog: "
  38.         killproc $nginxd  
  39.         RETVAL=$?  
  40.         echo  
  41.         [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid  
  42. }  
  43. # reload nginx service functions.  
  44. reload() {  
  45.     echo -n $"Reloading $prog: "
  46.     #kill -HUP `cat ${nginx_pid}`  
  47.     killproc $nginxd -HUP  
  48.     RETVAL=$?  
  49.     echo  
  50. }  
  51. # See how we were called.  
  52. case"$1" in  
  53. start)  
  54.         start  
  55.         ;;  
  56. stop)  
  57.         stop  
  58.         ;;  
  59. reload)  
  60.         reload  
  61.         ;;  
  62. restart)  
  63.         stop  
  64.         start  
  65.         ;;  
  66. status)  
  67.         status $prog  
  68.         RETVAL=$?  
  69.         ;;  
  70. *)  
  71.         echo $"Usage: $prog {start|stop|restart|reload|status|help}"
  72.         exit 1
  73. esac  
  74. exit $RETVAL  


:wq  儲存並退出
設定檔案的訪問許可權
chmod a+x /etc/init.d/nginx   (a+x ==> all user can execute  所有使用者可執行) 
[java] view plain copy  print?
  1. chmod a+x /etc/init.d/nginx   

這樣在控制檯就很容易的操作nginx了:檢視Nginx當前狀態、啟動Nginx、停止Nginx、重啟Nginx… [java] view plain copy  print?
  1. /etc/init.d/nginx status  
  2. /etc/init.d/nginx start  
  3. /etc/init.d/nginx stop  
  4. /etc/init.d/nginx restart  

同樣的修改了nginx的配置檔案nginx.conf,也可以使用上面的命令重新載入新的配置檔案並執行,可以將此命令加入到rc.local檔案中,這樣開機的時候nginx就預設啟動了

vi /etc/rc.local

加入一行  /etc/init.d/nginx start    儲存並退出,下次重啟會生效。