0

Ubuntu 13.04 で nginx を使用してサブドメインをセットアップしようとしています。私は実際に以前にこれを行うことができました:

server {
    root /home/ajcrites/projects/site-a/public/;
    server_name sub.localhost;

    location / {
        try_files $uri /index.php;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

その後http://sub.localhost、完全に機能します。

ここで、同じ構成をコピーし、root(存在するパスに)変更し、server_nameのような他の値に変更しましたsubber.localhost。何をやってもsubber.localhost仕事に行けない。また、何をしても、nginxの実行中に作業を停止sub.localhostすることはできません。奇妙なのは、nginx が実際に構成ファイルのエラーについて文句を言うことですが、何もなくても問題にはなりません。 のみ sub.localhost動作します。

次のすべてを繰り返し、さまざまな組み合わせで試しました。

  • で別のファイルを作成しますsites-available。nginx は、リロードしようとするとエラーが発生するため、そこにあるようです。
  • service nginx stop && service nginx start
  • nginx stop; nginx
  • nginx -s reload

するとstop、プロセスpgrepが表示されないnginxので、正しく停止しているように見えます。新しいブラウザー インスタンスが同じように反応するため、これはキャッシュの問題ではないようです。

4

1 に答える 1

2

私はたまたま同様の問題を抱えていましたが、それは単純な問題でした(ただし、見つけるのに長い時間がかかりました)。たとえば(いくつかの点が明らかである場合は申し訳ありませんが、明らかなことを無視して難しいことに焦点を当てることがあります-少なくとも私の場合です)

  • シンボリックリンクが存在することを確認してくださいsites-enabled
  • ルートパスには、 nginxユーザーの/(少なくともx)からの読み取りアクセス権があります。
  • ローカル テスト (またはローカル DNS) 用に明確subber.localhostに定義されています。/etc/hosts

listenがリッスンしている IP を強制することもできます。たとえば、代わりに

listen 80

あなたは試すことができます

listen 127.0.0.1:80;     # OR
listen 192.168.0.1:80;   # you local address (or remote if that's the case)
于 2013-06-11T05:31:43.780 に答える