个人工具
登录
查看“Nginx”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“Nginx”的源代码
来自Ubuntu中文
←
Nginx
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==安装nginx== <pre>sudo apt-get install nginx</pre> Ubuntu安装之后的文件结构大致为: * 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下 * 程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中 * 并已经在/etc/init.d/下创建了启动脚本nginx * 默认的虚拟主机的目录设置在了/var/www/nginx-default ==启动nginx== <pre><nowiki> sudo /etc/init.d/nginx start </nowiki></pre> 然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先不要继续,看看是什么原因,解决之后再继续。 (安装完后如出现403错误,那可能是nginx配置文件里的网站路径不正确) {| |[[Image:Nginxdefault.png|thumb|center|500px|nginx默认页面]] |} ==配置php和mysql== ===安装Php和mysql=== 安装php和MySQL: <pre><nowiki> sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql </nowiki></pre> ===安装FastCgi=== /usr/bin/spawn-fcgi这个文件来管理 FastCgi,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi 被分离出来单独成包: <pre><nowiki> sudo apt-get install spawn-fcgi </nowiki></pre> ===配置 nginx=== 修改nginx的配置文件:/etc/nginx/sites-available/default 修改主机名: <pre><nowiki> server_name localhost; </nowiki></pre> 修改index的一行修改为: <pre><nowiki> index index.php index.html index.htm; </nowiki></pre> 去掉下面部分的注释用于支持 php 脚本: <pre><nowiki> location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; include /etc/nginx/fastcgi_params; } </nowiki></pre> 重新启动nginx: <pre><nowiki> /etc/init.d/nginx stop /etc/init.d/nginx start </nowiki></pre> 启动fastcgi php: <pre><nowiki> spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi </nowiki></pre> 为了让php-cgi开机自启动: <pre><nowiki> cd /etc/init.d cp nginx php-cgi vim php-cgi </nowiki></pre> 替换nginx为php-cgi 并修改相应部分为: <pre><nowiki> DAEMON=/usr/bin/spawn-fcgi DAEMON_OPTS="-a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi" ... stop) echo -n "Stopping $DESC: " pkill -9 php-cgi echo "$NAME." </nowiki></pre> 然后运行rcconf设置php-cgi为开机自启动 创建、测试phpinfo: <pre>sudo vi /var/www/nginx-default/info.php</pre> <pre><?php phpinfo(); ?></pre> 打开 http://localhost/info.php 。 {| |[[Image:Nginxphpinfo.png|thumb|center|600px|Nginx phpinfo页面]] |} ==配置nginx + Django== ===安装Django=== ===配置nginx=== ===测试=== ==no input file specified错误== <pre>sudo vi /etc/nginx/sites-avaiable/default</pre> 其中这个字段 <pre>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;</pre> 注意 <pre>fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;</pre> /var/www/nginx-default 改为你的网站根目录,一般就是改成这个。 ==安装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) 下载 [http://www.zend.com/en/products/guard/downloads Zend Optimizer]。 直接贴下载地址,参考版本号改(这是32位的),不然主页要注册才能下 <pre> http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz </pre> <pre>tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz</pre> <pre>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 </pre> 编辑php.ini <pre>sudo gedit /etc/php5/cgi/php.ini</pre> 开头加入,注意标点符号要英文。 <pre>[Zend Optimizer] zend_optimizer.optimization_level=1 zend_extension="/usr/local/zend/ZendOptimizer.so"</pre> 关闭php-cgi <pre>sudo killall -HUP php-cgi</pre> 重启php-cgi <pre>spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi</pre> 不需要重启nginx 还是上面那个phpinfo文件,要能看到如下信息 <pre>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</pre> ==安裝XCache== <pre>sudo apt-get install php5-xcache</pre> <pre>root@ubuntu:/home/qii# dpkg -l | grep xcach ii php5-xcache 1.2.2-5 Fast, stable PHP opcode cacher</pre> xcache配置文件路径是 <pre>/etc/php5/conf.d/xcache.ini</pre> 编辑php.ini <pre>sudo gedit /etc/php5/cgi/php.ini</pre> 把xcache.ini的内容加入到php.ini。 关闭php-cgi <pre>sudo killall -HUP php-cgi</pre> 重启php-cgi <pre>spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi</pre> 不需要重启nginx 检查安装是否成功 <pre>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</pre> 还有前面info.php页应该有XCache模块 {| |[[Image:Apachexcache.png|thumb|center|500px|info页面的XCache模块]] |} 这里有点奇怪的是,如果不把xcache.ini的内容加入php.ini,apache也能载入XCache,但info.php上没XCache模块。 ==安装eAccelerator== <pre>sudo apt-get install php5-dev</pre> 下载 [http://www.eaccelerator.net/ eAccelerator] <pre>wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2</pre> <pre>tar jxvf eaccelerator-0.9.6.1.tar.bz2</pre> <pre>cd eaccelerator-0.9.6.1 </pre> <pre>phpize sudo ./configure -enable-eaccelerator=shared sudo make</pre> <pre>qii@ubuntu:~/tmp/eaccelerator-0.9.6.1$ sudo make install Installing shared extensions: /usr/lib/php5/20060613+lfs/ </pre> 修改php.ini文件,安装为Zend扩展,最好放在开头,放到[zend]之前,免的出莫名其妙的问题: <pre>sudo vi /etc/php5/cgi/php.ini</pre> <pre>[eaccelerator] zend_extension="/usr/lib/php5/20060613+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"</pre> 创建cache缓存目录 <pre>eaccelerator.cache_dir="/var/cache/eaccelerator" 这里定义cache路径</pre> 默认值是/tmp/eaccelerator,这非常简单因为任何人都对该目录可写,但是并不明智,因为重启后系统会自动清理该目录。一个更好的地方是/var/cache/eaccelerator。创建该目录并确保它对eAccelerator的使用者可写(通常该用户是你的网络服务器运行者,可能是www-data)。 使用默认值的话这样继续: <pre>mkdir /tmp/eaccelerator</pre> <pre>chmod 777 /tmp/eaccelerator</pre> 改成 /var/cache/eaccelerator的话这样继续,先改php.ini <pre>eaccelerator.cache_dir="/var/cache/eaccelerator" </pre> <pre>sudo mkdir /var/cache/eaccelerator sudo chown root:www-data /var/cache/eaccelerator sudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator</pre> 复制控制文件control.php到网站根目录 <pre>sudo cp control.php /var/www/nginx-default/</pre> 修改control.php的$user和$pw,默认是admin和eAccelerator <pre>sudo vi /var/www/nginx-default/control.php </pre> 关闭php-cgi <pre>sudo killall -HUP php-cgi</pre> 重启php-cgi <pre>spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi</pre> 不需要重启nginx 打开 http://localhost/control.php {| |[[Image:NginxeAcceleratorcontrol.png|thumb|center|500px|eAccelerator control.php页面]] |} 查看之前的info.php页面,有下列字段: <pre>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 </pre> ==屏蔽迅雷== 新建 <pre>/etc/nginx/agent.conf</pre> <pre>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; } </pre> 注意的是,空格和括弧需要使用“\”进行转义。 然后site配置中 <pre>include /etc/nginx/agent.conf;</pre> 迅雷usera-gent和这种做法失效的情况见[[Apache#屏蔽迅雷]] ==参考== [http://luy.li/2009/10/31/nginx-block-user_agent/ nginx 禁止某个 User_Agent 的方法] ==了解更多== <ol> <li>Nginx 的中文维基:http://wiki.codemongers.com/NginxChs</li> <li>Nginx 的中文站: http://www.nginx.cn</li> </ol> [[Category:服务器]]
返回至
Nginx
。