블로그

ASUS RT-AC66U(R)에 웹서버 및 그누보드 올리기

우성군 28 27989 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

위 부분을 밑에 붙여줍니다.

없다면 위와 밑 부분 다 합쳐서 적고 저장 후 나옵니다.

이젠 포트포워딩만 해주면 외부에서도 볼 수 있습니다.

일단 내부 포트는 81로 열었는데 외부 포트가 중요한데요

일반적인 http는 80포트인데 공유기 관리자 포트도 80이라서 둘 중 하나를 바꿔줘야합니다.

저는 공유기 관리자 포트를 바꿔줬는데요

바꾸는 방법은 administration에서 system 탭에 Port of Web Access from WAN 입니다. 

이걸 전 8090 이런 식으로 바꿔줬구요. 물론 이렇게 되면 공유기 관리자는 자신의DDNS:8090 으로 접속해야 되겠죠.

그 후 내부 81포트를 외부 80포트와 연결합니다.


 

위와 같이 한 후 + 누르고 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 로 들어갑니다.

 



 


 


 

 

 

위의 스샷대로 진행하면 됩니다.

 

혹시 다 했는데

 

다시


 

 

이게 나올수도 있습니다.

 

그러면 인터넷 브라우저의 캐시를 다 지우고 다시 접속하면 잘 나옵니다.

 

이제 

 

 

 

위 스샷이 나오면 끝입니다!!!

 

따라하실 분이 계실지는 모르겠지만...

 

성공했다면 댓글 하나 적어주시면 좋겠네요 ㅎㅎ

 

실패하더라도 어디서 어떻게 실패를 했는지 적어주시면 아는만큼 적어드리겠습니다.


, , , , , ,

28 Comments
lightone 2016.04.25 01:40  
내부 네트워크에서 192.168.1.1:81에 접속이 안되네요.. Lighttpd와 php를 설치하는 단계에서
 /opt/etc/init.d/S80lighttpd stop 이걸 해도 죽지않고 계속 살아나던데 이게 문제가 되는걸까요?
우성군 2016.04.27 01:43  
[@lightone] 에공... 설치가 제대로 안된 것 같네요.

이 강좌가 너무 오래되어 안될 수도 있습니다 ㅠㅠ
김초록 2017.02.11 15:26  
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 에 자동으로 들어가는걸까요?
우성군 2017.02.11 17:40  
[@김초록] 그누보드 루트 폴더에 보시면 config.php라고 있어요.

거기 도메인 주소 설정에 http://192.168.1.1:81/gboard

넣어보세요
pluto1019 2017.02.28 10:12  
안녕하세요^^
강좌 잘보고 있습니다.

entware+lighttpd까지 잘 올리고 페이지도 잘나오는데요.
lighttpd만 실행하면 aicloud가 접속이 안되네요

혹시 방법을 하시나요? lighttpd랑 aicloud가 포트가 충돌나는건지 모르겟네요 ㅜㅜ
우성군 2017.03.01 17:43  
[@pluto1019] 에공 그 부분은 저도 모르겠네요 ㅠㅠ
동물농장 2017.12.29 22:55  
혹시, 리눅스 파티션 설정하는 부분 (앞부분)을 하다가 좀 잘못된거같은데,
ssh에서 진행한 것들을 초기화 시키고 다시 진행할 수는 없을까요?
보니까 mkdir /mnt/sda1 을 입력하면 file exists 라고 나오고,
mount -t ext2 /dev/sda1 /tmp/mnt/sda1을 입력하면
device or resource busy 라고 나옵니다.
음.. 뭔가 초기화를 시키고싶은데...;
우성군 01.01 14:25  
[@동물농장] 음.. busy는 사용 중이라는 말인데... 잘 모르겟네요 ㅠㅠ