18

我已经按照这个网站http://raspberrypihelp.net/tutorials/24-raspberry-pi-webserver在我的 Raspberry Pi 上设置 HTTP 服务器 nginx 并尝试设置一个站点调用example.com。但是当我跑的时候sudo service nginx restart,它说

重启 nginx: nginx: [emerg] unknown directive " " in /etc/nginx/sites-enabled/example.com:3

这是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;

    }

}

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

4

7 回答 7

35

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

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

只是删除了每个EOL并再次添加。

于 2014-02-22T21:27:18.443 回答
10

听起来您在这里做了一些复制和粘贴工作。在行尾 (EOL) 捕获一些不可见的额外字符并不少见。尝试这个:

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

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

这对我有用。希望对你有效。

于 2014-07-23T18:25:22.330 回答
1

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

尝试运行

nginx -V

(使用大写 V)查看编译 nginx 时使用了哪些选项。

于 2013-11-24T02:31:11.713 回答
0

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

于 2019-03-15T18:47:38.220 回答
0

运行“sudo nginx -t”时,我遇到了与“未知指令'index.html'”类似的错误消息问题。更正 index.html 中的 HTML 语法错误后,问题得到解决。

于 2019-11-12T12:42:20.553 回答
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;
于 2021-05-10T15:51:23.667 回答
0

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

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

于 2021-07-05T18:47:57.153 回答