安装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

然后就可以访问了,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配置文件里的网站路径不正确)

 

500px-Nginxdefault

nginx默认页面

配置php和mysql

安装Php和mysql

安装php和MySQL:

安装FastCgi

/usr/bin/spawn-fcgi这个文件来管理 FastCgi,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi 被分离出来单独成包:

配置 nginx

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

修改index的一行修改为:

去掉下面部分的注释用于支持 php 脚本:

重新启动nginx:

启动fastcgi php:

为了让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:

打开 http://localhost/info.php 。

600px-Nginxphpinfo

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:没有那个文件或目录)

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

交代下环境:


出现nginx代码:(序列号不要抄)
1.

2.

3.

4.

5.

6.

7.

8.

然后

1.

2.

现在 把nginx配置都配好了

uwsgi配置

写上

完了以后

写上


配置django

刚刚配置nginx里头有看到这两段把:

好了 现在终端:

看到 ADMIN_MEDIA_PREFIX STATIC_URL 这两个参数 就是指向这里 如果还有问题 我的参数不是这俩 另外的 你可以参考: MEDIA_ROOT = '/home/helios/mysite/static' MEDIA_URL = '/static/' ADMIN_MEDIA_PREFIX = '/static/admin/' 然后 数据库问题: 我的是mysql数据库:

终端

Enter password****** >create database mysite default character set utf8;(因为要记录中文 所以默认utf8) >quit

最后 还有一些: 语言: 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错误

其中这个字段

注意

/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位的),不然主页要注册才能下

编辑php.ini

开头加入,注意标点符号要英文。

关闭php-cgi

重启php-cgi

不需要重启nginx

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

安裝XCache

xcache配置文件路径是

编辑php.ini

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

关闭php-cgi

重启php-cgi

不需要重启nginx 检查安装是否成功

还有前面info.php页应该有XCache模块

500px-Apachexcache

info页面的XCache模块

这里有点奇怪的是,如果不把xcache.ini的内容加入php.ini,apache也能载入XCache,但info.php上没XCache模块。

安装eAccelerator

下载 eAccelerator

修改php.ini文件,安装为Zend扩展,最好放在开头,放到[zend]之前,免的出莫名其妙的问题:

创建cache缓存目录

默认值是/tmp/eaccelerator,这非常简单因为任何人都对该目录可写,但是并不明智,因为重启后系统会自动清理该目录。一个更好的地方是/var/cache/eaccelerator。创建该目录并确保它对eAccelerator的使用者可写(通常该用户是你的网络服务器运行者,可能是www-data)。 使用默认值的话这样继续:

改成 /var/cache/eaccelerator的话这样继续,先改php.ini

复制控制文件control.php到网站根目录

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

关闭php-cgi

重启php-cgi

不需要重启nginx 打开 http://localhost/control.php

500px-NginxeAcceleratorcontrol

eAccelerator control.php页面

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

屏蔽迅雷

新建

注意的是,空格和括弧需要使用“\”进行转义。

然后site配置中

迅雷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