查看“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 (有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available里的配置) ==启动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-available/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/20090626+lfs/ </pre> 修改php.ini文件,安装为Zend扩展,最好放在开头,放到[zend]之前,免的出莫名其妙的问题: <pre>sudo vi /etc/php5/cgi/php.ini</pre> <pre>[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"</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
。
导航菜单
页面操作
页面
讨论
阅读
查看源代码
历史
页面操作
页面
讨论
更多
工具
个人工具
登录
导航
首页
最近更改
随机页面
页面分类
帮助
搜索
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息