오드로이드 XU4 를 개인 클라우드 서버로 - 6. Nginx, PHP, MariaDB
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
참고사이트:
본문 내 링크
출처 : http://awesometic.tistory.com/19?category=964086