$ sudo service nginx reload
$ sudo service php8.1-fpm restart
1. 설치 환경
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
ubuntu 22 환경에 nginx 와 php를 설치토록 한다
2. nginx 설치
$ sudo apt update
$ sudo apt install nginx
3. 방화벽 설정
3.1 IPtables(패킷필터링 방식의 리눅스 기본 방화벽)
제어가 필요한 port를 아래와 같이 등록하여 준다
$ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
3.2 ufw
nginx가 제대로 설치가 완료되면 자동으로 방화벽에 등록이 되며 아래와 같이 확인할 수 있다.
$ sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
필요하면 등록하면 된다
$ sudo ufw allow http https mysql
# 포트를 직접 명시하여 등록할 수도 있다
$ sudo ufw allow 3306/tcp
** 서버가 Cloud와 같은 환경에 있다면, Cloud의 VCN 설정 등 그에 따른 네트워크 정책도 설정하여야 한다.
3.3 서비스 재기동
$ sudo systemctl restart ufw
$ sudo service nginx restart
5. PHP 설치
5.1 엔진 설치
$ sudo apt install php
# 설치 확인
$ php -v
PHP 8.1.2 (cli) (built: Aug 8 2022 07:28:23) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
5.2 PHP-FPM(PHP-FPM (FastCGI Process Manager) 설치
웹서버 프로그램과의 통신을 하기 위한 모듈을 설치한다.
$ sudo apt install php-fpm
# 또는 아래와 같이 장인정신으로 한 땀, 한 땀 정성으로 모아 설치할 수 있다.
$ sudo apt install -y php8.1-fpm php8.1-gd php-json php8.1-mysql php8.1-curl php8.1-mbstring php8.1-intl php-imagick php8.1-xml php8.1-zip
5.3 php / php-fpm 환경 설정
아래 파일에서 설정하면 된다.
- /etc/php/8.1/fpm/php.ini
- /etc/php/8.1/fpm/pool.d/www.conf
6. nginx 와 php 연결하기
6.1 php-fpm 설정
/etc/php/8.1/fpm/pool.d/www.conf 파일에서
"listen :" 부문을 찾아서
listen : 127.0.0.1:9000 으로 설정한다.
6.2 nginx 설정 파일 변경
설정 파일들은 /etc/nginx 폴더에 있으며 메인 설정파일에서 각 설정파일을 include하는 형식으로 구성되어 있다
이 중 /etc/nginx/sites-available/default 파일을 편집하여 설정하면 된다.
# 중략
# index 부분에 index.php를 추가한다.
index index.php index.html index.htm index.nginx-debian.html;
# 중략
# location ~ \.php$ 블럭을 추가하고
# include snippets/fastcgi-php.conf; 부분의 커멘트를 제거하고
# fastcgi_pass를 php에서 설정한 값으로 세팅한다
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.4-fpm.sock;
# With php-cgi (or other tcp sockets):
fastcgi_pass 127.0.0.1:9000;
}
6.3 서비스 재기동
# php-fpm 재기동
# apt install php-fpm로 설치하여도 버전명이 포함된 버전으로 설치된다
$ sudo service php8.1-fpm restart
# nginx의 환경 설정만을 반영하고자하는 경우 reload를 사용할 수 있다.
$ sudo service nginx restart
7. html / html 확장자도 php 처럼 인식하게 하기
7.1 nginx 설정(/etc/nginx/sites-available/default) 수정
server{
location ~ \php$ {
}
}
# 아래와 같이 php -> (php|htm|html) 으로 수정한다
server{
location ~ \.(php|htm|html)$ {
}
}
7.2 fpm 설정(/etc/php/8.1/fpm/pool.d/wwww.conf )수정
;security.limit_extensions = .php .php3 .php4 .php5 .php7
# 세미콜론(';')을 제거하고 .html과 .htm을 아래와 같이 추가한다
security.limit_extensions = .html .htm .php .php3 .php4 .php5 .php7
7.3 서비스 재기동
$ sudo service nginx reload
$ sudo service php8.1-fpm restart
'Oracle Cloud Infrastructure(OCI)' 카테고리의 다른 글
OCI(Oracle Cloud Infrastructure)에 무료 입주하기 (0) | 2022.10.20 |
---|