Raspberry Pi OSにNginx&PHPをインストールしてWebサーバーをたてる
制限事項
webサービス用ではなくて、httpプロトコル関係の実験用なので、データベスサーバーのインストールはしていないです。
PHPは要らないかもだけど、一応。
LAN内の独立したサーバーを想定しています。なので、セキュリティとか考えてないです。
OS&HWバージョン確認
$ lsb_release -a #OSのバージョンを確認
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
$ uname -a #カーネルのバージョンを確認
Linux capybara 5.4.79-v7+ #1373 SMP Mon Nov 23 13:22:33 GMT 2020 armv7l GNU/Linux
$ cat /proc/device-tree/model #ハードウェアのモデルを確認
Raspberry Pi 3 Model B Rev 1.2
Nginxのインストール
$ sudo apt update
$ sudo apt install nginx
$ lsb_release -a #OSのバージョンを確認
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
$ uname -a #カーネルのバージョンを確認
Linux capybara 5.4.79-v7+ #1373 SMP Mon Nov 23 13:22:33 GMT 2020 armv7l GNU/Linux
$ cat /proc/device-tree/model #ハードウェアのモデルを確認
Raspberry Pi 3 Model B Rev 1.2
$ sudo apt update
$ sudo apt install nginx
ホスト名指定で /var/www/html/index.html
が表示されるのを確認する。
Nginxの設定
fastcgi_params
NginxでPHPを動かす為の設定を追加
$ sudo echo 'fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' | sudo tee -a /etc/nginx/fastcgi_params
tee
の -a
オプション忘れると追記じゃなくて上書きになっちゃうから注意。
$ sudo nginx -t #構文チェック
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
PHPのインストール
$ apt list | grep PHP | grep fpm #インストールできるバージョンの確認
php-fpm/stable,now 2:7.3+69 all
php7.1-fpm/stable 7.1.20-1+b2 armhf
php7.2-fpm/stable 7.2.9-1+b2 armhf
php7.3-fpm/stable,now 7.3.19-1~deb10u1 armhf
$ apt list | grep PHP | grep fpm #インストールできるバージョンの確認
php-fpm/stable,now 2:7.3+69 all
php7.1-fpm/stable 7.1.20-1+b2 armhf
php7.2-fpm/stable 7.2.9-1+b2 armhf
php7.3-fpm/stable,now 7.3.19-1~deb10u1 armhf
上の例だと、php7.1
php7.2
php7.3
のいずれかをインストール可能なことが確認できる。php-fpm
を指定すると、自動的に最新のphp7.3
がインストールされる。
$ sudo apt-get install php-fpm #PHPをインストール
$ apt list | grep php | grep fpm #確認
php-fpm/stable,now 2:7.3+69 all [インストール済み]
php7.1-fpm/stable 7.1.20-1+b2 armhf
php7.2-fpm/stable 7.2.9-1+b2 armhf
php7.3-fpm/stable,now 7.3.19-1~deb10u1 armhf [インストール済み、自動]
NginxでPHPが走るようにする
sudo vim /etc/nginx/sites-available/default
修正前
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
修正後(index.phpを追加)
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
修正前
# pass PHP scripts to FastCGI server
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
修正後(コメントアウトを外す/include fastcgi_params;
を追加)
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
最終型
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
sudo nginx -t #構文テスト
確認用のページ作成(index.php)
sudo vim /var/www/html
に index.php
を作成する。
<?php
phpinfo();
PHPページの表示テスト
$ sudo systemctl restart nginx
$ sudo systemctl restart nginx
ブラウザでホスト名を指定してアクセス。index.html
ではなく index.php
が表示されたのを確認。
− 以上 −
Author And Source
この問題について(Raspberry Pi OSにNginx&PHPをインストールしてWebサーバーをたてる), 我々は、より多くの情報をここで見つけました https://qiita.com/ayumi-ikeda/items/dc613db9e280ce44e3eb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .