備忘録
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;
}
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
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 が提供するレポジトリー以外も使用できるようになる。