独り言ch

このブログでは、個人的な体験談や意見などを好き勝手書くサイト。

【LINUX:備忘録】ウェブサーバーの設定編

備忘録
nginxでWEBサーバーを構築した後、コンフィグファイルを編集してファイルをブラウザーに表示する。

環境
OS:CentOS8.1
WEBサーバー:nginx

手順1:下記のディレクトリーにある「nginx.conf」のファイルを編集

[root@localhost ~]vi /etc/nginx/nginx.conf

手順2:serverの値を編集

server {
         listen       80 default_server;
         listen       [::]:80 default_server;

     # SSLを使用する場合は下記3行記入
         # listen  443 ssl;
         # ssl_certificate         /etc/pki/tls/certs/example.crt;
         # ssl_certificate_key     /etc/pki/tls/certs/example.key;

        #server_nameを今回は、localhostにする
         server_name  localhost;

        #rootディレクトリーを指定
         root     /usr/share/nginx;

手順3:locationの記載

  #Load configuration files for the default server block.

        include /etc/nginx/default.d/*.conf;
  

  #locationの後ろに、ファイルの置いてあるフォルダー名を「/」で囲んで記載 ※今回は/test/
         location /test/ {
      #フォルダーに格納されているファイルを記載、複数ある場合は、最初に記載されたファイルから優先順位が決まる
                 index   test.html;
        }

 

#aliasの書き方
#aliasの利点:「alias」に記載されたディレクトリーを参照して表示してくれる
#例えば下記の2つの「location」があった場合
#ウェブブラウザーに「https://localhost/test1/」「 https://localhost/test/」と記入した場合
#「/usr/share/nginx/cgi-bin/test1/」に格納されているファイルを表示できる。

        location /test1/ {
                alias   /usr/share/nginx/cgi-bin/test1/;
                index   index.html;
        }

        location /test/ {
                alias  /usr/share/nginx/cgi-bin/test1/;
                index   index.html;
        }

番外編:cgiのファイルをブラウザーに表示する場合

1.EPELレポジトリーをインストール
dnf -y install epel-release

2.fcgiwrapをインストールfcgiwrapfcgiwrap
dnf --enablerep=epel -y install fcgiwrap

3.ソケットの確認
systemctl list-units --type=socket | grep nginx.socket
or
systemctl list-units | grep nginx.socket

4.ソケット有効化
systemctl enable fcgiwrap@nginx.socket

5.ソケット開始
systemctl start fcgiwrap@nginx.socket

 

6.cgiファイル作成 ※今回はpython

touch /usr/share/nginx/******(任意)/******(任意).cgi

vi /usr/share/nginx/******(任意)/******(任意).cgi

 

#!/usr/bin/python3

import os

# カウントを保存するファイル
counter_file = '/usr/share/nginx/******(任意)/count.txt'

if not os.path.exists(counter_file):
    with open(counter_file, 'w') as f:
        f.write('0')

with open(counter_file, 'r') as f:
    count = int(f.read().strip())

count += 1

with open(counter_file, 'w') as f:
    f.write(str(count))

print("Content-type: text/html\n")
print("<html>\n<body>")
print("<div style=\"font-size: 40px;\">")
rint("CGI")
print(f"<h1>this page has been opened {count} </h1>")
print("</div>")
print("</body>\n</html>")


7.nginx.confの編集

location /******(任意)/ {
                index           ******(任意).cgi;
                include         fastcgi_params;
                fastcgi_pass    unix:/run/fcgiwrap/fcgiwrap-nginx.sock;
                fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }

 

豆知識:

EPEL はFedora プロジェクトが提供するレポジトリーの使用を可能にする機能
RedHat が提供するレポジトリー以外も使用できるようになる。