V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
sutking
V2EX  ›  NGINX

sites-available/default 不起作用了什么情况?怎么办?

  •  
  •   sutking · 2014-11-29 22:01:07 +08:00 · 7076 次点击
    这是一个创建于 3681 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我遇到这么个问题:修改sites-available/default这个文件的root项和index项,这两项,但是发现都不管用了,现在网站默认根目录在/var/www/,但是我的文件里root项写的不是这里,这也就算了,我把index项内容只保留index.php但是输入地址打开的却是index.html,还要我手动输入“地址/index.php”才能打开index.php页面是怎么回事?怎么办啊?
    sites-enabled和sites-available两个文件夹里都各有两个文件,sites-enabled文件夹里的default是指向sites-available文件夹里的default的快捷方式。
    26 条回复    2014-12-01 13:45:22 +08:00
    gracece
        1
    gracece  
       2014-11-29 23:01:22 +08:00
    把你的配置贴出来
    anjunecha
        2
    anjunecha  
       2014-11-29 23:05:21 +08:00
    修改之后NGINX重启了吗?
    ryd994
        3
    ryd994  
       2014-11-30 00:17:52 +08:00 via Android
    nginx.conf里怎么写的?
    freezex
        4
    freezex  
       2014-11-30 04:45:41 +08:00 via Android
    新版apache?
    sutking
        5
    sutking  
    OP
       2014-11-30 07:46:27 +08:00
    @gracece 以下default文件全文:
    # You may add here your
    # server {
    # ...
    # }
    # statements for each of your virtual hosts to this file

    ##
    # You should look at the following URL's in order to grasp a solid understanding
    # of Nginx configuration files in order to fully unleash the power of Nginx.
    # http://wiki.nginx.org/Pitfalls
    # http://wiki.nginx.org/QuickStart
    # http://wiki.nginx.org/Configuration
    #
    # Generally, you will want to move this file somewhere, and start with a clean
    # file but keep this around for reference. Or just disable in sites-enabled.
    #
    # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
    ##

    server {
    listen 80; ## listen for ipv4; this line is default and implied
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

    # root /usr/share/nginx/www;
    # root /home/pi/www;
    index index.php;

    # Make site accessible from http://localhost/
    server_name localhost;

    if (!-e $request_filename){
    rewrite ^(.*)$ /index.php$1 last;
    }


    location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ /index.html;
    # Uncomment to enable naxsi on this location
    # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
    alias /usr/share/doc/;
    autoindex on;
    allow 127.0.0.1;
    allow ::1;
    deny all;
    }

    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
    #location /RequestDenied {
    # proxy_pass http://127.0.0.1:8080;
    #}

    #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 /usr/share/nginx/www;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ ..php(\/.)*$ {
    # 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;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    # deny all;
    #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    # listen 8000;
    # listen somename:8080;
    # server_name somename alias another.alias;
    # root html;
    # index index.html index.htm;
    #
    # location / {
    # try_files $uri $uri/ =404;
    # }
    #}


    # HTTPS server
    #
    #server {
    # listen 443;
    # server_name localhost;
    #
    # root html;
    # index index.html index.htm;
    #
    # ssl on;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;
    #
    # ssl_session_timeout 5m;
    #
    # ssl_protocols SSLv3 TLSv1;
    # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    # ssl_prefer_server_ciphers on;
    #
    # location / {
    # try_files $uri $uri/ =404;
    # }
    #}
    sutking
        6
    sutking  
    OP
       2014-11-30 07:47:13 +08:00
    @ryd994 以下nginx.conf文件全文:
    user pi;
    worker_processes 1;
    pid /var/run/nginx.pid;

    events {
    worker_connections 128;
    # multi_accept on;
    }

    http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # nginx-naxsi config
    ##
    # Uncomment it if you installed nginx-naxsi
    ##

    #include /etc/nginx/naxsi_core.rules;

    ##
    # nginx-passenger config
    ##
    # Uncomment it if you installed nginx-passenger
    ##

    #passenger_root /usr;
    #passenger_ruby /usr/bin/ruby;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }


    #mail {
    # # See sample authentication script at:
    # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
    #
    # # auth_http localhost/auth.php;
    # # pop3_capabilities "TOP" "USER";
    # # imap_capabilities "IMAP4rev1" "UIDPLUS";
    #
    # server {
    # listen localhost:110;
    # protocol pop3;
    # proxy on;
    # }
    #
    # server {
    # listen localhost:143;
    # protocol imap;
    # proxy on;
    # }
    #}
    sutking
        7
    sutking  
    OP
       2014-11-30 07:48:02 +08:00
    @anjunecha 整个系统都重启过了,sudo service nginx reload都不知道做过多少遍了……
    sutking
        8
    sutking  
    OP
       2014-11-30 07:50:06 +08:00
    @gracece 说明一下,我在root前边加了#号,因为测试时发现都不起作用,跟没加是一个效果,无论怎么写,根目录都定位到/var/www/
    yangqi
        9
    yangqi  
       2014-11-30 07:55:40 +08:00
    try_files $uri $uri/ /index.html;

    难道不是这句的问题么
    gracece
        10
    gracece  
       2014-11-30 09:38:27 +08:00
    试试在 location / {}中加 root 和 index 配置。

    server {
    listen 80 default_server;
    server_name _;
    location / {
    ...
    root /var/www;
    index index.php;
    ...
    }
    }
    EPr2hh6LADQWqRVH
        11
    EPr2hh6LADQWqRVH  
       2014-11-30 09:53:36 +08:00
    加拓展名.conf
    vicesa
        12
    vicesa  
       2014-11-30 12:18:34 +08:00 via iPad
    机上还有个apache?
    tolbkni
        13
    tolbkni  
       2014-11-30 12:21:54 +08:00
    加上 listen 80 default_server;

    是不是在其他 conf 文件里定义了 default_server?
    freefcw
        14
    freefcw  
       2014-11-30 17:57:58 +08:00 via Android
    你确定sites-enabled目录下有这个文件么?如果有你确定是链接到sites-available目录下的这个文件么
    sutking
        15
    sutking  
    OP
       2014-11-30 21:44:43 +08:00
    @yangqi 已经改成了: try_files $uri $uri/ /index.php;
    问题依旧……
    sutking
        16
    sutking  
    OP
       2014-11-30 21:49:35 +08:00
    @gracece 这个办法也还是没起作用…… 晕了…… 这问题到底出在哪儿了啊…… 怎么会这样啊……苍天啊,大地啊…… T。T
    sutking
        17
    sutking  
    OP
       2014-11-30 21:53:53 +08:00
    @avastms /sites-available/default.conf 这样吗?
    nginx.conf里边有这么一句“include /etc/nginx/sites-enabled/*;”所以default文件名应该不用加.conf吧?
    sutking
        18
    sutking  
    OP
       2014-11-30 22:02:09 +08:00
    @vicesa 我去,好像你还真是说对了,貌似问题真是因为阿帕奇,可是我没有装过这个东西啊……倒是apt-get 的时候看到了一条命令install apache之类的语句,一闪而过,没看清楚,不过apache是肯定有的,我就想知道apt-get install nginx 的时候为什么会带上apache呢?
    我现在该怎么卸载apache 啊?
    sutking
        19
    sutking  
    OP
       2014-11-30 22:06:17 +08:00
    现在“service apache stop”和“service apache status”都返回unrecognized service这个结果是怎么个回事?
    whereis apache 只返回“apache:”没了
    能直接卸载apache吗?
    sutking
        20
    sutking  
    OP
       2014-11-30 22:45:57 +08:00
    完了,彻底毁了……
    apache是删除干净了,现在输入地址默认还是打开/var/www/index.html,在/var/www/下写的.php文件(内容是“<?php phpinfo(); ?>”)变成404了,index.php变成可被下载的文件了……
    dant
        21
    dant  
       2014-11-30 23:02:51 +08:00 via iPhone
    netstat 看看那个在侦听 80 端口
    ETiV
        22
    ETiV  
       2014-11-30 23:18:03 +08:00 via iPhone
    装过gitlab?

    nginx -t

    看看主配置文件路径对否
    sutking
        23
    sutking  
    OP
       2014-12-01 10:00:25 +08:00 via iPhone
    @ETiV gitlab是什么东西?没主动安装过,不过nginx -t是一切正常的。
    sutking
        24
    sutking  
    OP
       2014-12-01 10:01:25 +08:00 via iPhone
    @dant netstat -ano吗?还是什么命令属性?目前没看出来,回复是0.0.0.0:80
    dant
        25
    dant  
       2014-12-01 12:51:59 +08:00 via iPhone
    @sutking netstat -plnt
    sutking
        26
    sutking  
    OP
       2014-12-01 13:45:22 +08:00
    @dant 不知道怎么回事,现在default文件起作用了,但是所有的.php 页面在浏览器地址栏里输入后回车都变成了下载,而不是打开了……
    这个怎么办?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:29 · PVG 21:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.