亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux: Nginx 安裝

系統 2116 0

安裝nginx

?

      sudo apt-get install nginx
    

?

Ubuntu安裝之后的文件結構大致為:

  • 所有的配置文件都在/etc/nginx下,并且每個虛擬主機已經安排在了/etc/nginx/sites-available下
  • 程序文件在/usr/sbin/nginx
  • 日志放在了/var/log/nginx中
  • 并已經在/etc/init.d/下創建了啟動腳本nginx
  • 默認的虛擬主機的目錄設置在了/var/www/nginx-default (有的版本 默認的虛擬主機的目錄設置在了/var/www, 請參考/etc/nginx/sites-available里的配置)

啟動nginx

?

      sudo /etc/init.d/nginx start
    

?

然后就可以訪問了, http://localhost/ , 一切正常!如果不能訪問,先不要繼續,看看是什么原因,解決之后再繼續。 啟動時候若顯示端口80被占用: Starting nginx: [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) 修改文件:/etc/nginx/sites-available/default,去掉 listen 前面的 # 號 , # 號在該文件里是注釋的意思 , 并且把 listen 后面的 80 端口號改為自己的端口,訪問是需要添加端口號。

?

(安裝完后如出現403錯誤,那可能是nginx配置文件里的網站路徑不正確)

Linux: Nginx 安裝
nginx默認頁面

?

配置php和mysql

安裝php和MySQL:

      sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql
    

?

安裝FastCgi

/usr/bin/spawn-fcgi這個文件來管理 FastCgi,它原屬于lighttpd這個包里面,但 9.10 后,spawn-fcgi 被分離出來單獨成包:

      sudo apt-get install spawn-fcgi
    

?

配置 nginx

修改nginx的配置文件:/etc/nginx/sites-available/default 修改主機名:

      server_name localhost;
    

?

修改index的一行修改為:

?

      index index.php index.html index.htm;
    
?

?

去掉下面部分的注釋用于支持 php 腳本:

?

      location ~ \.php$ {
include /etc/nginx/fastcgi_params; #需放在第一行,否則會出錯
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
}
    
?

?

重新啟動nginx:

?

      /etc/init.d/nginx stop
/etc/init.d/nginx start
    

?

?

啟動fastcgi php:

?

      spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
    
?

?

為了讓php-cgi開機自啟動: Ubuntu開機之后會執行/etc/rc.local文件中的腳本 所以我們可以直接在/etc/rc.local中添加啟動腳本。 spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi 添加到語句:exit 0 前面才行

創建、測試phpinfo:

      sudo vi /var/www/nginx-default/info.php
    
?
      <?php phpinfo(); ?>
    
?

打開 http://localhost/info.php

Linux: Nginx 安裝
Nginx phpinfo頁面

?

安裝nginx +uwsgi+ Django

這次采用 uwsgi 1.2+django1.4+nginx1.1.19+ubuntu12.04組合進行安裝

首先注意 要安裝比較新的軟件 如果你是ubuntu11.04和11.10 因為內核不同 所以安裝軟件版本不同

1.首先 安裝nginx: sudo apt-get install nginx 2.然后: 進行uwsgi的安裝之前 要安裝其他幾個: sudo apt-get install mysql-server libxml2 libxml2-dev python-dev libpcre3 libpcre3-dev python-MySQLdb 3.進行uwsgi的安裝: 可能由于軟件版本不夠新吧 ppa里頭安裝后出現502錯誤 所以 用軟件包安裝:

  1. wget http://projects.unbit.it/downloads/uwsgi-1.2.tar.gz
  2. tar zxvf uwsgi-1.2.tar.gz
  3. cd uwsgi-1.2
  4. make
  5. cp uwsgi /usr/bin

注:如果在MAKE 過程中出現如:(Python.h:沒有那個文件或目錄)

?

      #解決方法:
sudo apt-get install python-dev 
    
?

?

4.安裝django 之前我用ubuntu源安裝.由于admin管理的靜態問題.所以我還是改用下載安裝比較好. google下django 然后進入下載 https://www.djangoproject.com/download/ 用chrome下載默認/home/helios/下載 然后cd 然后cd 下載 接著 tar xzvf Django-1.4.tar.gz cd Django-1.4 sudo python setup.py install 這是最新版本.copy官網的安裝方法. 接著 sudo cp django/bin/django-admin.py /usr/bin/ 接下來 sudo mv /usr/bin/django-admin.py /usr/bin/django-admin 這是為了和源安裝在操作上保持一致 但是不知道有沒有問題.暫時沒有發現問題.有問題大家可以上來補教程. 可以了. 安裝好了.


建立項目------------------------

1.cd 2.django-admin startproject mysite

|-mysite |--mysite,manage.py |---__init__.py ,settings.py, urls.py

現在 就是剛剛說的admin靜態文件的問題. 我現在把剛剛下載的django安裝包的解壓文件夾里頭 /home/helios/下載/Django-1.4/django/contrib/admin下static文件夾直接復制到mysite下


這樣保持localhost/admin可以出現正常頁面不再是沒有樣式的了.


另一種解決admin靜態方法問題--------

sudo chmod -R 777 文件夾路徑.這個是給予文件夾下所有子文件子文件夾權限.

那么可以從源安裝django了 sudo apt-get install python-django 然后 mkdir /home/helios/mysite/static/admin cp -rf /usr/lib/python2.7/dist-packages/django/contrib/admin/media /home/helios/mysite/static/admin sudo chmod -R 777 /home/helios/mysite/static/admin 這樣就ok了

?

配置 nginx uwsgi django

交代下環境:

       我的電腦用戶名:helios;

    

       #sudo vim /etc/nginx/sites-available/default

    

?

出現nginx代碼:(序列號不要抄)

      listen   80;

root     /home/helios/mysite;

server_name    youdomain.com#域名 或者當地localhost;

location / {
               uwsgi_pass    127.0.0.1:9000;
               include uwsgi_params;
               access_log  off;
}

location /static/ {
               alias /home/helios/mysite/static;
               autoindex on;
               allow 127.0.0.1;
               deny all;
 }

location /static/admin/ {
               alias /home/helios/mysite/static/admin;
               autoindex on;
               allow 127.0.0.1;
               deny all;
}

location ~ ^.+\.(gif|jpg|png|ico|jpeg)$ {
               expires 3d;
}

location ~ ^.+\.(css|js)$ {
               expires 12h;
}

    
?


然后

?

      #vim /etc/nginx/nginx.conf
    

?

      user  helios;

把所有gzip開頭的前面#號都去掉,除了Gzip setting

    

?

現在 把nginx配置都配好了

?

uwsgi配置

      #cd /home/helios/mysite
#vim wsgi.py

    

?

寫上

       import os
 import sys from django.core.handlers.wsgi 
 import WSGIHandler
 
 sys.path.append("/home/helios/mysite")
 os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"
 application = WSGIHandler()
    

?

完了以后

      #vim wsgi.xml
    

?

寫上

      <uwsgi>
   <socket>127.0.0.1:9000</socket>
   <listen>80</listen>
   <master>true</master>
   <pidfile>/var/run/nginx.pid</pidfile>
   <processes>8</processes>
   <pythonpath>/home/helios/mysite</pythonpath>
   <pythonpath>/home/helios/</pythonpath>
   <module>wsgi</module>
   <profiler>true</profiler>
   <memory-report>true</memory-report>
   <enable-threads>true</enable-threads>
   <logdate>true</logdate>
   #這個是程序占用大小,不能太小,太大暫時還不知道 
   #在測試過程中,我的電腦300以下目測不行。
   #也可以刪除這段,因為在測試過程中,如果這段設置太小
   #會出現問題libgcc_s.so.1 must be installed for pthread_cancel to work 
   #只有在 ubuntu 12.04測試過,其他系統還不清楚
   #為了不容易出錯可以刪掉,但是這個提示給有需要的朋友
   <limit-as>300</limit-as>
   #自己建立文件夾 然后創建空文件django.log這個靈活的
   <daemonize>/home/helios/mysite/log/django.log</daemonize>
 </uwsgi>
    

?

配置django

剛剛配置nginx里頭有看到這兩段把:

      location /static/ {

               root /home/helios/mysite;
               access_log  off;

} location /static/admin/ {

               root /home/helios/mysite/static;
               access_log off;

} 
    

好了 現在終端:

  1. cd /home/helios/mysite
  2. vim settings.py

看到 ADMIN_MEDIA_PREFIX STATIC_URL 這兩個參數 就是指向這里 如果還有問題 我的參數不是這倆 另外的 你可以參考: MEDIA_ROOT = '/home/helios/mysite/static' MEDIA_URL = '/static/' ADMIN_MEDIA_PREFIX = '/static/admin/' 然后 數據庫問題: 我的是mysql數據庫: 終端

  1. cd /home/helios/mysite
  2. mysql -h localhost -u root -p

Enter password****** >create database mysite default character set utf8;(因為要記錄中文 所以默認utf8) >quit

  1. vim settings.py
      DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
       'NAME': 'mysite',                      # Or path to database file if using sqlite3.
       'USER': 'root',                      # Not used with sqlite3.
       'PASSWORD': '*******',                  # Not used with sqlite3.
       'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.
       'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.
   }

    
?

最后 還有一些: 語言: LANGUAGE_CODE = 'zh-cn' 時間: TIME_ZONE = 'Asia/Shanghai'

其他關于django的配置 朋友們可以去網絡搜索django教程或者官網去看看 我的博客上面有個類似懶人安裝的腳本 有興趣可以去看看更詳細的教程 http://sishengbang.tk 如果我的這些步驟還有問題可以mail我:helio_s@163.com或者yuyanget@gmail.com 或者我的博客www.younguy.tk qq也可以加我 不過要說明nginx+ubuntu+django:845262968

?

no input file specified錯誤

      sudo vi /etc/nginx/sites-available/default
    

?

其中這個字段

      location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include fastcgi_params;
    

?

注意

      fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
    

?

/var/www/nginx-default 改為你的網站根目錄,一般就是改成這個。 server 字段下root 目錄和網站根目錄保持一致

?

安裝Zend Optimizer

要求PHP版本為5.2,不支持Ubuntu10.04的PHP5.3,請參照 PHP5.2 。 (Zend 5.5支持PHP5.3,下載地址: http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz)

下載 Zend Optimizer 。 直接貼下載地址,參考版本號改(這是32位的),不然主頁要注冊才能下

      http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz 

tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

cd ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp
sudo mkdir /usr/local/zend
sudo cp ZendOptimizer.so /usr/local/zend 
    
?

編輯php.ini

      sudo gedit /etc/php5/cgi/php.ini
    

?

開頭加入,注意標點符號要英文。

      [Zend Optimizer]
zend_optimizer.optimization_level=1  
zend_extension="/usr/local/zend/ZendOptimizer.so"
    

?

關閉php-cgi

      sudo killall -HUP php-cgi
    

?

重啟php-cgi

      spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
    

?

不需要重啟nginx

還是上面那個phpinfo文件,要能看到如下信息

      This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies
    

?

安裝XCache

Fast, stable PHP opcode cacher
      sudo apt-get install php5-xcache

root@ubuntu:/home/qii# dpkg -l | grep xcach
ii  php5-xcache                          1.2.2-5   
    
?

xcache配置文件路徑是

      /etc/php5/conf.d/xcache.ini
    

?

編輯php.ini

      sudo gedit /etc/php5/cgi/php.ini
    

?

把xcache.ini的內容加入到php.ini。

關閉php-cgi

      sudo killall -HUP php-cgi
    

?

重啟php-cgi

      spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
    

?

不需要重啟nginx 檢查安裝是否成功

      root@ubuntu:/home/qii# php -v
PHP 5.2.10-2ubuntu6 with Suhosin-Patch 0.9.7 (cli) (built: Oct 23 2009 16:30:10) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with XCache v1.2.2, Copyright (c) 2005-2007, by mOo
    

?

還有前面info.php頁應該有XCache模塊

Linux: Nginx 安裝
info頁面的XCache模塊

這里有點奇怪的是,如果不把xcache.ini的內容加入php.ini,apache也能載入XCache,但info.php上沒XCache模塊。

?

安裝eAccelerator

      sudo apt-get install php5-dev
    

?

下載 eAccelerator

      wget http://sourceforge.net/projects/eaccelerator/files/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.tar.bz2

tar jxvf eaccelerator-0.9.6.1.tar.bz2

cd eaccelerator-0.9.6.1 

phpize
sudo ./configure -enable-eaccelerator=shared
sudo make

qii@ubuntu:~/tmp/eaccelerator-0.9.6.1$ sudo make install
Installing shared extensions:     /usr/lib/php5/20090626+lfs/

    
?

修改php.ini文件,安裝為Zend擴展,最好放在開頭,放到[zend]之前,免的出莫名其妙的問題:

      sudo vi /etc/php5/cgi/php.ini

[eaccelerator]
zend_extension="/usr/lib/php5/20090626+lfs/eaccelerator.so"  
eaccelerator.shm_size="16" 
eaccelerator.cache_dir="/tmp/eaccelerator" 
eaccelerator.enable="1" 
eaccelerator.optimizer="1" 
eaccelerator.check_mtime="1" 
eaccelerator.debug="0" 
eaccelerator.filter="" 
eaccelerator.shm_max="0" 
eaccelerator.shm_ttl="0" 
eaccelerator.shm_prune_period="0" 
eaccelerator.shm_only="0" 
eaccelerator.compress="1" 
eaccelerator.compress_level="9" 
eaccelerator.allowed_admin_path="/var/www/nginx-default/control.php"
    
?

創建cache緩存目錄

      eaccelerator.cache_dir="/var/cache/eaccelerator"   這里定義cache路徑
    

?

默認值是/tmp/eaccelerator,這非常簡單因為任何人都對該目錄可寫,但是并不明智,因為重啟后系統會自動清理該目錄。一個更好的地 方是/var/cache/eaccelerator。創建該目錄并確保它對eAccelerator的使用者可寫(通常該用戶是你的網絡服務器運行者, 可能是www-data)。 使用默認值的話這樣繼續:

      mkdir /tmp/eaccelerator

chmod 777 /tmp/eaccelerator
    
?

改成 /var/cache/eaccelerator的話這樣繼續,先改php.ini

      eaccelerator.cache_dir="/var/cache/eaccelerator" 

sudo mkdir /var/cache/eaccelerator
sudo chown root:www-data /var/cache/eaccelerator
sudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator
    
?

復制控制文件control.php到網站根目錄

      sudo cp control.php /var/www/nginx-default/
    

?

修改control.php的$user和$pw,默認是admin和eAccelerator

      sudo vi /var/www/nginx-default/control.php 
    

?

關閉php-cgi

      sudo killall -HUP php-cgi
    

?

重啟php-cgi

      spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi
    

?

不需要重啟nginx 打開 http://localhost/control.php

Linux: Nginx 安裝
eAccelerator control.php頁面

?

查看之前的info.php頁面,有下列字段:

      This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
    
    

?

屏蔽迅雷

新建

      /etc/nginx/agent.conf

if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") { return 404; }

    
?

注意的是,空格和括弧需要使用“\”進行轉義。

然后site配置中

      include /etc/nginx/agent.conf;
    

?

迅雷usera-gent和這種做法失效的情況見 Apache#屏蔽迅雷

?

參考

nginx 禁止某個 User_Agent 的方法

?

了解更多

  1. Nginx 的中文維基: http://wiki.codemongers.com/NginxChs
  2. Nginx 的中文站: http://www.nginx.cn

來源: http://wiki.ubuntu.org.cn/Nginx

?

Linux: Nginx 安裝


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 9久久这里只有精品国产 | 欧美成人免费全网站大片 | 浮力影院欧美三级日本三级 | 日本久久伊人 | 五月一区二区久久综合天堂 | 国产无套乱子伦精彩是白视频 | 亚洲欧美日韩国产综合高清 | 日韩欧美一区二区三区四区 | 一级毛片秋霞特色大片 | 情趣色视频网站 | 日本大臿亚洲香蕉大片 | 国产精品亚洲片在线牛牛影视 | 免费网站看v片在线成人国产系列 | 欧美乱妇高清视频免欢看关 | 色老师 | 免费激情网址 | 国产精品五月天 | 久久国产精品女 | 一级看片 | 精品国产精品国产 | 手机看片日韩欧美 | 欧美日韩在线观看区一二 | 香蕉成人在线 | 99re这里只有精品99 | 国产精品亚洲专一区二区三区 | 国产精品免费观看网站 | 男人的天堂久久香蕉国产 | 天天做人人爱夜夜爽2020毛片 | 亚洲精品一二三四区 | 国产成人精品亚洲2020 | 成人精品国产亚洲欧洲 | 国产亚洲高清在线精品99 | 黄色网欧美 | 欧美高清一区二区三区欧美 | 免费中文字幕一级毛片 | 亚洲精品123区在线观看 | 欧美一区视频 | 国产成人综合网亚洲欧美在线 | 天天操夜夜爱 | 中文字幕一区二区三区在线播放 | 国产激情一级毛片久久久 |