들어가기 전에
내가 예전에 사용하던, 요피도 그랬지만 리눅스 기반의 PDA 라면 자동적으로 서버 기능을 포함하고 있다고 생각해도 무리는 아니다.
요피에다가는 APM 을 설치해서 위키를 설치했었다. 당연히 자우르스 역시 될 것으로 생각하고 있다. 여기서는 우리가 일반적으로 생각하는 리눅스에서 설치할 수 있고 또한 사용가능한 것들을 자우르스에서 구현해 볼 것이다.
자우르스는 기본적으로 inetd 를 통해서 몇가지 서버 기능(ex: telnet)을 가지고 있다. /etc/inetd.conf 파일을 통해서 알 수 있다. 이제 본격적으로 하나씩 만들어 보자!
SSH 서버
텔넷의 경우, 바로 root 로그인이 안되기 때문에 번거롭다. 또한 보안적으로도 텔넷이 취약하기 때문에 ssh 를 사용하기로 한다. 다행(?)스럽게도 .ipk 패키지로 제공하기 있기 때문에 손쉽게 설치할 수 있다.
내가 설치한 파일들은 아래와 같다.
- openssh-addon_3.6.1p1_arm.ipk
- openssh-client_3.6.1p1_arm.ipk
- openssh-server_3.6.1p1_arm.ipk
설치하고 나서, 재부팅을 시킨다. 그리고 ssh 로 접속해보자!
FTP 서버
자우르스에서 지원하는 FTP 서버 프로그램은 몇 안된다. 그 중에서 내가 설치한 것은 pure-ftpd 라는 프로그램이다. 설치한 파일은 다음과 같다.
- pure-ftpd_1.0.16-1_arm.ipk
설치하면, 다음과 같이 실행하면 된다.
#pure-ftpd & #ftp localhost
부팅시에 자동으로 실행하게 설정해보자!!
일단 /etc/rc.d/rc.local 을 다음과 같이 추가한다.
/hdd2/usr/sbin/pure-ftpd &
또한 심볼릭 링크를 만들어줘야 한다. 자우르스는 기본적으로 런레벨 5 로 부팅이 되기 때문에, 아래와 같이 추가한다.
#cd /etc/rc.d/rc5.d/ #ln -s ../rc.local S81local
이제 재부팅 해보자!!
웹 서버
이미 예상은 했겠지만, 자우르스에서도 웹서버가 지원된다. 크로스 컴파일러가 있다면, 소스 파일을 받아서 컴파일할 수 있겠지만 기본적으로 ipk 패키지로 된 파일을 찾을 수 있다.
결과적으로 나는 php 를 연동해야 하기 때문에 apache 와 php 가 연동할 수 있는 패키지를 찾았다.
따로 아래의 사이트에서 ahache 와 php 되어 있는 파일을 찾았다.
http://www.choup.net/spip/accueil.php3?id_rubrique=12
참고로 나의 경우,
- apache-1.3.27-php-4.2.3_0.1_arm.ipk
을 설치했다. 여기서 설치할 때 주의할 점이 필요하다. 바로 설치하게 되면, /home/www 디렉토리에 설치가 되는 데 용량문제로 제대로 설치가 안된다. 그래서 생각해낸 것이 바로 심볼릭 링크이다.
아래와 같이 수정을 해 준 다음에 설치하도록 한다.
#cd /home #mkdir /hdd2/usr/local/apache #ln -s /hdd2/usr/local/apache/ www
그리고 난 후에 설치한다. apachectl 파일을 아래와 같이 수정해주어야 한다.
# |||||||||||||||||||| START CONFIGURATION SECTION |||||||||||||||||||| # -------------------- -------------------- # # the path to your PID file PIDFILE=/usr/local/apache/logs/httpd.pid <--- 수정 # # the path to your httpd binary, including options if necessary HTTPD='/usr/local/apache/bin/httpd' <--- 수정 #
이제 실제도 실행해보자!
#/home/www/bin/apachectl start
이번에는 php가 연동이 되는지 phpinfo() 를 써서 확인해보자!!
Moniwiki 설치하기
바로 앞에서 자우르스에 Apache + Php 를 설치했다. 여기에다가 모니위키를 설치해보도록 하겠다.
나의 경우, 위키의 자료실 기능도 사용하기 때문에 /hdd2 설치하기에는 무리가 있었다. 물론 웹서버는 hdd2 에 설치했지만 말이다.
그래서 심볼릭 링크를 이용해서, 비교적 용량이 충분한 /hdd3 에 설치했다.
우선 사전 작업이 필요하다.
#mkdir /hdd3/Documents/Wiki_Files #cd /usr/local/apache/htdocs/ #ln -s /hdd3/Documents/Wiki_Files/ wiki
이제 모니위키 소스파일을 가져와서, 설치하면 된다. 설치방법 및 설정방법은 여기에서 언급하지 않는다.
관련 문서를 참조하기 바란다.
Mysql 설치하기
설치파일은 mysql_3.23.49-8.7_arm.ipk 이다. 나의 경우 쿼리문에 Random() 함수를 사용해야 했기 때문에 3.23.x 이상을 설치해야 했다.
설치하기전에 용량의 문제로 인해 심볼릭링크를 만들어 주어야 한다. 그냥 설치해도 상관없지만, 데이터베이스를 생성할 수록 /var/lib/mysql 에 디비 파일을 만들기 때문에 몇개 만들지 못한다. 이유는 /var/lib 가 /dev/mtdblock3 를 사용하기 때문이다.
#mkdir /hdd2/usr/local/mysql #chown -R daemon /hdd2/usr/local/mysql/ #cd /var/lib/ #ln -s /hdd2/usr/local/mysql mysql
설치 중에 에러 창이 뜨지만 무시하고 설치한다.
설치했으면 약간의 설정이 필요하다.
#chown -R daemon /var/lib/mysql #mysql_install_db #mysqlstart #mysql
설치하면, root 및 호스트 정보가 빠져있기 때문에 지정해주어야 한다.
root 비밀번호를 지정해주자!
#/usr/local/mysql/bin/mysql mysql mysql>update user set password=password('패스워드‘) where user="root"; mysql>update user set Host = 'localhost'; mysql>FLUSH privileges; mysql>quit;
다시 접속해보자!
#mysql -p
만일 제대로 로그인이 안될때는 user 테이블을 확인해보라! 아래와 같아야 한다!
mysql> select * from user; +-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+ | Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | +-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+ | localhost | root | 73c9bbdc61ec2488 | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | +-----------+------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+ 1 row in set (0.00 sec)
이것으로 끝이 아니다. 깔끔한 mysql 의 동작을 원한다면, 몇가지 설정이 부가적으로 필요하다. 우선 /etc/mysql/my.cnf 파일을 수정해야 한다.
[mysqld] user = daemon pid-file = /var/lib/mysql/mysqld.pid socket = /tmp/mysql.sock port = 3306 log = /dev/null basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/english skip-locking set-variable = key_buffer=16M set-variable = max_allowed_packet=1M set-variable = thread_stack=128K skip-innodb ### 이 줄 추가 ###
또한 부팅시 자동으로 시작되게 하기 위해서는 /etc/rc.d/init.d/mysql 파일을 수정해야 한다.
case "$1" in 'start') # Start daemon echo -n "Starting MySQL database server: mysqld" /usr/bin/safe_mysqld > /dev/null 2>&1 & sleep 4 ### 4 로 수정한다 ### if test -f "$pid_file"; then echo "." else echo "...failed." fi ;;
이제 완벽한 실행을 보장한다!!
mysqladmin
mysql 의 디비 생성 및 테이블의 생성, 삭제, 수정을 웹 상에서 할 수 있는 프로그램이다. mysql + php 조합이기 때문에 플랫폼에 상관없이 사용이 가능하다. 정확한 프로그램 이름은 remote mysql manager 이다.
다운로드 가능한 주소는 http://sourceforge.net/project/showfiles.php?group_id=50738&package_id=44436&release_id=146482 이다.
설치후에 mysql 의 아이디와 비밀번호를 입력하면, 접속이 가능하다. 사용법이 비교적 간단하기 때문에 어렵지 않게 사용할 수 있다.