Raspberry Pi OS에 Nginx&PHP를 설치하여 웹 서버를 구축
제한사항
웹 서비스용이 아니고, 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
호스트명 지정으로 /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
위의 예라면, php7.1
php7.2
php7.3
를 지정하면 자동으로 최신 php-fpm
가 설치됩니다.
$ 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가 실행되도록
php7.3
수정 전
# 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;
}
수정 후 (댓글 아웃 제거/sudo vim /etc/nginx/sites-available/default
추가)
# 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)
include fastcgi_params;
에 sudo vim /var/www/html
를 작성한다.
<?php
phpinfo();
PHP 페이지 표시 테스트
$ sudo systemctl restart nginx
브라우저에서 호스트 이름을 지정하여 액세스. index.php
대신 index.html
가 표시되는지 확인합니다.
- 이상 -
Reference
이 문제에 관하여(Raspberry Pi OS에 Nginx&PHP를 설치하여 웹 서버를 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ayumi-ikeda/items/dc613db9e280ce44e3eb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ 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
호스트명 지정으로 /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
위의 예라면, php7.1
php7.2
php7.3
를 지정하면 자동으로 최신 php-fpm
가 설치됩니다.
$ 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가 실행되도록
php7.3
수정 전
# 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;
}
수정 후 (댓글 아웃 제거/sudo vim /etc/nginx/sites-available/default
추가)
# 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)
include fastcgi_params;
에 sudo vim /var/www/html
를 작성한다.
<?php
phpinfo();
PHP 페이지 표시 테스트
$ sudo systemctl restart nginx
브라우저에서 호스트 이름을 지정하여 액세스. index.php
대신 index.html
가 표시되는지 확인합니다.
- 이상 -
Reference
이 문제에 관하여(Raspberry Pi OS에 Nginx&PHP를 설치하여 웹 서버를 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ayumi-ikeda/items/dc613db9e280ce44e3eb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ sudo apt update
$ sudo apt install 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
위의 예라면, php7.1
php7.2
php7.3
를 지정하면 자동으로 최신 php-fpm
가 설치됩니다.
$ 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가 실행되도록
php7.3
수정 전
# 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;
}
수정 후 (댓글 아웃 제거/sudo vim /etc/nginx/sites-available/default
추가)
# 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)
include fastcgi_params;
에 sudo vim /var/www/html
를 작성한다.
<?php
phpinfo();
PHP 페이지 표시 테스트
$ sudo systemctl restart nginx
브라우저에서 호스트 이름을 지정하여 액세스. index.php
대신 index.html
가 표시되는지 확인합니다.
- 이상 -
Reference
이 문제에 관하여(Raspberry Pi OS에 Nginx&PHP를 설치하여 웹 서버를 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ayumi-ikeda/items/dc613db9e280ce44e3eb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ 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
$ 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 [インストール済み、自動]
php7.3
수정 전
# 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;
}
수정 후 (댓글 아웃 제거/
sudo vim /etc/nginx/sites-available/default
추가) # 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)
include fastcgi_params;
에 sudo vim /var/www/html
를 작성한다.
<?php
phpinfo();
PHP 페이지 표시 테스트
$ sudo systemctl restart nginx
브라우저에서 호스트 이름을 지정하여 액세스. index.php
대신 index.html
가 표시되는지 확인합니다.
- 이상 -
Reference
이 문제에 관하여(Raspberry Pi OS에 Nginx&PHP를 설치하여 웹 서버를 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ayumi-ikeda/items/dc613db9e280ce44e3eb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
phpinfo();
$ sudo systemctl restart nginx
브라우저에서 호스트 이름을 지정하여 액세스.
index.php
대신 index.html
가 표시되는지 확인합니다.- 이상 -
Reference
이 문제에 관하여(Raspberry Pi OS에 Nginx&PHP를 설치하여 웹 서버를 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ayumi-ikeda/items/dc613db9e280ce44e3eb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)