라즈베리파이로 MP3 스트리밍 서버를 만들어 볼 생각입니다.


모든 소스를 처음부터 만들면 힘들기 때문에,,ㅎㅎ(지식의 한계도??ㅋ)


이래저래 검색해보니 좋은 패키지가 있더군요.




Cherry Music 이라는 파이썬으로 만들어진 뮤직 스트리밍 서버를 이용하였습니다.




Cherry­Music


A music streaming server written in python:
Stream your own music collection to all your devices!

  • ✓ free & open-source (GPL)
  • ✓ easy setup, download and go
  • ✓ blazingly fast search
  • ✓ share playlists with your friends



오픈소스 이구요, 설치 및 세팅이 비교적 쉽습니다.


다만, 오픈소스이다 보니


세련된 인터페이스는 아니고,,, 소소하게 이용할만한 합니다.




HTML5


You can listen to your music on all HTML5 compliant devices, that includes your pretty smart phone (Android or iPhone) as well as just about any modern browser.



HTML5가 호환되면 사용할 수 있다고 나와있는데, 갤럭시노트4에서


웹으로 접속해보니 잘되드라구요~


약간의 디자인 밀림이 있긴 하지만, 모바일에 맞도록 UI는 수정하면 충분할 거 같습니다.




The CherryMusic server runs on Linux, Windows and OS X, as long as Python and SQLite are available. To use the web client, any device with a modern browser will do.



다양한 운영체제에서 지원됩니다.



공식홈페이지는 아래와 같습니다.


http://www.fomori.org/cherrymusic/index.html





이제 라즈베리파이에서 설치해보겠습니다. 





음악 스트리밍서버 구축하기 시작



라즈비안에서 터미널을 열고,




1. 최신버전으로 업데이트 합니다.


pi@raspberrypi:~ $ sudo apt-get update



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
pi@raspberrypi:~ $ sudo apt-get update
Hit http://archive.raspberrypi.org jessie InRelease                            
Get:1 http://mirrordirector.raspbian.org jessie InRelease [14.9 kB]            
Get:2 http://mirrordirector.raspbian.org jessie/main armhf Packages [8,981 kB] 
Hit http://archive.raspberrypi.org jessie/main armhf Packages
Hit http://archive.raspberrypi.org jessie/ui armhf Packages                    
Get:3 http://mirrordirector.raspbian.org jessie/contrib armhf Packages [37.5 kB]
Get:4 http://mirrordirector.raspbian.org jessie/non-free armhf Packages [70.3 kB]
Get:5 http://mirrordirector.raspbian.org jessie/rpi armhf Packages [1,356 B]   
Ign http://archive.raspberrypi.org jessie/main Translation-en_US               
Ign http://archive.raspberrypi.org jessie/main Translation-en                  
Ign http://archive.raspberrypi.org jessie/ui Translation-en_US                 
Ign http://archive.raspberrypi.org jessie/ui Translation-en                    
Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en_US        
Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en
Ign http://mirrordirector.raspbian.org jessie/main Translation-en_US
Ign http://mirrordirector.raspbian.org jessie/main Translation-en
Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en_US
Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en
Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en_US
Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en
Fetched 9,105 kB in 23s (383 kB/s)
Reading package lists... Done
 
cs




2. 최신버전에 맞춰 업그레이드 진행



pi@raspberrypi:~ $ sudo apt-get upgrade


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pi@raspberrypi:~ $ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  chromium-browser libgl1-mesa-dri pprompt rpi-chromium-mods sonic-pi
  xserver-xorg-input-all
The following packages will be upgraded:
  libevent-2.0-5 libjasper1 libpam-modules libpam-modules-bin libpam-runtime
  libpam0g lxpanel lxpanel-data pix-plym-splash pixel-wallpaper
  raspberrypi-sys-mods rc-gui realvnc-vnc-viewer vim-common vim-tiny
15 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
Need to get 32.4 MB of archives.
After this operation, 1,532 kB disk space will be freed.
Do you want to continue? [Y/n] y
cs





3. Git Hub 이용을 위한 Git-core 설치하기


pi@raspberrypi:~ $ sudo apt-get install -y git-core





4. 라즈베리파이에 Cherry Music 설치하기



pi@raspberrypi:~ $ git clone git://github.com/devsnd/cherrymusic.gitl -y git-core





5. 설치가 완료되면 이제 체리뮤직서버를 구동합니다.



pi@raspberrypi:~ $ $ cd cherrymusic


pi@raspberrypi:~/cherrymusic $ python cherrymusic --setup --port 8080



1
2
3
4
5
6
7
pi@raspberrypi:~/cherrymusic $ python cherrymusic --setup --port 8080
 
Starting setup server on port 8080 ...
Open your browser and put the server IP:8080 in the address bar.
If you run the server locally, use: localhost:8080.
 
 
cs



8080포트로 서버가 시작되었습니다~~!!!



쉽죠~~~?ㅎㅎㅎ



이제 해당IP로 접속해봅니다.



빈 웹페이지를 열고~



GoGo ------->  http://본인 IP : 8080



환경설정을 먼저 하라고 화면이 뜹니다.






간단히 디렉토리를 설정하고 


저는 요렇게 넣었습니다.  -->  /home/pi/Music



당연히 저 폴더에 MP3파일을 넣어놓아야 겠죠??ㅎㅎ






데비안과 체리뮤직 설치에 대한 자세한 설명이 나온 글입니다.


http://fomori.org/blog/?p=687




재접속 하고 계정을 생성합니다.




cherry_conf_4




계정이 생성되면 이제 로그인을 해서 사용해봅니다.




재생이 잘 되나요~~??  








라즈베리파이에 열어놓은 터미널에는 사용자 접속정보가 실시간으로 올라오게 됩니다.



[170224-14:08] 1X.XX.XXX.XXX - - [24/Feb/2017:14:08:19] "POST /api/heartbeat HTTP/1.1" 200 14 "http://1X.XX.XXX.XX:8080/#" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; APCPMS=^N201310210234087378561FB0A79A0FD8D33F_18^; Trident/7.0)"

[170224-14:08] 1X.XX.XXX.XX - - [24/Feb/2017:14:08:32] "POST /api/heartbeat HTTP/1.1" 200 14 "http://1X.XX.XXX.XX:8080/" "Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.91 Safari/537.36"




MP3파일을 쉽게 관려하려면


FTP서버를 구축하거나 SAMBA서버를 구축해서 사용하시면 훨씬


편해집니다.




산딸기 마을에 좋은 정보가 많이 있습니다. !!


http://www.rasplay.org/?p=4361




스트리밍 서버를 구축하고 모바일로 접속해보았습니다.



웹페이지에서 구동되는게 나름 쓸만해보이는데~~ 고정아이피도 아니고,


방화벽 때문에 오픈이 되어있지 않아서,,,


막 돌아다니면써 쓰지는 못하겠네요 ㅎ





모두들 많이 사용해보시기 바랍니다~~~







Posted by 하루군 justksh

댓글을 달아 주세요





라즈베리파이에 무얼할까 고민하다가,,,


리콜박스나 레트로박스도 고민해봤죠..   (둘다 게임박스)


설치도 해봤습니다;;ㅎㅎ   물론 잘 안되서 다시 라즈비안을 깔았죠.




리콜박스는 SDCard를 하나 더 사서 재도전해보기로 생각중입니다.




그래서 여기에는 만만(?!)한 웹서버를 설치해서 간단하게 홈페이지를 서비스 해볼


생각입니다.




라즈비안에서 웹서버 구성은 아래와 같이 하시면 됩니다.


요렇게 --> LAMP (Linux, Apache, MySQL, PHP)



라즈비안도 리눅스이기 때문에... 리눅스OS+아파치웹서버+MySQL 데이터베이스+PHP언어


이렇게 구성하면 간편하게 서비스 할 수 있습니다.




고정IP가 있으면 완벽하겠지만... 비싸기 때문에 ㅎㅎ


저렴하게 웹호스팅업체에서 하나 구매해서 쓰시면 되겠죠??


저는 일단 그냥 로컬PC에서만..




1. Apache2 웹서버 설치하기



아파치2서버 설치 명령어는 다음과 같습니다.


터미널 실행 후


sudo apt-get install apache2 -y



설치가 완료되면 웹서버가 정상적으로 서비스 되는지 테스트 해봅니다.



http://localhost


혹은


http://127.0.0.1(본인 IP입력)






To find out the Pi's IP address, type hostname -I at the command line (or read more about finding your IP address) 라고 가이드문서에 설명되어 있네요.


https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/




브라우저가 잘 열리면 설치가 잘 된 것입니다.!!  



서비스되는 웹페이지의 주소는 아래와 같습니다.


/var/www/html/index.html



이 경로에 서비스 하고싶은 페이지를 넣으면 되는거죠~~




2. PHP 설치하기


PHP is a preprocessor; it's code that runs when the server receives a request for a web page. It runs, works out what needs to be shown on the page, then sends that page to the browser.


Unlike static HTML, PHP can show different content under different circumstances. Other languages are capable of this, but since WordPress is written in PHP, that's what we need to use this time. PHP is a very popular language on the web; large projects like Facebook and Wikipedia are written in PHP.


라고 가이드에 나와있네요;;ㅎ



설치 명령어는 아래와 같습니다.



sudo apt-get install php5 libapache2-mod-php5 -y




설치가 완료되면 index.php 파일을 생성해서 테스트 해봅니다.



sudo leafpad index.php

(or use nano)



간단히 PHP 소스를 입력 후 저장하기


<?php echo "hello world"; ?>



sudo rm index.html


그리고 기존 파일은 삭제 해줌.



웹서버를 재기동 해줍니다.



sudo service apache2 restart







3. MySQL 설치하기


MySQL (pronounced My Sequel or My S-Q-L) is a popular database engine. Like PHP, its overwhelming presence on web servers enhanced its popularity. This is why projects like WordPress use it, and why those projects are so popular.


MySQL은 유명한 데이터베이스 엔진이죠.


개인이 사용하기에 좋은 무료 라이선스이기도 합니다.



설치명령어는 아래와 같습니다.


sudo apt-get install mysql-server php5-mysql -y



Now restart Apache : 아파치 웹서버를 재기동 합니다.


sudo service apache2 restart




4. WordPress 설치하기


wordpress.org  홈페이지에서 다운받을 수 있습니다.


wordpress.org/latest.tar.gz and wordpress.org/latest.zip 두가지를 제공하고 있는데요~




아래와 같이 파일을 다운받습니다.


cd /var/www/html/


sudo rm *


sudo wget http://wordpress.org/latest.tar.gz



웹서비스가 제공되는 폴더에 기존파일은 전부지우고,


압축파일을 받은 후


압축해제 합니다.




압축풀고


sudo tar xzf latest.tar.gz



최상위 경로로 파일을 옮기고


sudo mv wordpress/* /var/www/html



압축파일은 삭제하기


sudo rm -rf wordpress latest.tar.gz





여기 보이는 리눅스 기본명령어는 좀 알고있어야 이해가 됩니다.;;;


저도 부지런히...ㅎㅎ






tree 로 보면


├── index.php

├── license.txt

├── readme.html

├── wp-activate.php

├── wp-admin

├── wp-blog-header.php

├── wp-comments-post.php

├── wp-config-sample.php

├── wp-content

├── wp-cron.php

├── wp-includes

├── wp-links-opml.php

├── wp-load.php

├── wp-login.php

├── wp-mail.php

├── wp-settings.php

├── wp-signup.php

├── wp-trackback.php

└── xmlrpc.php



압축이 잘풀려있는걸 보실 수 있어요.




이제 데이터베이스에 접속 해볼께요.


mysql -uroot -ppassword



-u 옵션뒤에 붙여서 계정을 입력해야 합니다.


물론 패스워드도 -p뒤에 붙여서 넣기!




아니면


mysql -uroot -p



이렇게 먼저 계정넣고 그 후에 다시 물어보면 비빌번호를 입력해도 됩니다~~




WordPress 를 사용하기 전에 데이터베이스를 먼저 생성해줘야 합니다.


mysql> create database wordpress;



정상메시지 -> Query OK, 1 row affected (0.00 sec)


Exit out of the MySQL prompt with Ctrl + D.


이제 종료하고~




5. WordPress Configuration 하기



이제 브라우저를 열고



Navigate to http://YOUR-IP-ADDRESS e.g. http://127.0.0.1 in the web browser on your Pi.


You should see a WordPress weclome page.




웰컴페이지가 보이나요?? ㅎㅎ




해당항목을 기입 후 버튼을 누릅니다.




WordPress welcome screen


Click the Let's go! button.





Now fill out the basic site information as follows:


Database Name:      wordpress

User Name:          root

Password:           <YOUR PASSWORD>

Database Host:      localhost

Table Prefix:       wp_

and click Submit to proceed.



이렇게 Submit 하게 되면 설치가 진행됩니다.




여기까지 잘 진행됐다면 모든과정은 완료 됐어요~


            




Wordpress 설치중에 Config파일 생성 오류가 날 경우,


저는 그냥 그 내용을 복사해서 터미널에서 생성해줬습니다.





sudo nano wp-config.php



에디터 실행 후 카피한 내용 붙여넣기 후 저장





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the
 * installation. You don't have to use the web site, you can
 * copy this file to "wp-config.php" and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * MySQL settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://codex.wordpress.org/Editing_wp-config.php
 *
 * @package WordPress
 */
 
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME''wordpress');
 
/** MySQL database username */
define('DB_USER''root');
 
/** MySQL database password */
define('DB_PASSWORD''비밀번호');
 
/** MySQL hostname */
define('DB_HOST''localhost');
 
/** Database Charset to use in creating database tables. */
define('DB_CHARSET''utf8mb4');
 
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE''');
 
/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT''');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');
 
/**#@-*/
 
/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = 'wp_';
 
/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the Codex.
 *
 * @link https://codex.wordpress.org/Debugging_in_WordPress
 */
define('WP_DEBUG'false);
 
/* That's all, stop editing! Happy blogging. */
 
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');
 
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
 
cs





이렇게 해주니 돌아가긴 하네요. ㅎㅎ









저도 워드프레스는 써본적이 없어서 블로그 커스터마이징 하는 방법은


조금 더 배워보고 다음 편을 써야 할거 같습니다.



언어도 아직 한글화는 되어있지 않은 거 같습니다.


관리화면을 보니 카테고리는 간결해 보이기도 하고,, 세부 메뉴를 보니 복잡해 보이기도 하고;;


이것저것 건들어 봐야겠네요~








부지런히 글을 올려보자구요~











Posted by 하루군 justksh

댓글을 달아 주세요

  1. 초보

    님 아 rm하 면 www에있 는파 일다날라가는거아는 데nginx와phpinfo.php 다삭제되는 데아무문제없는거임???

    2017.11.22 22:45 [ ADDR : EDIT/ DEL : REPLY ]