Language:EN / NE / AE / DE / IT

안녕하세요. 이번에는 U5PVR 에 APM 을 설치해 보도록 하겠습니다.


실제로는 apache2 + php5 + mysql 과 추가 의존성 패키지가 설치됩니다.


먼저 mysql 을 설치하고 apache2 와 php5 패키지를 설치하는 방향으로 가도록 하겠습니다.



1. mysql 설치하기


아래의 명령어를 통해 mysql 을 설치합니다.


root@u5pvr-debian:~# apt-get install mysql-server

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl mysql-client-5.5

  mysql-common mysql-server-5.5 mysql-server-core-5.5

Suggested packages:

  libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl mailx tinyca

The following NEW packages will be installed:

  libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl mysql-client-5.5

  mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5

0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.

Need to get 0 B/8000 kB of archives.

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

Do you want to continue? [Y/n]


설치과정중에 mysql root 비밀번호를 설정하는 창도 나옵니다만 저는 이미 한번 설치를 한 상태에서 가이드를 작성하고 있어서 그 부분은 빠져 있습니다. 보안 관련하여 비밀번호는 어려운 것으로 설정해 주시면 되겠습니다.


그런데 설치를 진행하게 되면 아래와 같이 에러가 발생합니다.


Preconfiguring packages ...

Selecting previously unselected package libaio1:armhf.

(Reading database ... 25829 files and directories currently installed.)

Preparing to unpack .../libaio1_0.3.110-1_armhf.deb ...

Unpacking libaio1:armhf (0.3.110-1) ...

Selecting previously unselected package mysql-common.

Preparing to unpack .../mysql-common_5.5.53-0+deb8u1_all.deb ...

Unpacking mysql-common (5.5.53-0+deb8u1) ...

Selecting previously unselected package libmysqlclient18:armhf.

Preparing to unpack .../libmysqlclient18_5.5.53-0+deb8u1_armhf.deb ...

Unpacking libmysqlclient18:armhf (5.5.53-0+deb8u1) ...

Selecting previously unselected package libdbi-perl.

Preparing to unpack .../libdbi-perl_1.631-3+b1_armhf.deb ...

Unpacking libdbi-perl (1.631-3+b1) ...

Selecting previously unselected package libdbd-mysql-perl.

Preparing to unpack .../libdbd-mysql-perl_4.028-2+deb8u2_armhf.deb ...

Unpacking libdbd-mysql-perl (4.028-2+deb8u2) ...

Selecting previously unselected package libterm-readkey-perl.

Preparing to unpack .../libterm-readkey-perl_2.32-1+b1_armhf.deb ...

Unpacking libterm-readkey-perl (2.32-1+b1) ...

Selecting previously unselected package mysql-client-5.5.

Preparing to unpack .../mysql-client-5.5_5.5.53-0+deb8u1_armhf.deb ...

Unpacking mysql-client-5.5 (5.5.53-0+deb8u1) ...

Selecting previously unselected package mysql-server-core-5.5.

Preparing to unpack .../mysql-server-core-5.5_5.5.53-0+deb8u1_armhf.deb ...

Unpacking mysql-server-core-5.5 (5.5.53-0+deb8u1) ...

Processing triggers for man-db (2.7.0.2-5) ...

Setting up mysql-common (5.5.53-0+deb8u1) ...

Selecting previously unselected package mysql-server-5.5.

(Reading database ... 26192 files and directories currently installed.)

Preparing to unpack .../mysql-server-5.5_5.5.53-0+deb8u1_armhf.deb ...

Unpacking mysql-server-5.5 (5.5.53-0+deb8u1) ...

Selecting previously unselected package libhtml-template-perl.

Preparing to unpack .../libhtml-template-perl_2.95-1_all.deb ...

Unpacking libhtml-template-perl (2.95-1) ...

Selecting previously unselected package mysql-server.

Preparing to unpack .../mysql-server_5.5.53-0+deb8u1_all.deb ...

Unpacking mysql-server (5.5.53-0+deb8u1) ...

Processing triggers for systemd (215-17+deb8u6) ...

Processing triggers for man-db (2.7.0.2-5) ...

Setting up libaio1:armhf (0.3.110-1) ...

Setting up libmysqlclient18:armhf (5.5.53-0+deb8u1) ...

Setting up libdbi-perl (1.631-3+b1) ...

Setting up libdbd-mysql-perl (4.028-2+deb8u2) ...

Setting up libterm-readkey-perl (2.32-1+b1) ...

Setting up mysql-client-5.5 (5.5.53-0+deb8u1) ...

Setting up mysql-server-core-5.5 (5.5.53-0+deb8u1) ...

Setting up mysql-server-5.5 (5.5.53-0+deb8u1) ...

[ ok ] Stopping MySQL database server: mysqld.

[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!

invoke-rc.d: initscript mysql, action "start" failed.

dpkg: error processing package mysql-server-5.5 (--configure):

 subprocess installed post-installation script returned error exit status 1

Setting up libhtml-template-perl (2.95-1) ...

dpkg: dependency problems prevent configuration of mysql-server:

 mysql-server depends on mysql-server-5.5; however:

  Package mysql-server-5.5 is not configured yet.


dpkg: error processing package mysql-server (--configure):

 dependency problems - leaving unconfigured

Processing triggers for libc-bin (2.19-18+deb8u7) ...

Errors were encountered while processing:

 mysql-server-5.5

 mysql-server

E: Sub-process /usr/bin/dpkg returned an error code (1)

root@u5pvr-debian:~#


이 에러를 해결하기 위해서 mysql 계정을 aid_inet 그룹에 추가를 합니다.

(안드로이드와 커널을 공유하기 때문에 소켓 권한을 주기 위해서 aid_inet 그룹에 추가를 해야합니다.


root@u5pvr-debian:~# adduser mysql aid_inet

Adding user `mysql' to group `aid_inet' ...

Adding user mysql to group aid_inet

Done.

root@u5pvr-debian:~#


추가를 하고 나서 다시 설치 명령어를 입력하여 진행합니다.


root@u5pvr-debian:~# apt-get install mysql-server

Reading package lists... Done

Building dependency tree

Reading state information... Done

mysql-server is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

2 not fully installed or removed.

After this operation, 0 B of additional disk space will be used.

Do you want to continue? [Y/n]

Setting up mysql-server-5.5 (5.5.53-0+deb8u1) ...

[ ok ] Stopping MySQL database server: mysqld.

[ ok ] Starting MySQL database server: mysqld . ..

[info] Checking for tables which need an upgrade, are corrupt or were

not closed cleanly..

Setting up mysql-server (5.5.53-0+deb8u1) ...

root@u5pvr-debian:~#


정상적으로 설치가 완료 되었습니다.


추가적으로 이 mysql 서버를 kodi 라이브러리 sharing 용도로 사용하는 분들이 계십니다. 


공식 가이드는 이렇습니다만 제가 직접 해보지 않아서 잘 모르겠습니다.


http://kodi.wiki/view/MySQL/Setting_up_Kodi



이 부분을 하기 위해서는 mysql 바인드 설정을 127.0.0.1 이 아니라 0.0.0.0 으로 외부에서도 접근이 가능하도록 수정해 주셔야 합니다.

(여기서 말하는 외부 접속은 127.0.0.1 대역이 아닌 다른 대역에서도 접근이 가능하게 설정하는 것을 의미합니다. 공유기 포트포워딩이 되는 것이 아닙니다.)


아래의 설정파일 수정을 통해서 외부에서도 접속을 할 수 있도록 설정합니다.


root@u5pvr-debian:~# nano /etc/mysql/my.cnf


[mysqld]

#

# * Basic Settings

#

user            = mysql

pid-file        = /var/run/mysqld/mysqld.pid

socket          = /var/run/mysqld/mysqld.sock

port            = 3306

basedir         = /usr

datadir         = /var/lib/mysql

tmpdir          = /tmp

lc-messages-dir = /usr/share/mysql

skip-external-locking

#

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.

bind-address            = 0.0.0.0    <-- 이 부분을 수정합니다.

#

# * Fine Tuning

#

key_buffer              = 16M

max_allowed_packet      = 16M

thread_stack            = 192K

thread_cache_size       = 8

# This replaces the startup script and checks MyISAM tables if needed

# the first time they are touched

myisam-recover         = BACKUP

#max_connections        = 100


수정 후 재시작 해 보면 아래와 같이 모든 주소에 대해서 바인딩 되어서 구동되는 mysql 데몬을 보실 수 있습니다.


root@u5pvr-debian:~# netstat -nlp | grep mysql

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      11448/mysqld

unix  2      [ ACC ]     STREAM     LISTENING     1574065  11448/mysqld        /var/run/mysqld/mysqld.sock

root@u5pvr-debian:~#



2. apache2 + php5 및 의존성 패키지 설치하기


패키지를 하나하나 수동으로 설치하기 보다 한방에 설치하기 위해서 아래의 phpmyadmin 설치 명령어를 넣습니다.

(아쉽게도 phpmyadmin 패키지는 사용이 되지 않습니다만, 지우셔도 무방합니다.)


root@u5pvr-debian:~# apt-get install phpmyadmin

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  apache2 apache2-bin apache2-data apache2-utils dbconfig-common javascript-common libapache2-mod-php5 libapr1 libaprutil1

  libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3 libjs-jquery libjs-sphinxdoc libjs-underscore libmcrypt4 libonig2

  libperl4-corelibs-perl libqdbm14 libvpx1 libxpm4 lsof php-gettext php-tcpdf php5-cli php5-common php5-gd php5-json

  php5-mcrypt php5-mysql php5-readline ssl-cert

Suggested packages:

  www-browser apache2-doc apache2-suexec-pristine apache2-suexec-custom php-pear libgd-tools libmcrypt-dev mcrypt

  php5-imagick php5-user-cache openssl-blacklist

The following NEW packages will be installed:

  apache2 apache2-bin apache2-data apache2-utils dbconfig-common javascript-common libapache2-mod-php5 libapr1 libaprutil1

  libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd3 libjs-jquery libjs-sphinxdoc libjs-underscore libmcrypt4 libonig2

  libperl4-corelibs-perl libqdbm14 libvpx1 libxpm4 lsof php-gettext php-tcpdf php5-cli php5-common php5-gd php5-json

  php5-mcrypt php5-mysql php5-readline phpmyadmin ssl-cert

0 upgraded, 33 newly installed, 0 to remove and 0 not upgraded.

Need to get 0 B/20.6 MB of archives.

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

Do you want to continue? [Y/n]


중간에 apache2 를 사용할지 lighttpd 를 사용할지 물어보는 창이 뜹니다. apache2 를 선택하고 mysql root 비밀번호와 phpmyadmin db 의 root 계정 비밀번호를 설정하는 것이 나옵니다. 설정하신대로 입력해 주시면 됩니다.


설치가 완료 되었으면 http://u5pvr_ip_address/ 를 입력하여 브라우저에서 아래의 창이 열리는지 확인합니다.



다음으로 php 도 정상적으로 동작하는지 확인하기 위해서 아래의 코드로 파일을 하나 생성합니다.


웹서버 실행 계정 www-data 가 읽어야 함으로 www-data 에게 권한을 줍니다.


root@u5pvr-debian:~# nano /var/www/html/phpinfo.php


<?php phpinfo(); ?>


root@u5pvr-debian:~# chown www-data:www-data /var/www/html/phpinfo.php


다시 http://u5pvr_ip_address/phpinfo.php 를 입력하여 웹페이지에서 아래의 내용이 보이는지 확인합니다.




3. phpmyadmin 설치하기


실제로는 패키지로써 설치를 하였습니다만, 설정이 되어 있지 않은 상태입니다.


따라서 아래의 설정을 진행해야 합니다.


phpmyadmin 설정을 추가해 주는 과정입니다. 추가적으로 apache2 서비스를 재시작할 때마다 에러가 나기 때문에 ServerName 을 localhost 로 설정합니다.


root@u5pvr-debian:~# nano /etc/apache2/apache2.conf


ServerName localhost

Include /etc/phpmyadmin/apache.conf


root@u5pvr-debian:~# service apache2 restart

[ ok ] Restarting web server: apache


이후 http://u5pvr_ip_address/phpmyadmin 으로 접속하면 아래의 phpmyadmin 페이지가 열립니다.



이후 로그인을 하면 아래와 같이 관리창이 뜹니다.





차후에는 설치한 웹서버에 게시판 프로그램, NextCloud, pydio, h5ai 등등을 설치하는 방법을 작성하도록 하겠습니다.


감사합니다.