web-dev-qa-db-ja.com

Nginxサーバーブロックが機能しない

免責事項:明確にするために、私はLinuxにまったく慣れていませんが、Google検索と個人的な調査によってすべてを構成しました。

ドメインのホストとして使用する予定のLEMPスタックを備えたDebianWheezyサーバーがあります。

DNSを機能させて、ドメインに入ると「welcometonginx」ページが表示されるようにしました。サイトをホストするディレクトリを作成し、サイトのファイルを入力し(index.phpがメインページ)、サーバーブロック(/ etc/nginx/sites--)も構成しているため、問題が発生します。 available/example.com)のように:

UPDATED Server block
server {
        listen   80;
        server_name example.com www.example.com;
        root /var/www/example.com;
        index index.php index.html index.htm;
        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /var/www/example.com;
        }

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}

サイト対応ディレクトリへのシンボリックリンク付き。ただし、サービスを再起動した後やマシンを再起動した後でも、ドメインには「welcometonginx」メッセージが表示されます。サイト内の同様の問題の回答を使用して他の行を編集してみましたが、これまでのところ変更はなく、エラーログには何も表示されません。構成の障害の原因は何ですか?

答えてくれてありがとう

[〜#〜] update [〜#〜]:これがnginx.confファイルです。 site-availableの一部の行をコメント化およびコメント解除しながら実験し、ファイルを「sites-enabled」ディレクトリにコピーしようとすると、ドメインはロードを拒否し、「データを受信しません」というエラーが発生します。

UPDATED nginx.conf
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

     server_names_hash_bucket_size 64;

    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";
    text/javascript;


    ##
    # Virtual Host Configs
    ##

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

PDATE 2:構成を再確認した後、アクセス許可が正しく設定されておらず、サイトが有効なディレクトリにない場合でも、デフォルトでサイトが何らかの形でオーバーライドされていることに気付きました。デフォルトをバックアップして削除し、サーバーブロックの作業ディレクトリを変更して、サイトのファイルをキャプチャしたファイルに移動しました。それは機能し、サイトが読み込まれました。これをアップデートに追加するか、別の質問に入れるかはわかりませんが、ここで問題が発生します。サイトがhtmlとCSSをロードするのですが、何らかの理由でPHPではなく、それ?。私が見つけたものに応じて更新します、またはあなたたちがより多くの情報を必要とするならば、ありがとう!

最終更新:少し時間がかかりましたが、phpエラーがどこにあるのかを知ることができました。ログを調べ始め、php5-curlをインストールする必要があることがわかりました。その後、問題は修正されました。これで、サイトは完全に機能します。

2
Aldax

Php CGIまたはFPMを使用していますか?必要なfastcgi_passディレクティブは1つだけですが、どちらもコメントされていません。

インデックスファイルindex.htmlを作成し、そのようなファイルをサーバールートに配置してみてください。 nginxをリロードして、それが機能するかどうかを確認します。 PHPを追加すると事態が複雑になるため、nginx自体が最初に機能することを確認してください。service nginx configtestも非常に役立ちます。

更新:ポート9000でPHP-FPMを使用しているようです。unixソケット行をコメントアウトしたままにして、サーバーが独自のポート9000(TCP)と通信できることを確認します。 nginxに関する限り、動作しているように聞こえますが、PHPは動作しない可能性があります。デフォルトでは、 FPMデーモン用の独自のログファイルとPHPスクリプト用のログファイル(おそらく/var/log/どこか)。/etc/php5/fpmに飛び込んで、.iniファイルの調査を開始します。

0
IslandUsurper

与えられた部分:

サイト対応ディレクトリへのシンボリックリンク付き

私はあなたが間違っているところだと思います。

sites-enabledシンボリックリンクが必要ですに向かってsites-available構成であり、逆ではありません。これは、nginxがデフォルトで検索する場所だからです(nginx.confを参照)。

あなたのnginx.confを共有することはそこで役立つかもしれません。

0
Xavier Lucas