この投稿は別サイトからのクロス投稿です(クロス元:https://shioleap.github.io/blog/...

この記事は自分のブログからのクロス投稿です。(クロス元: https://shioleap.github.io/blog/Linux/Debian/install-nginx/

ローカルで Web 開発する時の簡易サーバーがほしかったので Debian に Nginx でローカル開発環境を作ってみました。

apt に Nginx のレポジトリを追加

Debian の公式レポジトリの Nginx は例によってバージョンが古いので Nginx の公式レポジトリを追加します。

まずは鍵を追加します。 wget でおろして来て読み込ませます。

$ wget http://nginx.org/keys/nginx_signing.key  
$ sudo apt-key add nginx_signing.key

続いて、レポジトリを追加します。/etc/apt/sources.list に次の2行を追加するか、次の2行の内容のファイルを /etc/apt/sources.list.d/nginx.list などに作成して保存します。 root 権限で作業する必要があるので注意してください。

deb http://nginx.org/packages/debian/ stretch nginx  
deb-src http://nginx.org/packages/debian/ stretch nginx

Nginx をインストール

レポジトリの追加が出来たら Nginx をインストールします。

$ sudo apt update  
$ sudo apt install nginx

Nginx を起動

nginxを起動して localhost にアクセスします。

$ sudo nginx

それっぽいページが表示されていたら成功です。

Nginx を終了させるときは

$ sudo nginx -s stop

で OK です。

Nginx の起動パスを変更

デフォルトの Nginx の起動パスは /usr/share/nginx/html なので自分のワークスペースに変更します。 root 権限で作業する必要があるので注意してください。

まずは自分用の設定ファイルを用意します。 /etc/nginx/conf.d/default.conf をコピーして /etc/nginx.conf.d/myconfig.conf を作成します。もちろん myconfig.conf は好きなファイル名で構いません。

それから、 /etc/nginx.conf.d/myconfig.conf を編集します。下に示してあるように、9行目辺りの root/home/username/workspace/ に変更して保存します。

server {  
    listen       80;  
    server_name  localhost;  

    #charset koi8-r;  
    #access_log  /var/log/nginx/host.access.log  main;  

    location / {  
        root   /home/username/workspace/;  
        index  index.html index.htm;  
    }  

    #error_page  404              /404.html;  

    # redirect server error pages to the static page /50x.html  
    #  
    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   /usr/share/nginx/html;  
    }  

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80  
    #  
    #location ~ \.php$ {  
    #    proxy_pass   http://127.0.0.1;  
    #}  

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
    #  
    #location ~ \.php$ {  
    #    root           html;  
    #    fastcgi_pass   127.0.0.1:9000;  
    #    fastcgi_index  index.php;  
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  
    #    include        fastcgi_params;  
    #}  

    # deny access to .htaccess files, if Apache's document root  
    # concurs with nginx's one  
    #  
    #location ~ /\.ht {  
    #    deny  all;  
    #}  
}

続いて、さきほど作成した /etc/nginx.conf.d/myconfig.conf を読み込ませるために、 /etc/nginx/nginx.confinclude /etc/nginx/conf.d/*.conf; をコメントアウトして include /etc/nginx/conf.d/myconfig.conf; を追加します。下に示してあるものの 30,31 行目あたりです。

user  nginx;  
worker_processes  1;  

error_log  /var/log/nginx/error.log warn;  
pid        /var/run/nginx.pid;  


events {  
    worker_connections  1024;  
}  


http {  
    include       /etc/nginx/mime.types;  
    default_type  application/octet-stream;  

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  
                      '$status $body_bytes_sent "$http_referer" '  
                      '"$http_user_agent" "$http_x_forwarded_for"';  

    access_log  /var/log/nginx/access.log  main;  

    sendfile        on;  
    #tcp_nopush     on;  

    keepalive_timeout  65;  

    #gzip  on;  

    #include /etc/nginx/conf.d/*.conf;  
    include /etc/nginx/conf.d/myconfig.conf;  
}

これで、 Nginx を再起動させると自分のワークスペースが起動パスになります。

Nginx を自動起動させないようにする

デフォルトではコンピューターが起動したときに自動で Nginx が起動するのでそれを無効にします。

$ sudo systemctl disable nginx

逆に自動で起動させるには次のようにします。

$ sudo systemctl enable nginx

関連記事

この記事へのコメント

まだコメントはありません
+1
18
@shioleapの技術ブログ
このエントリーをはてなブックマークに追加