Ubuntu, Install Nginx, PHP7.0, MySQL
Ubuntu14.04 Nginx, PHP7, MySQL 설치하기
Ubuntu14.04 환경에서 Nginx, PHP7, MySQL 을 연동하는 방법을 알아보겠습니다.
기존 apt-get 으로 위 프로그램들을 설치하면 낮은 버전이 설치되거나 설치가 안될 수 있습니다.
그래서 설치준비단계에서 저장소를 추가하고 본격적인 설치작업에 들어갑니다.
2016.05.02(월) 기준 이상없이 동작하는 설치방법입니다.
글 디자인을 못해서 보기가 성가시겠지만 ㅠㅠ 잘 작동하는 매뉴얼입니다.
고통없는 설치로 시작하세요~
설치 준비
Nginx 저장소 추가
$ sudo vi /etc/apt/sources.list
다음 두 라인을 추가한다.
deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx
Nginx 키추가
$ wget http://nginx.org/keys/nginx_signing.key
$ sudo apt-key add nginx_signing.key
$ sudo rm nginx_signing.key
PHP7 저장소 추가
$ add-apt-repository ppa:ondrej/php
본격적으로 설치해보자
먼저 저장소 최신화를 수행한다.
$ sudo apt-get update
Nginx 설치&확인
sudo -s nginx=stable # use nginx=development for latest development version add-apt-repository ppa:nginx/$nginx apt-get update apt-get install nginx
$ nginx -v
인터넷브라우저 열어서 http://localhost 로 접속해보자
welcome to nginx 가 출력되면 정상적으로 설치된 것이다.
PHP-fpm 설치&확인
$ sudo apt-get install php7.0-fpm
$ php -v
$ sudo apt-get install php7.0-gd php7.0-curl php7.0-mbstring
$ sudo vi /etc/php/7.0/fpm/php.ini
date.timezone을 찾아서 주석을 제거하고 다음과 같이 수정
date.timezone = Asia/Seoul
$ sudo service mysql status
MySQL - PHP 연동
$ sudo apt-get install php7.0-mysql
다음은 Nginx 설정. 기존 파일을 다음과 같이 작성하시면 됩니다.
$ sudo vi /etc/nginx/nginx.conf --> www-data로 user 변경
/etc/nginx/nginx.conf
--------------------------------START-------------------------------------------
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
-----------------------------------END--------------------------------------------
$ sudo vi /etc/nginx/conf.d/default.conf
/etc/nginx/conf.d/default.conf
--------------------------------START-------------------------------------------
server {
listen 80;
server_name localhost;
root /usr/share/nginx/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.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
-----------------------------------END--------------------------------------------
/etc/nginx/fastcgi_params
--------------------------------START-------------------------------------------
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;
-----------------------------------END--------------------------------------------
$ sudo service nginx restart
$ cd /usr/share/nginx/html
$ sudo vi info.php
info.php
<?php
phpinfo();
브라우저로 http://localhost/info.php 로 접속해 확인한다.
-----------------------------------END--------------------------------------------
--------------------------------START-------------------------------------------
(.... 생략)
-----------------------------------END--------------------------------------------
MySQL UTF8 Charset 설정하기
$ sudo vi /etc/mysql/my.cnf
[mysqld] (... 중략 ...)
character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [mysqldump] (... 생략 ...)
데이터 베이스, 테이블 셋 바꾸기 ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
참고자료:
# 설치관련
http://nginx.org/en/linux_packages.html
https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-php-7-on-ubuntu-14-04
http://dewdew.kr/87
https://opentutorials.org/module/384/4332
https://blog.lael.be/post/2600