この導入チュートリアル を使用して、Ubuntu 12.04サーバーをFlask、uWSGI、およびNginxで稼働させようとしています。 Nginxの実行に問題があります。 nginxを(再)起動しようとすると、単に...fail!
と表示され、テストを実行すると(Sudo nginx -t
を使用して)、次のように表示されます。
nginx: [emerg] unknown directive "uwsgi_param" in /etc/nginx/uwsgi_params:1
nginx: configuration file /etc/nginx/nginx.conf test failed
そのファイルでは何も変更しなかったので、その内容はデフォルトのものです。
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
/etc/nginx/sites-available/www
のサーバー定義は次のようになります。
server {
listen 8080;
server_name myapp;
root /var/www/myapp;
try_files $uri @uwsgi;
location @uwsgi {
include uwsgi_params;
uwsgi_pass unix:/tmp/myapp.sock;
}
}
私がここで間違っていることを誰か知っていますか?なぜこれが実行されないのですか?すべてのヒントを歓迎します!
私のための修正は次のように簡単でした:
Sudo apt-get install nginx-full
インストールされているnginxのバージョンはUWSGIをサポートしていません。次のようなものを見つけるのは非常に簡単です。
% apt-cache search nginx uwsgi
nginx-core - nginx web/proxy server (core version)
nginx-extras - nginx web/proxy server (extended version)
nginx-full - nginx web/proxy server (standard version)
つまり、これらのパッケージはすべて、パッケージの説明にuwsgiが含まれていることを意味します。これは通常、肯定的な意味です。説明を見るだけでそれを確認できます。 apt-cache show packagename
。