发表于: 2016-02-07 03:12:09

5 1838


今天完成的事情
1、今天有亲戚过来,送走他们就已经晚上11点多了,task3还是没给师兄看...orz,晚上请教了下@19 师弟一些关于nginx的问题,有了进一步的了解

明天计划的事情

1、明天走亲戚,估计没多少时间做task,我尽量吧;


遇到的问题:

1、Q:nginx配置出现404,请教@19 师弟
      A:详见“收获”
收获:

@181 师弟昨天问了我这个问题,没能彻底解决,今天请教了@19 师弟,有了进一步的了解,QQ群里面经常有人问这个问题,所以今天打算写个简单的补充攻略


首先 大家应该在论坛或者官网,下载过@利勇 师兄的 Nginx使用方法》,基本上都能做到输入localhost出现welcome界面这一步,如果没有出现的话,很可能是你的软件目录下有中文,建议大家养成一个好习惯,所有的软件安装目录都用英文,哪怕是拼音也行,因为毕竟从系统到软件,大多是国外的,中文路径容易出问题。

其实我们看到的welcome界面,就是nginx/html目录下的index.html页面,重点是接下来的步骤,很多人不理解。“默认网站根目录为/usr/local/nginx/html,要将它改成/home/www”,这句话的意思就是,把默认路径从nginx/html改成你自己放置代码的路径,这里的home/www只是@利勇 师兄举的一个相对路径的栗子,大家也可以改成绝对路径,我个人是不习惯把软件跟文件放一起的,我们先来看下原配置文件

  server {

        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

“下面我们仔细来分析一下:

listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。

server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

root:里面配置了root,表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

下面的error_page是代表错误的页面,这里我们暂时不用,先不管它 ”

(上面这段分析文字,引用自  http://cxshun.iteye.com/blog/1535188


接下来的任务就很明确了,把listen 80下面的两个 root  html中的路径,改成我们自己放代码的文件夹,例如在E盘下面新建一个home的文件夹,再在目录下新建一个www的文件夹,那么路径就是:E:\home\www,把task1.html放进去,然后修改配置


 server {

        listen       80;

        server_name  localhost;


        #charset koi8-r;


        #access_log  logs/host.access.log  main;


        location / {

            root    E:\home\www;

            index  index.html index.htm;

        }


        #error_page  404              /404.html;


        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }


        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #    proxy_pass   http://127.0.0.1;

        #}


        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        #location ~ \.php$ {

        #    root                 E:\home\www;

        #    fastcgi_pass   127.0.0.1:9000;

        #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        #    include        fastcgi_params;

        #}


只改上面两处红字的地方就可以了,然后用任务管理器 (ctrl+alt+delete)关闭nginx进程,可能有好几个,全都关掉,然后重新打开nginx,浏览器输入 http://localhost/task1.html,就可以正常访问了,如果还是访问不了的话,在localhost上加上端口:80试试~

(其实我理解的是,只要路径正确就行,但是我换了其他的文件夹名字,例如E:\wy\task,E:\task等,都失败了,提示404错误,不知道是不是我访问的姿势不对,我试了一个多小时都不行...ORZ


另外,@19 师弟:手机访问我研究出来了,不需要电脑共享文件

首先,电脑和手机连接上同一个wifi

然后查看电脑ip:win+R→cmd→ipconfig→回车, 找到无限局域网适配器wlan中的ip地址,例如我的是192.168.0.119

然后手机浏览器中输入192.168.01.119/task1.html 就可以看到自己的代码啦~


PS:手机访问还有另外两个方法

1、代码上传至服务器,直接用ip访问

2、谷歌浏览器的F12调试中,左上角有个手机的图标,点那个就可以模拟移动设备访问,有很多不同尺寸的手机,苹果、三星、洛基亚之类的,木有小米 0.0


感想:

1、感谢@19 师弟的耐心指导,没想到12点了还在,下次有人问你这个问题,把这篇日报给他看就行啦~

2、我在夜猫子的路上一去不复返了..orz



2016.03.05 更新

在群里看到老大帮师弟解答问题,顺便也解了我先前的疑惑

为什么用E:\wy\task,E:\task等路径都显示错误,都是转义字符的锅


所有的转义字符和所对应的意义:
转义字符
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF) ,将当前位置移到下一行开头
010
\r
回车(CR) ,将当前位置移到本行开头
013
\t
水平制表(HT) (跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字符''\'
092
\'
代表一个单引号(撇号)字符
039
\"
代表一个双引号字符
034
\?
  
代表一个问号
  
063
  
\0
空字符(NULL)
000
\ddd
1到3位八进制数所代表的任意字符
三位八进制
\xhh
1到2位十六进制所代表的任意字符
二位十六进制
注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换
先前我路径中的\t被自动转换成制表符了,所以读取不了目录,换成mytask就行了
另外,也明白了看错误日志的重要性
nginx路径下的\logs\error.log就是错误日志,复制里面的内容去百度就行
其他很多软件应该也是类似原理
再次感谢老大~


PS:

1、先前我口中的@19 师弟,原来是首席大师兄,失敬,失敬

2、@苏哈哈 师兄补充的一条:#号是注释符号





返回列表 返回列表
评论

    分享到