'php'에 해당되는 글 1

  1. 2017.10.16 Nginx + Mariadb + php + Adminer on RaspberryPi

Nginx + Mariadb + php + Adminer on RaspberryPi

Nginx 가 나오고 PHP-FPM 이 나오면서 NPM으로 많이 운영한다고 해서 저도 그냥 그렇게 구축해 봅니다.

 

아래의 링크를 참조 했고요.

 

https://www.e-tinkers.com/2016/11/hosting-wordpress-on-raspberry-pi-part-2-install-nginx-php-and-mariadb/

 

명령어 위주로 갑니다.

 

[웹서버 설치]

sudo apt-get install nginx -y

 

[동작 확인]

sudo service nginx start

 

기본 웹페이지 경로는 "/var/www/html"입니다.

 

[설정] -- 원문이 워드프레스 용이므로 반드시 해야할 필요는 없을 것 같습니다.

sudo nano /etc/nginx/nginx.conf

 

1) multi_accept 의 주석처리 삭제하고 설정은 on: 매번 새로운 커넥션 연결

2) keepalive_timeout을 5로 변경: 유휴 연결을 기본 65에서 5초로 단축

3) server_tokens 의 주석처리 삭제, 설정은 off: 오류 표기시 엔진서버의 버전이 표기되지 않음

4) server_tokens의 다음 줄에 client_max_body_size 를 추가하고 설정은 16m

5) gzip_vary on 주석처리 삭제 : gzip 처리에 대한 결정시간 단축

6) gzip_proxied 주석처리 삭제, 설정은 any: gzip 처리에 대한 결정시간 단축

7) gzip_comp_level 주석처리 삭제, 설정은 5. ASCII 압축률 75% 상승, CPU점유율은 거의 그대로

8) gzip_http_version 1.1 주석처리 삭제: HTTP/1.0 and HTTP/1.1 둘다 사용가능해짐

9) 다음열에 gzip_min_length 256 추가: 기본값은 20바이트로 256바이트가 넘는 파일에서만 gzip을 수행하도록 변경

10) Google PageSpeed test 를 피하려면 아래의 MIME types으로 교체
    gzip_types
       application/atom+xml
       application/javascript
       application/json
       application/rss+xml
       application/vnd.ms-fontobject
       application/x-font-ttf
       application/x-web-app-manifest+json
       application/xhtml+xml
       application/xml
       font/opentype
       image/svg+xml
       image/x-icon
       text/css
       text/plain
       text/x-component;


이렇게하면 HTML 파일 형식 외에 JavaScript, CSS 및 SVG 파일 형식도 gzip으로 압축됩니다.

 

수정을 하셨으면 '컨트롤-x'를 눌러 종료하시고, 편집 내용을 저장할 것이냐고 묻는다면 'Y'를 저장 위치는 '엔터키'를 누르시면 됩니다.

 

[수정한 설정파일의 문법을 확인]

sudo nginx -t

 

잘 수정하셨으면 아래의 메시지가 등장합니다.

"nginx: the configuration file /etc/nginx/nginx.conf syntax is ok"
"nginx: configuration file /etc/nginx/nginx.conf test is successful"

아니라면 내용을 다시 확인해 주세요.

 

[웹서버 재실행]

sudo service nginx restart

 

[PHP-FPM 설치]

sudo apt-get install php5-fpm php5-mysqlnd php5-xmlrpc php5-curl php5-gd php5-imap php5-mcrypt -y

 

원문의 " php5-imagick "은 설치가 안되더라고요. 그래서 빼고 했습니다. 안되는 내용있으면 빼세요.

 

[웹서버에서 PHP 인식시키기]

sudo nano /etc/nginx/sites-available/default

 

[설정 내용]

"index index.html index.htm index.nginx-debian.html;"

 -->

"index index.php index.html index.htm;"

 

 

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
# location ~ \.php$ {

 -->

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
}

 

수정을 하셨으면 '컨트롤-x'를 눌러 종료하시고, 편집 내용을 저장할 것이냐고 묻는다면 'Y'를 저장 위치는 '엔터키'를 누르시면 됩니다.

 

[서버 설정 적용]

sudo service nginx reload

 

[PHP 동작확인]

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

 

<?php echo phpinfo(); ?>

윗 내용을 입력 하셨으면 '컨트롤-x'를 눌러 종료하시고, 편집 내용을 저장할 것이냐고 묻는다면 'Y'를 저장 위치는 '엔터키'를 누르시면 됩니다.

 

웹브라우저에서 서버의 IP를 입력하면 설치된 PHP 정보가 뜹니다.

안뜨면 설정을 뭔가 잘못하신겁니다.

 

[DB설정]

sudo apt-get install mariadb-server -y

 

파란창이 뜨면서 'root'계정의 패스워드를 입력하는 창이 뜹니다.

패스워드를 입력해주세요.

저는 이상하게 안뜨네요. 안뜨면 패스워드가 공란(blank)으로 들어가 있습니다.

mysql root 패스워드 변경 등으로 검색하시면 관련 자료 찾으실 수 있으실 겁니다.

[DB 보안성 강화]

sudo mysql_secure_installation

 

보안 강화를 위해 n, y, n, n, y를 입력하시면 됩니다. 자세한 내용은 원문의 스크린샷을 참조해주세요.

 

[db관리툴 설치]

그동안 phpmyadmin 많이 사용해 오셨을 듯합니다. 오랜 역사와 다양한 기능으로 사랑 받아왔습니다. 하지만 라즈베리파이에서 가볍게 사용하시려면 adminer를 추천해드립니다. (자세한 설명은 링크 참조)

단점은 한국어 버전이 없습니다.

 

adminer는 설치 형식이 아닌 단일 파일로 되어있어 웹사이트에서 다운받는 방식(2017. 10. 현재 4.3.1버전이 최신)

 

sudo mkdir /var/www/html/admin
cd /var/www/html/admin

sudo wget https://www.adminer.org/static/download/4.3.1/adminer-4.3.1-mysql-en.php

 

[실행]

브라우저에서 http://서버IP/admin/adminer.php

 

 

'Raspbian' 카테고리의 다른 글

jessie backport repository on RaspberryPi  (0) 2017.10.19
OpenHAB on raspberrypi  (0) 2017.10.18
SiteWhere on raspberrypi - IoT서버 설치  (0) 2017.10.16