nginx:[emerg]未知指令“”在/etc/nginx/sites-enabled/example.com:3

时间:2013-10-03 18:00:09

标签: linux nginx raspberry-pi httpserver raspbian

我已关注此网站http://raspberrypihelp.net/tutorials/24-raspberry-pi-webserver在我的Raspberry Pi上设置HTTP服务器nginx并尝试设置网站呼叫 example.com 。但当我运行sudo service nginx restart时,它说

  

在/etc/nginx/sites-enabled/example.com:3重新启动nginx:nginx:[emerg] unknown指令“”

以下是 example.com 中的代码。

    server {

    server_name example.com 192.168.1.88;

    access_log /srv/www/example.com/logs/access.log;

    error_log /srv/www/example.com/logs/error.log;

    root /srv/www/example.com/public/;

    location / {

        index index.php index.html index.htm;

        try_files $uri $uri/ /index.php?$args;

    }

    location ~ \.php$ {

        include /etc/nginx/fastcgi_params;

        fastcgi_pass unix:/var/run/php5-fpm.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /srv/www/example.com/public$fastcgi_script_name;

    }

    location /phpmyadmin {

        root /usr/share/;

        index index.php index.html index.htm;

        location ~ ^/phpmyadmin/(.+\.php)$ {

            try_files $uri =404;

            root /usr/share/;

            fastcgi_pass unix:/var/run/php5-fpm.sock;

            fastcgi_index index.php;

            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include /etc/nginx/fastcgi_params;

        }

        location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {

            root /usr/share/;

        }

    }

    location /phpMyAdmin {

        rewrite ^/* /phpmyadmin last;

    }

}

我只是按照步骤操作,但无法成功运行。

7 个答案:

答案 0 :(得分:9)

我遇到了同样的问题,那就是我从网上复制/粘贴了配置代码,还有一些脏的EOL(行尾)字符。

编辑没有显示它们,但nginx将它们视为指令。

刚刚删除EOL并重新添加。

答案 1 :(得分:8)

听起来你在这里做了一些复制和粘贴工作。在行尾(EOL)隐藏一些不可见的额外字符并不罕见。试试这个:

通过此工具运行您的文字: http://www.textfixer.com/tools/remove-line-breaks.php

然后修复可能已删除的任何中断,并受评论影响。

这对我有用。希望它适合你。

答案 2 :(得分:1)

看起来nginx二进制文件是使用--without-http_fastcgi_module选项编译的。这不是默认值。尝试下载或编译不同的二进制文件。

尝试运行

nginx -V

(使用大写V)查看用于编译nginx的选项。

答案 3 :(得分:0)

我在conf文件的中间编辑了一些文本,nginx开始在文件本身的开头显示此错误。我复制了文件的内容,创建了一个新文件,将内容粘贴在那里,nginx停止显示此错误。

答案 4 :(得分:0)

在运行'sudo nginx -t'时,我遇到类似的错误消息,消息为“ unknown指令'index.html'”。更正index.html中的HTML语法错误后,此问题已解决。

答案 5 :(得分:0)

即使你错过了一个分号,你也会遇到同样的错误。

// Missed semicolon
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock

// With semicolon
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;

答案 6 :(得分:0)

就我而言,我在 github 中存储了配置文件 nginx.conf。我已经对原始版本的代码做了 wget,因此导致了这个错误。

后来,我克隆了我的存储库并使用了克隆中的 nginx.conf 文件,问题得到了解决。