NAS & ODROID/Ubuntu NAS

오드로이드 XU4 를 개인 클라우드 서버로 - 6. Nginx, PHP, MariaDB

awesometic 2017. 4. 30. 02:08
반응형

 PHP로 동적 페이지 구현과, Nginx로 웹 서버를 열 준비를 해봅시다. 그리고 DBMS로는 무료인 MariaDB를 사용합니다. 이 조합은 APM(Apache-PHP-MySQL) 조합과 같이 웹 서비스를 위한 기반으로 많이 사용됩니다.

 해당 작업은 HTTP 웹 서버 인덱스를 모던하게 해주는 h5ai와 개인 블로그, 사이트를 구축하기 위한 Wordpress 등을 사용하기 위해 꼭 필요합니다.

 아래 설정은 https://blog.lael.be/post/2600 블로그 포스트를 참고했습니다. 해당 포스트는 설명이 너무 잘 나와 있네요.




1. PHP 설치

1.1 저장소 추가 및 설치

 PHP 7 버전에 대한 업데이트를 제공하는 저장소를 추가해줍시다.

sudo add-apt-repository ppa:ondrej/php

 그리고 fetch 후 php7.1-fpm 을 설치해줍니다.

sudo apt-get update && sudo apt-get install php7.1-fpm


1.2 설정

 기본 시간대를 설정해줘야 합니다. 

sudo vi /etc/php/7.1/fpm/php.ini

 두 파일에서 timezone 부분을 찾아

date.timezone = Asia/Seoul

 로 바꿔 저장합니다.


2. Nginx 설치

 웹 서버로 Nginx를 사용할 것입니다. Apache가 더 좋으신 분들은 그걸 사용하세요. 여기선 Nginx를 기준으로 진행하겠습니다.

2.1 저장소 추가 및 설치

 오드로이드 우분투 기본 저장소에서도 받으실 수 있지만, 최신 Nginx를 항상 유지하기 위해 저장소를 추가해 줍시다.

sudo add-apt-repository ppa:nginx/stable

 그리고 fetch 후 설치합니다.

sudo apt-get update && sudo apt-get install nginx


2.2 PHP-FPM과 연결 설정

 기본 페이지에서 PHP 확장자에 대한 요청을 PHP-FPM(FastCGI Process Manager)으로 전달하기 위한 설정입니다.

sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
sudo vi /etc/nginx/sites-available/default

 아래 내용으로 바꿔줍시다.

server {
    listen       80 default_server;
    server_name  localhost;
    root   /var/www/html;
 
    location / {
        index  index.php index.html;
    }
 
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
 
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

 fastcgi_params 설정파일을 백업한 후 열어 다음과 같이 변경해줍니다.

sudo mv /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.backup
sudo vi /etc/nginx/fastcgi_params

fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;
 
fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   PATH_INFO               $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED         $document_root$fastcgi_path_info;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;
 
fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
 
fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;
 
fastcgi_param   HTTPS                   $https;
 
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;

 그리고 nginx 서비스를 재시작해줍니다.

sudo service nginx restart

 마지막으로 확인을 위해, 다음 파일을 하나 생성해줍니다.

sudo vi /var/www/html/index.php

 내용은

<?php phpinfo();

 그리고

http://{오드로이드IP}/index.php

 로 확인해봅시다. 아래와 같은 화면이 나오면 정상입니다.



3. MariaDB 설치

3.1 설치

 MariaDB는 ARM 기반 프로세서를 위한 패키지를 제공하지 않습니다. 따라서 오드로이드 기본 우분투 저장소로부터 받아옵시다.

sudo apt-get install mariadb-server mariadb-client

 그리고 PHP와 연동하기 위해 다음 패키지를 추가 설치 해줍니다.

sudo apt-get install php-mysql


3.2 설정

 기본 언어셋을 범용(UTF-8)으로 설정해줘야 합니다.

 다음 설정파일을 연 후, 

sudo vi /etc/mysql/conf.d/mysql.cnf

 있던 [mysql]을 지우고 아래와 같이 변경합니다.

# MariaDB-specific config file.
# Read by /etc/mysql/my.cnf
 
[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4
 
[mysqld]
#
# * Character sets
#
# Default is Latin1, if you need UTF-8 set all this (also in client section)
#
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci

 그리고 서비스를 재시작합니다.

sudo service mysql restart 




참고사이트:
본문 내 링크




전체 글 목록
2017/04/23 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 1. 우분투 설치
2017/04/24 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 2. Webmin 설치
2017/04/25 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 3. 외장하드 마운트
2017/04/25 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 4. Samba
2017/04/28 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 5. Plex
2017/04/30 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 6. Nginx, PHP, MariaDB
2017/05/02 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 7. h5ai
2017/05/02 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 8. Wordpress
2017/05/02 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 9. 무료 도메인
2017/05/02 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - 10. 무료 SSL
2017/05/02 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - IRQ Balancing
2017/05/08 - [오드로이드 XU4] - 오드로이드 XU4 를 개인 클라우드 서버로 - CPU Governor

반응형