Nginx初步-1:架设Nginx服务器
2013-12-22 06:37
381 查看
本文是关于在Linux下安装Nginx+PHP并测试文件上传进度模块的一个备忘。
环境设定
操作系统:Ubuntu 13.10 64bit (VMWare, 宿主是Windows 7 Ultimate)
CPU: 1 x 2 core(i5)
Mem: 3048M
HD: 100G
安装Nginx
在安装Nginx之前,你需要知道如何在Unity环境下运行Terminal(终端)。后文的命令都在Terminal下运行。
打开一个Terminal,准备运行各种命令。
更新Ubuntu到最新:
然后,安装Nginx:
除nginx和php5-fpm外,其它都是用于将来编译nginx和附加模块所必需的。
官方关于Nginx的安装请参考http://wiki.nginx.org/InstallChs
安装完成后,可以通过浏览器(Ubuntu下通常是Firefox)打开http://localhost来查看Nginx是否成功运行。幸运的话可以看到“Welcome to nginx”的页面。现在php功能还没有打开,需要修改Nginx的设置文件。
关于Nignx配置文件的各种知识,请个人放狗或访问站点Nginx.org。个人觉得先看看这个扫盲贴,先有个初步概念,然后再动手修改配置文件比较好。
重新启动Nginx
在后续以及开发过程中,尤其是在学习Nginx的配置设定时,会频繁的重新启动Nginx。使用以下脚本:
也可以使用以下命令平滑重启:
修改设定之前的准备工作
因为Nginx的设定文件属于root,所以需要相应权限能够进行修改。在修改设定之前要进行以下准备工作:设置文本编辑器gedit(显示的名称为Text Editor),使之能以root权限启动。这样我们就能够使用gedit随意修改属于root的文件而不必担心权限不够不能存盘的问题。个人偏好gedit。
首先,在/usr/share/applications/下找gedit.desktop文件,以下列命令打开:
根据提示输入密码,我们将在gedit中编辑gedit的快捷方式配置文件:
将第19行修改为:
将Gedit锁定到Unity的侧栏上,以后右键单击该图标,就会有Run as root的选项,可以随意编辑各种文件。
修改Nginx设定以打开PHP功能
主设定文件Nginx.conf现在不用理会。先用Gedit打开/etc/nginx/sites-available/default文件。
修改根目录指向和添加对index.php的支持。个人偏好使用www作为网站的根。
打开PHP功能,默认是注释掉的。
现在,重新启动Nginx使修改生效。修改也有可能出错,请查看/var/log/nginx/error.log来检查:
修改PHP-fpm设置
修改/etc/php5/fpm/php.ini,找到cgi.fix_pathinfo,设置为cgi.fix_pathinfo=0。
测试PHP
按官方指引,在网站根目录下创建info.php来测试PHP。内容如下:
然后,使用浏览器打开http://localhost/info.php就可以看到第一只php网页了,尽情欣赏吧。
遇到的问题:
如果浏览不能打开info.php,通常是权限问题引起的。使用以下命令修改info.php的所有者和所属组:
安装和设置,也请参考这个链接。
再有问题,请放狗搜索。
环境设定
操作系统:Ubuntu 13.10 64bit (VMWare, 宿主是Windows 7 Ultimate)
CPU: 1 x 2 core(i5)
Mem: 3048M
HD: 100G
安装Nginx
在安装Nginx之前,你需要知道如何在Unity环境下运行Terminal(终端)。后文的命令都在Terminal下运行。
打开一个Terminal,准备运行各种命令。
更新Ubuntu到最新:
sudo apt-get update sudo apt-get upgrade
然后,安装Nginx:
sudo apt-get install nginx php5-fpm build-essential libc6 libpcre3 libpcre3-dev libpcrecpp0 libssl0.9.8 libssl-dev zlib1g zlib1g-dev
除nginx和php5-fpm外,其它都是用于将来编译nginx和附加模块所必需的。
官方关于Nginx的安装请参考http://wiki.nginx.org/InstallChs
安装完成后,可以通过浏览器(Ubuntu下通常是Firefox)打开http://localhost来查看Nginx是否成功运行。幸运的话可以看到“Welcome to nginx”的页面。现在php功能还没有打开,需要修改Nginx的设置文件。
关于Nignx配置文件的各种知识,请个人放狗或访问站点Nginx.org。个人觉得先看看这个扫盲贴,先有个初步概念,然后再动手修改配置文件比较好。
重新启动Nginx
在后续以及开发过程中,尤其是在学习Nginx的配置设定时,会频繁的重新启动Nginx。使用以下脚本:
sudo /etc/init.d/nginx restart
也可以使用以下命令平滑重启:
sudo /etc/init.d/nginx -s reload
修改设定之前的准备工作
因为Nginx的设定文件属于root,所以需要相应权限能够进行修改。在修改设定之前要进行以下准备工作:设置文本编辑器gedit(显示的名称为Text Editor),使之能以root权限启动。这样我们就能够使用gedit随意修改属于root的文件而不必担心权限不够不能存盘的问题。个人偏好gedit。
首先,在/usr/share/applications/下找gedit.desktop文件,以下列命令打开:
gksudo gedit /usr/share/applications/gedit.desktop
根据提示输入密码,我们将在gedit中编辑gedit的快捷方式配置文件:
将第19行修改为:
Actions=Window;Document;Runasroot;在末尾,添加以下内容:
[Desktop Action Runasroot] Name=Run as root Exec=gksudo -k -u root gedit OnlyShowIn=Unity;
将Gedit锁定到Unity的侧栏上,以后右键单击该图标,就会有Run as root的选项,可以随意编辑各种文件。
修改Nginx设定以打开PHP功能
主设定文件Nginx.conf现在不用理会。先用Gedit打开/etc/nginx/sites-available/default文件。
修改根目录指向和添加对index.php的支持。个人偏好使用www作为网站的根。
# REV:igame@Dec-19-2013: Change root directory from html to www. # root /usr/share/nginx/html; root /usr/share/nginx/www; # REV:igame@Dec-19-2013: Add index.php. index index.php index.html index.htm;
打开PHP功能,默认是注释掉的。
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # # REV:igame@Dec-18-2013: Enable PHP & FastCGI location ~ \.php$ { # REV:igame@Dec-18-2013: Add the try_files tag as www.howtoforge.com's recommendation. try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
现在,重新启动Nginx使修改生效。修改也有可能出错,请查看/var/log/nginx/error.log来检查:
cat /var/log/nginx/error.log排除错误后,继续重启Nginx。
修改PHP-fpm设置
修改/etc/php5/fpm/php.ini,找到cgi.fix_pathinfo,设置为cgi.fix_pathinfo=0。
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0
测试PHP
按官方指引,在网站根目录下创建info.php来测试PHP。内容如下:
<?php phpinfo(); ?>
然后,使用浏览器打开http://localhost/info.php就可以看到第一只php网页了,尽情欣赏吧。
遇到的问题:
如果浏览不能打开info.php,通常是权限问题引起的。使用以下命令修改info.php的所有者和所属组:
sudo chown root info.php sudo chgrp root info.php
安装和设置,也请参考这个链接。
再有问题,请放狗搜索。
相关文章推荐
- Nginx的location指令配置
- nginx event初始化流程
- nginx的事件驱动模型
- nginx上下文总会
- nginx无法启动提示libpcre.so.1: cannot open shared object file的解决方法
- nginx + keepalive 实现HA
- CentOS 6下安装nginx服务器
- ubuntu13.10 nginx
- Nginx配置文件详细说明
- Nginx配置文件详细说明及优化
- 转 10 个 Nginx 的安全提示
- Nginx配置文件nginx.conf中文详解总结及nginx无缝升级
- Nginx Upstream模块
- Nginx Upstream模块
- Nginx Upstream模块
- 转 Linux下Nginx+PHP+MySQL配置
- centos nginx+php+mysql 安装libiconv不成功
- Typecho安装在根目录下与子目录的区别
- Nginx的Rewrite配置
- Nginx源码剖析之内存池和内存管理