ASUS RT-AC66U(R)에 웹서버 및 그누보드 올리기
컨텐츠 정보
- 69,597 조회
- 34 댓글
- 0 추천
-
목록
본문
보통 NAS라 함은 FTP서버, 삼바서버, 트랜스미션, mini DNLA, 및 기타 파일 서버 등의 기능을 하는 기계인데요.
ASUS RT-AC66U도 성능은 조금 아쉽지만 그럭저럭 쓸만한 기능을 제공합니다.
저는 웹서버에 관심이 많아서 웹서버로 진행하려고 합니다.
FTP서버, 삼바서버 등은 공유기의 기본 기능이니 따로 안적어도 되겠지요.
우선 USB가 필요합니다. 외장하드도 상관없을 것 같긴한데.. 안해봐서 모르겠네요
전 USB를 윗칸에 꼽았습니다.
SSH에 접속해서 [SSH 설치 및 접속은 여기(링크)로 오시면 됩니다.]
fdisk -l
위의 명령어를 치면
위와 같은 화면을 볼 수 있습니다.
보통 dev/sda1입니다.
이제 리눅스 형식으로 파티션을 생성해줍니다.
umount /dev/sda1
fdisk /dev/sda
d
n
p
1
엔터
엔터
w
하면 리눅스 형식으로 바뀌었습니다. 위 명령어에 대한 상세 설명은 여기(링크)를 참조하세요
이제 마운트 해줘야하는데
마운트 할 폴더가 생성이 안되어 있더라구요
mkdir /mnt/sda1
mount -t ext2 /dev/sda1 /tmp/mnt/sda1
위 명령어는 sda1이라는 폴더를 만들고
밑의 명령어는 USB를 폴더에 삽입하는 개념입니다.
외장하드라면 ext2 대신에 ext3를 하시는게 좋습니다.
이제 엔트웨어를 설치할 차례
entware-setup.sh
1번 누르기
각종 프로그램 설치를 위해 리눅스 부가 개념인 entware를 설치합니다.
엔트웨어 설치 상세 설명을 보시고 싶다면 여기(링크) 참조하세요.
설치 초반에
Info: Creating /tmp/mnt/sda1/entware folder...
Info: Creating /tmp/opt symlink...
Info: Creating /jffs scripts backup...
tar: /jffs/scripts/*: No such file or directory
tar: error exit delayed from previous errors
Info: Modifying start scripts...
Info: Starting Entware deployment....
에러가 뜨는데 신경 안쓰셔도 됩니다.
처음엔 저 폴더가 없어서 그렇습니다.
파일 수정을 편하게 하기위해 nano 및 기타 패키지를 설치합니다.
opkg install nano openssh-sftp-server iftop htop
nano는 파일 수정을 편하게 해주고 openssh는 명령어 창이 아닌 FTP서버처럼 편하게 해주고,
iftop은 현재 공유기에서 어떤 아이피가 얼마만큼의 데이터를 전송하고 있는지 알려주고,
htop은 어떤 프로세서가 얼마만큼의 CPU사용량과 메모리 점유를 하는지 보여줍니다.
fileziller도 좋지만 전 WINCAP을 추천합니다.
설치 및 상세 설명은 여기(링크) 참조하세요.
WINCAP에서의 접속은 putty에서의 접속과 완전히 같습니다.
이제 Lighttpd와 php를 깔아봅니다.
opkg install lighttpd
opkg install php5-cgi
opkg install lighttpd-mod-fastcgi
/opt/etc/init.d/S80lighttpd stop
rm /opt/etc/lighttpd/lighttpd.conf
wget -c -O /opt/etc/lighttpd/lighttpd.conf http://tinyurl.com/amvkxt3
wget -c -O /opt/share/www/index.html http://tinyurl.com/bxfxpq6
wget -c -O /opt/share/www/test.php http://tinyurl.com/b9b34kp
/opt/etc/init.d/S80lighttpd start
위의 명령어를 순서대로 한 다음
내부접속이라면
http://192.168.1.1:81 로 접속하면 종이비행기가 날아가는 모양을 볼 수 있습니다.
그만큼 가볍다는 말이겠죠 ㅎㅎ
설치에 대한 상세한 사항은 밑의 동영상 또는 여기(링크)에서도 확인 가능합니다.
자 이제 외부에서도 접속가능하게 해야겠죠?
nano /jffs/scripts/firewall-start
명령어를 넣으면 빈 화면이 나올겁니다.
#!/bin/sh
iptables -I INPUT -p tcp --destination-port 81 -j ACCEPT
위 부분을 마우스 드래그 해서 복사한 후
putty 창에서 그냥 우클릭하면 붙여넣기가 됩니다.
그 후 컨트롤+O, 컨트롤+X 하면 저장 후 닫기가 됩니다.
위의 명령어는 81포트를 열어준다는 말이구요.
chmod a+rx /jffs/scripts/firewall-start
위의 명령어로 그 스크립트를 실행가능하게 만들어줍니다.
그리고 재부팅해도 Lighttpd가 살아나게 해줘야합니다.
nano /jffs/scripts/services-start
위의 명령어를 친 다음
#!/bin/sh
sleep 10
/opt/etc/init.d/rc.unslung start
sleep 10/opt/etc/init.d/S80lighttpd restart
위와 같이 한 후 누르고 apply 하면 재부팅하면서 적용됩니다.
이제 자신의DDNS 로 들어가면 바로 종이비행기가 나오는 것이죠.
이제 DB를 위한 Mysql를 설치합니다.
opkg install mysql-server
opkg install php5-mod-mysql php5-mod-mysqli
위의 명령어를 순서대로 해주고
rm /opt/etc/my.cnf
wget -c -O /opt/etc/my.cnf http://dl.dropbox.com/u/47669650/RT-N66U/wordpress/my.cnf && chmod 755 /opt/etc/my.cnf
위의 명령어를 순서대로 합니다.
혹시 wget 명령어 할 때 http not found라고 나올수도 있습니다.
그럴 땐 그냥
[client]
port = 3306
socket = /opt/var/run/mysqld.sock
[mysqld]
user = root
socket = /opt/var/run/mysqld.sock
port = 3306
basedir = /opt
############ Don't put this on the NAND #############
# Figure out where you are going to put the databases
# And run mysql_install_db --force
datadir = /opt/etc/mysql/
######### This should also not go on the NAND #######
tmpdir = /opt/tmp/
skip-external-locking
bind-address = 127.0.0.1
# Fine Tuning
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# Here you can see queries with especially long duration
#log_slow_queries = /opt/var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
# The following can be used as easy to replay backup logs or for replication.
#server-id = 1
#log_bin = /opt/var/log/mysql/mysql-bin.log
#expire_logs_days = 10
#max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
[isamchk]
key_buffer = 16M
위 내용을
nano /opt/etc/my.cnf
한 다음 컨트롤+K 로 한줄씩 다 지운 다음
붙여넣고 저장 후 나옵니다.
그리고
mysql_install_db --force
해서
You can test the MySQL daemon with mysql-test-run.pl
cd /opt/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /opt/scripts/mysqlbug script!
위와 같이 나오면 성공입니다.
/opt/etc/init.d/S70mysqld restart
mysql을 재시작 해서
Shutting down mysqld... done.
Starting mysqld... done.
위와 같이 나오면 성공.
이제 mysql DB를 생성해야합니다.
mysql -u root
위의 명령어를 치면
mysql>
위와 같은 형식이 나옵니다.
CREATE DATABASE g4 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
g4라는 DB를 생성합니다. g4 이름은 원하는대로 해주시면 됩니다.
grant all privileges on g4.* to 아이디@localhost identified by '비밀번호' ;
g4라는 DB에게 맞는 아이디와 비밀번호를 지정해줍니다.
예를 들어 grant all privileges on g4.* to abcd1234@localhost identified by 'qwer1234' ;
이렇게 넣으면 g4라는 DB에 ID는 abcd1234이고, 비번은 qwer1234 라는 것입니다.
혹시나 잘못 입력해서
-->
이런식으로 나오면 컨트롤+C를 누르면 빠져나옵니다.
그러면 다시
mysql -u root
치면 들어가겠죠
이제 php 모듈을 설치합니다.
opkg install php5-mod-session php5-mod-ctype php5-mod-pdo php5-mod-mcrypt php5-mod-pdo-mysql
opkg install php5-mod-json php5-mod-calendar php5-mod-hash php5-mod-iconv
opkg install php5-mod-mbstring php5-mod-openssl php5-mod-dom php5-mod-exif
opkg install php5-mod-ftp php5-mod-ldap php5-mod-soap php5-mod-sockets php5-mod-tokenizer
opkg install php5-mod-xml php5-mod-xmlreader php5-mod-xmlwriter
쫙 설치가 될겁니다.
이제 php.ini를 수정해야 합니다.
nano /opt/etc/php.ini
뭐가 쫙 나옵니다.
8번째 줄에
;short_open_tag = Off
를
short_open_tag = On
으로 바꿔줍니다.
혹시 업로드 파일 사이즈 올려주려면
143번째 줄에
upload_max_filesize = 2M
2M을 100M으로 바꾸면 100M까지 업로드 가능합니다.
그리고 157번째 줄부터 Extensions에 관한 부분인데
아까 모듈이 정상적으로 설치가 되었다면
extension=ctype.so
extension=curl.so
extension=dom.so
extension=exif.so
extension=ftp.so
extension=gd.so
;extension=gmp.so
extension=hash.so
extension=iconv.so
extension=json.so
extension=ldap.so
extension=mbstring.so
extension=mcrypt.so
extension=mysql.so
extension=openssl.so
;extension=pcre.so
extension=pdo.so
extension=pdo-mysql.so
;extension=pdo-pgsql.so
;extension=pdo_sqlite.so
;extension=pgsql.so
extension=session.so
extension=soap.so
extension=sockets.so
;extension=sqlite.so
;extension=sqlite3.so
extension=tokenizer.so
extension=xml.so
extension=xmlreader.so
extension=xmlwriter.so
위와 같이 설정하면 됩니다.
그리고 196번째 줄에
date.timezone = Asia/Seoul
이렇게 하면 phpinfo를 볼 때 date에러가 없어집니다.
/opt/etc/init.d/S80lighttpd restart
Lighttpd를 재시작 하면 자신의DDNS/test.php 또는 http://192.168.1.1/test.php 에 들어가면
각종 모듈이 다 들어간 것을 볼 수 있습니다.
이제 그누보드를 깔아봅시다.
http://sir.co.kr/main/gnuboard4/
위의 링크에 가서 UTF-8버전을 다운 받습니다.
다른 빌더도 많지만 전 nw빌더를 좋아합니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_builder&wr_id=7301
위 링크에 가서 UTF-8버전을 받습니다.
둘다 압축을 풀고 nw빌더에 있는 파일을 몽땅 그누보드 폴더에 덮어씌웁니다. (윈도우에서 미리 작업)
WINCAP을 실행하여 로그인합니다.
위와 같이 로그인됩니다.
..을 누르면 상위 폴더로 올라갑니다.
대충 폴더를 구경하고 /tmp/mnt/sda1/entware/share/www
여기로 갑니다.
아까 종이비행기를 보여주는 파일이 있는 곳입니다.
왼쪽에 그누보드 작업해둔 폴더를 위치 시키고
오른쪽엔 www폴더를 놓고
왼쪽의 모든 파일을 오른쪽으로 옮깁니다.
그러면
위와 같은 모양이 되겠죠.
이제 그 폴더의 권한을 admin에게 줍니다.
putty에서
cd /opt/share
한 후
chown -R admin: www
그리고 폴더 전체 권한을 777로 줍니다.
chmod -R 777 ./www
putty에서 해줄 일은 모두 끝났습니다.
이제 자신의DDNS나 http://192.168.1.1 로 들어갑니다.
위의 스샷대로 진행하면 됩니다.
혹시 다 했는데
다시
이게 나올수도 있습니다.
그러면 인터넷 브라우저의 캐시를 다 지우고 다시 접속하면 잘 나옵니다.
이제
위 스샷이 나오면 끝입니다!!!
따라하실 분이 계실지는 모르겠지만...
성공했다면 댓글 하나 적어주시면 좋겠네요 ㅎㅎ
실패하더라도 어디서 어떻게 실패를 했는지 적어주시면 아는만큼 적어드리겠습니다.
-
등록일 2024.08.20
-
등록일 2024.07.25
-
등록일 2022.06.17
-
등록일 2022.06.01홈페이지 업데이트 완료했습니다.댓글 2
관련자료
-
서명우성짱의 NAS를 운영하고 있습니다.
저의 즐거움이 여러분의 즐거움이면 좋겠습니다.
행인님의 댓글
오늘 한가지 일이있어 평소 사용하고있던 FTP에서 파일링크를 통해 공유하려했는데 좀처럼 쉽게되지않더군요
기본방식이 FTP라 그런것같습니다.
전, 우성님처럼 USB에 메모리를 꽃지않았고 , 외장하드덱을 통한 외장하드가 연결되어있습니다.
가령, 휴대폰앱인 AiCloud로 다운로드 링크를 생성하거나 , FTP접속앱으로 공유버튼을 클릭해
다운로드 링크를 만들엇을때
외부에서는 Https://계정.asuscomm.com:443/하드경로/123.zip ( Aicloud 앱의 링크생성 )
ftp://계정.asuscomm.com:21/하드경로/123.zip ( FTP접속앱의 링크생성 )
으로 접속을 주소창에 붙여넣기하여 받아갈수있어야하는데.. 둘다 작동이 되질않네요
ftp주소는 아예 먹질않고 Aicloud 앱으로만든 주소는 제대로 인식은 하는데
다운로드가 0%에서 완료됨으로 나오는 버그가 생깁니다. ( 생성파일 0KB)
그래서 고민한게 , FTP가 아니라 일반 http 형식을 이용한 서버로도 운용이 된다면
Http://계정.asuscomm.com/경로/123.zip 이라는 링크를 제 3자에게 주었을때
이를 브라우저 주소창에 넣음으로써 쉽게 다운로드 받게 하고싶은데요....
어떻게해야할지 방법이 궁금합니다.
우성님처럼 그누보드? 같은 보드를 올려 거기에 파일을 업로드하고, 링크를 따는 방식으로 해야할지..
너무 복잡해 아직 시도하진못하고있습니다.
두번째 욕심으로는 첫번째가된다면 당연히 될거같은데 ,
일부 커뮤니티 게시판에 이미지나 동영상을 링크시킬 주소로 좀 쓸수있었으면합니다.
가령 , 현 블로그에 이미지를 하나 링크시키고싶을때 써먹을수있는
img src=http://계정~.com/하드경로/5678.jpg
이런식으로 운용이 가능했으면합니다.
마찬가지로 보드를 올려 거기에 업로드 해 링크빼내면될거같긴한데..
그보다 앞선 기본적인 방법은 불가능한 것인지... 너무궁금합니다.
행인님의 댓글
그정도로 공유가 간편한 뭔가가 된다면 정말 좋을것같습니다.
아래는 드롭박스의 다운로드 예제 테스트파일입니다.
https://www.dropbox.com/s/04qz4bbrjqrbhvt/debug.log
(0kb의 파일입니다.)
우성군님의 댓글의 댓글
제가 해보니 http로 주소 따는건 잘 됩니다.
위에 적어드린 부분 중에
"이젠 그누보드를 깔아봅시다" 직전까지 하시고
WINSCP로 보면
/tmp/mnt/sda1/entware/share/www 가 웹서버의 루트가 됩니다.
그래서 거기에 파일을 넣고 예를 들어 1.jpg를 넣으면
제 공유기 웹서버 주소인 http://asus.wsgvet.com/1.jpg
이렇게 올라갑니다. 링크도 당연히 잘 되구요 ^^
문제는 외장하드 파일 시스템을 바꿔야 합니다;;
시스템을 바꾸려면 당연히 포맷해야하구요;;
NTFS로 웹서버까지 돌아가는지는 확인 안해봤습니다.
혹시 USB꼽고 작업 한 다음에 외장하드를
/tmp/mnt/sda1/entware/share/www/hard
이 폴더에 마운트가 되면 바로 쓰실 수는 있는데 가능할지는 모르겠습니다.
님의 댓글
제가 아무것도 몰라서 한가지 여쭤보고 싶습니다. 이 멀린펌을 쓰면 공유기 USB에 연결된 하드등 저장장치를 NAS 처럼 쓸 수 있는건가요?
워드프레스를 쓰고 싶은데 따로 NAS 를 사지않고도 php mysql 설치가 가능한지 궁금합니다. 대단한거 할께 아니라 안정성과 동접자 수는 상관없거든요.
워드프레스 설치 및 사용이 가능한지 알려주시면 감사하겠습니다.
김초록님의 댓글
그누보드 설치화면(http://192.168.1.1:81/gboard/)에서 그누보드 설치하기 누르면 이렇게 (http://192.168.1.1:81/tmp/mnt/sda1/entware/share/www/gboard/install/)로 연결되고 페이지를 찾을 수 없다고 뜹니다
왜 다음페이지에서 /tmp/mnt/sda1/entware/share/www 이부분이 url 에 자동으로 들어가는걸까요?
한규형33님의 댓글
일단. opkg install mysql-server 명령어로 mysql 또는 mariadb를 설치합니다.
1. # nano /opt/etc/my.cnf
명령어로 우성군님이 말씀하신 자료를 복사해서 붙여넣기를 합니다.
하지만 여기서 수정할 부분이 있습니다.
user=admin
bind-adress=192.168.1.1
로 또는 사용하고 있는 user이름 및 사용하는 공유기 주소로 수정해주셔야 합니다.
2. # mysql_install_db --force (동일합니다)
3. /opt/etc/init.d/S70mysqldrestart
이 부분이 mariadb로 바뀐듯합니다. 그래서 명령어는
# /opt/etc/init.d/S70mariadbd restart
4. 이하 db생성 및 패스워드 설정 동일합니다.
CREATE DATABASE g4 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on g4.* to admin@domain.com identified by 'password' ;
5. phpmyadmin 을 받는 부분이 조금 다릅니다.
# cd /opt/share/www/
# wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.15/phpMyAdmin-4.0.10.15-all-languages.zip --no-check-certificate
# unzip phpMyAdmin-4.0.10.15-all-languages.zip
# mv ./phpMyAdmin-4.0.10.15-all-languages ./phpmyadmin
# rm ./phpMyAdmin-4.0.10.15-all-languages.zip
# opkg install php7-mod-session php7-mod-ctype php7-mod-pdo php7-mod-mcrypt php7-mod-pdo-mysql
# opkg install php7-mod-json php7-mod-calendar php7-mod-hash php7-mod-iconv
# opkg install php7-mod-mbstring php7-mod-openssl php7-mod-dom php7-mod-exif
# opkg install php7-mod-ftp php7-mod-ldap php7-mod-soap php7-mod-sockets php7-mod-tokenizer
# opkg install php7-mod-xml php7-mod-xmlreader php7-mod-xmlwriter
php5 가 모두 php7으로 바뀌었습니다.
6. /opt/etc/init.d/S80lighttpd restart
7. Fix phpmyadmin configuration file
# p /opt/share/www/phpmyadmin/config.sample.inc.php /opt/share/www/phpmyadmin/config.inc.php
# chmod 644 /opt/share/www/phpmyadmin/config.inc.php
# sed -i 's/localhost/127.0.0.1/g' "/opt/share/www/phpmyadmin/config.inc.php"
8. 192.168.1.1:81/phpmyadmin 을 브라우저에 복사하여 붙여넣기 해봅니다.
phpmyadmin이 뜨면 성공이네요..
이 외에 opkg로 php자료 설치는 php7으로 수정해서 우성군님이 말씀하시는 자료를 받아서 설치하면 됩니다.