본문 바로가기
클라우드노트/오라클클라우드(OCI)

(3) 오라클 클라우드에서 ubuntu, nginx, PHP7 설정

by 테크한스 2021. 11. 29.

1 (1) 오라클 클라우드 Free Tier 가입 (VM2개,100G 하드, 10TB 트래픽 평생무료)
2 (2) 오라클 클라우드 Free Tier 무료계정에 linux,nginx,mariadb,PHP,wordpress 몽땅 쓸어넣자
3 (3) 오라클 클라우드에서 unbuntu, nginx, php7 설치
4 (4) 오라클 클라우드에서 mariadb, phpmyadmin 설치
5 (5) 오라클 클라우드에서 도메인 설정, 샌드메일 설치
6 (6) 오라클 클라우드에서 nginx, https 사용을 위한 무료 SSL인증서 설정
7 (7) 오라클 클라우드에서 사용하는 워드프레스(wordpress) 설정
8 (8) 오라클 클라우드에서 무료로 사용하는 워드프레스, DB 백업과복구
9 (9) 오라클 클라우드에서 무료로 사용하는 오브젝트스토리지(S3)+아카이브 20G
10 (10) 오라클클라우드에서 무료로 제공하는 블록볼륨을 연결해 보자
11 (11) 오라클클라우드 프리티어 마지막 혜택 - Ampere A1 4CPU 24G
12 (12) 오라클 클라우드에서 무료로 제공하는 오라클 데이터베이스 ATP생성과 연결

 

오라클 클라우드(OCI)에서 ubuntu서버 설정갑시다

 

저번 시간에 소개드린 SSH 프로그램을 이용해서 터미널 접속해 봅시다

 

https://mobaxterm.mobatek.net/

 

MobaXterm free Xserver and tabbed SSH client for Windows

The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!

mobaxterm.mobatek.net

 

로그인하고 나서 시간설정을 보시면 한국으로 되어 있지 않습니다.

ubuntu@bluehorse:~$ date
Mon Nov 29 19:51:30 KST 2021
ubuntu@bluehorse:~$

 

ubuntu@bluehorse:~$  sudo dpkg-reconfigure tzdata

Current default time zone: 'Asia/Seoul'
Local time is now:      Mon Nov 29 19:53:26 KST 2021.
Universal Time is now:  Mon Nov 29 10:53:26 UTC 2021.

ubuntu@bluehorse:~$

 

 

 

 

이제는 제대로 설정되겠네요

ubuntu@bluehorse:~$ date
Mon Nov 29 19:51:30 KST 2021
ubuntu@bluehorse:~$

자 우선 서버 업데이트를 합니다.

ubuntu@bluehorse:~$ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:2 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease
Hit:4 https://mirror.yongbok.net/mariadb/repo/10.6/ubuntu bionic InRelease
Hit:5 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:6 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic-backports InRelease

맨 마지막은

Reading state information... Done
~ packagerpackages can be upgraded. Run 'apt list --upgradable' to see them.

 

 

다음은 서버 업그레이드를 하겠습니다.

ubuntu@bluehorse:~$ sudo apt upgrade

 

Need to get 98.9 MB of archives.
After this operation, 340 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

y 하시고 계속 진행요. 꽤 시간 흘러요

 

이렇게 서버 기본 설정이 끝나고 nginx 를 설치하겠습니다.

 

[nginx 웹서버 설치]

하기 내용은 이미 설치된 상태이지만 여러분은 설치전에 명령어로 확인해주세요

ubuntu@bluehorse:~$ sudo apt-cache policy nginx
nginx:
  Installed: 1.14.0-0ubuntu1.9
  Candidate: 1.14.0-0ubuntu1.9
  Version table:
 *** 1.14.0-0ubuntu1.9 500
        500 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1.14.0-0ubuntu1 500
        500 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
ubuntu@bluehorse:~$

nginx 를 설치하겠습니다.

ubuntu@bluehorse:~$ sudo apt install nginx

설치 후에 설치확인을 해서 아래와 같이 나오면 이상없는 것입니다.

 

ubuntu@bluehorse:~$ sudo apt-cache policy nginx
nginx:
  Installed: 1.14.0-0ubuntu1.9
  Candidate: 1.14.0-0ubuntu1.9
  Version table:
 *** 1.14.0-0ubuntu1.9 500
        500 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1.14.0-0ubuntu1 500
        500 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
ubuntu@bluehorse:~$

 

  Installed: 1.14.0-0ubuntu1.9

여기까지 하고 해당 브라우드져로 접속시 다음 화면이 안나오면

사전에 이런 명령어로 현재 iptables규칙을 초기화해주기 위해 실행한다

 

ubuntu@bluehorse:~$ sudo iptables -F

 

이렇게 되면 nginx는 정상적으로 설치가 된 것입니다.

 

에러나 문제가 있으면 이런 명령어를 실행해 보세요

ubuntu@bluehorse:~$ sudo apt update
ubuntu@bluehorse:~$ sudo apt upgrade

이제는 nginx의 document root 에서 개발환경등을 테스트해 보겠습니다.

ubuntu@bluehorse:~$ cd /var/www/html/

여기서 index.nginx-debian.html 파일을 열어서 (SFTP 등을 이용해서) 

내용을 수정해서 적용해 보기도 하십시요. 개발시 해당 디렉토리의 쓰기 읽기 권한에 대해서

미리 체크해 볼 필요가 있습니다.

 

우리는 /var/www 디렉토리 권한을 세트를 확인하고 아래와 같이 설정해 줍니다.

ubuntu@bluehorse:~$ ls -rlat /var/www/
ubuntu@bluehorse:~$ sudo chown -R ubuntu /var/www
ubuntu@bluehorse:~$ sudo chgrp -R ubuntu /var/www
ubuntu@bluehorse:~$ ls -rlat /var/www/

[PHP7 설치]

PHP 보안상 최소한 PHP7이상을 추천드립니다. 워드프레스를 최종적으로 설치할 것이기에

PHP를 설치해 봅니다.

ubuntu@bluehorse:~$ sudo apt-cache policy php

php를 설치하기 위해 apt 정책을 최신으로 업데이트 합니다.

ubuntu@bluehorse:~$ sudo add-apt-repository ppa:ondrej/php

 

진행하면서 중간에

Press [ENTER] to continue or Ctrl-c to cancel adding it.

엔티치고 계속 진행함

 

다음으로 apt-get 업데이트 진행합니다.

sudo apt-get update

 

php에 대한 apt 캐시 정책확인 합니다.

ubuntu@bluehorse:~$ sudo apt-cache policy php
php:
  Installed: (none)
  Candidate: 2:8.0+85+ubuntu18.04.1+deb.sury.org+1
  Version table:
     2:8.0+85+ubuntu18.04.1+deb.sury.org+1 500
        500 http://ppa.launchpad.net/ondrej/php/ubuntu bionic/main amd64 Packages
     1:7.2+60ubuntu1 500
        500 http://ap-chuncheon-1-ad-1.clouds.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
ubuntu@bluehorse:/var/www$

현재 최신에 가까운 PHP 8.0 이나 호환성을 위해 PHP 7.4으로 설치 진행함

 

PHP 7.4 설치를 위한 명령을 진행하겠습니다.

sudo apt-get install php7.4-fpm

 

After this operation, 18.7 MB of additional disk space will be used

Do you want to continue? [Y/n] y

엔터 진행

 

libpcre2-8-0 libsodium23 php-common php7.4-cli php7.4-common php7.4-fpm php7.4-json php7.4-opcache php7.4-readline 가 설치

ubuntu@bluehorse:~$ sudo service php7.4-fpm start

기본적인 설치완료후에

추가적인 php 모듈 설치 진행

ubuntu@bluehorse:~$ sudo apt-get install php7.4-curl php7.4-gd php7.4-mysql php7.4-mbstring php7.4-xml php7.4-zip php7.4-imagick php7.4-bcmath -y zip unzip

중간에

After this operation, 3509 kB of additional disk space will be used.

Do you want to continue? [Y/n]y

엔터 설치 진행

 

설치 완료된 후에 PHP 버전 확인

ubuntu@bluehorse:~$ php -v
PHP 7.4.26 (cli) (built: Nov 22 2021 09:47:55) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.26, Copyright (c), by Zend Technologies

7.4 설치 후에 php rpm 재시작합니다.

ubuntu@bluehorse:~$ sudo service php7.4-fpm restart

설치후에 php를 읽기 위해서 다시 권한 설정을 해 주어야 합니다.

ubuntu@bluehorse:~$ sudo chgrp ubuntu /etc/nginx/sites-available/default
ubuntu@bluehorse:~$ sudo chmod 664 /etc/nginx/sites-available/default
ubuntu@bluehorse:~$ ls -rlat /etc/nginx/sites-available/
total 16
-rw-r--r-- 1 root root   3000 Nov 29 13:33 default.org
drwxr-xr-x 2 root root   4096 Nov 29 13:33 .
-rw-rw-r-- 1 root ubuntu 3411 Nov 29 13:40 default
drwxr-xr-x 8 root root   4096 Nov 29 14:39 ..
ubuntu@bluehorse:~$

SFTP에서도 /etc/nginx/sites-available/ 에 위치한 default 파일을 수정 파일을 수정가능

 

default 파일의 몇가지 부분을 수정합니다.

(default 파일에서 index.php를 추가)

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;

PHP 설정 파일의 경로와 보안 설정을 추가함

	# pass PHP scripts to FastCGI server
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/run/php/php7.4-fpm.sock;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
		include fastcgi_params;
		fastcgi_read_timeout 300;
	}

	location ~ /\.ht {
	    deny all;
	}

 

설정 저장 후에 체크 스크립트 

ubuntu@bluehorse:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

그 후에 nginx 재기동 합니다.

ubuntu@bluehorse:~$ sudo systemctl reload nginx
ubuntu@bluehorse:~$ sudo service nginx restart

이제는 해당하는 php 가 정상적으로 보이는지 확인합니다.

/var/www/html 에서 index.php를 만들어서 php 설치가 잘되었는지 확인합니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php
        phpinfo();
    ?>
    
</body>
</html>

브라우져에서 이렇게 출력됩니다.

여기서 timezone 을 수정해 보겠습니다.

ubuntu@bluehorse:~$ sudo nano /etc/php/7.4/fpm/php.ini
;date.timezone =   # 이 부분 수정

date.timezone = Asia/Seoul

수정해 준후에 ctrl + X =>y 로 엔터해서 저장하고

다시 php 재기동합니다.

ubuntu@bluehorse:~$ sudo systemctl restart php7.4-fpm

다음시간에 설치할 마리아DB 보안문제가 /var/www/html/에 테스트한 파일들은 모두 삭제 요망

 

모두삭제하면 실제 브라우져에서는

 

 

다음 시간은 마리아 디비를 설치하겠습니다.

 


 

(참고) 무료클라우드에 대한 벤더별 비교 영상은 아래를 확인해 보세요

 

 

 

 

1 (1) 오라클 클라우드 Free Tier 가입 (VM2개,100G 하드, 10TB 트래픽 평생무료)
2 (2) 오라클 클라우드 Free Tier 무료계정에 linux,nginx,mariadb,PHP,wordpress 몽땅 쓸어넣자
3 (3) 오라클 클라우드에서 unbuntu, nginx, php7 설치
4 (4) 오라클 클라우드에서 mariadb, phpmyadmin 설치
5 (5) 오라클 클라우드에서 도메인 설정, 샌드메일 설치
6 (6) 오라클 클라우드에서 nginx, https 사용을 위한 무료 SSL인증서 설정
7 (7) 오라클 클라우드에서 사용하는 워드프레스(wordpress) 설정
8 (8) 오라클 클라우드에서 무료로 사용하는 워드프레스, DB 백업과복구
9 (9) 오라클 클라우드에서 무료로 사용하는 오브젝트스토리지(S3)+아카이브 20G
10 (10) 오라클클라우드에서 무료로 제공하는 블록볼륨을 연결해 보자
11 (11) 오라클클라우드 프리티어 마지막 혜택 - Ampere A1 4CPU 24G
12 (12) 오라클 클라우드에서 무료로 제공하는 오라클 데이터베이스 ATP생성과 연결

 

댓글