expertbuilder
Termux 로 안드로이드 폰에 웹서버설치하기 본문
certbot certonly --manual --preferred-challenges dns -d 도메인
## 이경우 dns에 certbot 이 지정하는 값을 할당하여 도메인을 인증합니다.
## 위 명령시 안내하는 내용을 참고하여 DNS 에 등록을 해줬더니 잘 처리됩니다.
안드로이드폰이 리눅스니, 웹서버 설치가 가능하겠다 싶었다.
터미널은 어떻게 띄울수 있나 궁금해서 찾아보니
이미 웹서버를 설치하는 많은 포스트들이 있었다.
설치해본 시점에 따라, 리눅스등의 버젼에 따라, 폰의 사양에 따라 여러 포스트들이 씌여졌기 때문에
나도 약간의 삽질과 구글링을 하면서 내 테블릿, 내 폰에 맞는 글을 작성해본다.
0. Termux 앱 설치
안드로이드 폰에서 터미널을 듸울수 있게 해준다.
설치하고 실행하면 다음과 같은 화면과 프롬프트가 뜬다.
0-1. 패키지를 업데이트 한다.
$ pkg update && pkg upgrade -y
1. PC에서 접속할 수 있도록 환경구성
안드로이드 자체도 리눅스라 apm 이 설치되지만, 먼가 안정적인면과 수동설정부분이 까다로와 리눅스버젼을 설치하고 그 안에서 한다는 포스트들을 보고 나도 그렇게..
proot-distro 는 컨테이너기반의 환경관리자 라고 함.
$ pkg install proot-distro vim
# 추가로 Vim 을 설치했다.
아무래도 폰에서 아래 많은 작업을 진행하기엔 한계가 있다.
ssh를 설치해 PC 에서 접속하여 진행하기 위해 폰에 SSH 를 설치한다.
pkg install openssh
Termux 실행과 동시에 sshd 를 실행하기 위해서 .bashrc 파일 수정
# termux 가 비활성모드로 바뀌지 않도록
termux-wake-lock
# ssh를 서비스를 바로 실행하도록
sshd
ssh 접속확인을 위해 폰에 할당된 아이피( 내부아이피 ) 를 확인해본다.
$ ifconfig
127.0.0.1 을 제외한 wlan0 항목에 192.168.0.220 이 보인다.
폰에서 sshd 를 실행하고 PC 에서 접속한다.
$ ssh root@[아이피] -p 8022
## termux ssh 기본포트는 8022
## 이것은 termux 서버에 접속한 것이고,
## 우리가 설치한 ubuntu 에 접속하려면 다시
## 아래 명령으로
$ proot-distro login ubuntu
2. 리눅스설치
proot-distro 로 리눅스를 설치한다.
설치할 수 있는 리눅스 버젼 목록을 확인해 보자.
$ proot-distro list
우분투를 선택하여 설치한다.
$ proot-distro install ubuntu
## 제공하는 버젼을 지정하여 설치할 수도 있다.
# $ proot-distro install ubuntu2.24
설치한 리눅스에 접속한다.
$ proot-distro login ubuntu
2. 웹서버설치
$ apt install apache2 -y
# 웹서버 기본포트가 80 인데 보안상 80이 닫혀있는듯 8000으로 바꿔본다.
vi /etc/apache2/ports.conf
웹서버 실행
service apache2 start
정상적으로 실행했다면 브라우저로 접속해본다.
http://[아이피]:8000
추가로 서버 (재)부팅시 웹서버가 자동으로 실행하도록
$ systemctl enable apache2
3. PHP설치
$ apt install php-common php-cli php-gd php-mysql php-curl php-intl php-xsl php-mbstring php-zip php-iconv php-soap -y
$ apt install php
## 혹시나 해서 추가
apt-get install libxml2-dev libjpeg-dev libpng-dev libsqlite3-dev
## 설치된 php 버젼확인
$ php -v
## PHP 8.3.6 (cli) (built: Mar 19 2025 10:08:38) (NTS)
## Copyright (c) The PHP Group
## Zend Engine v4.3.6, Copyright (c) Zend Technologie
## with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
php 가 잘동작하는지 확인한다.
## 아파치를 재시작한다.
$ service apache2 start
## php 실행을 확인하기 위해 php 구문을 작성한다.
vi /var/www/html/index.php
<?php
echo "Test PHP";
?>
그리고 브라우저로 접속하여 확인한다.
http://192.168.0.220:8000/index.php
아래와 같이 echo 문에 의해 출력이 정상적으로 작동한다.
3. MariaDB설치
$ apt install mariadb-server -y
## mariaDB 를 실행한다
$ service mariadb start
## 보안설정을 하기 위해
## test 용 DB 를 삭제하고, root 비번을 설정, root 의 원격접속허용 여부를 설정하는등..
$ mysql_secure_installation
샘플 DB 를 생성하고 사용자에게 권한을 부여해본다.
# DB명 : mygospel
# 사용자명 : mygospel ( 아래 명령으로 생성과 함께 권한이 부여된다 )
## 디비생성
create database mygospel;
# 권한부여
# grant all privileges on 디비명.* to 사용자명@'%' identified by '비번';
grant all privileges on mygospel.* to mygospel@'%' identified by '설정할비번';
위까지 폰에 apm 세팅이 완료되었습니다.
별첨 1. PHP설치
** 추가로 git 과 composer 등을 설치해서 작업을 편하게
## git 설치
$ apt install git
## composer 다운로드
$ curl -sS https://getcomposer.org/installer | php
## 어디서나 composer 를 실행할수 있도록
$ mv composer.phar /usr/local/bin/composer
## ssl 인증서 사용을 위해서
$ apt install python3-certbot-apache
** 도메인연결을 위해서 집에 있는 IPtime 으로 포트포워딩을 하여 8000 포트는 핸드폰에 접속되도록 했습니다.
( 기존 80 포트는 다른 PC 에서 사용중이므로 )
** certbot 으로 자동 ssl 설치하려면 80 포트여야 한다고 하니 불가능한줄 알았는데 수동설치를 하면 가능하네요.
certbot certonly --manual --preferred-challenges dns -d 도메인
## 위 명령후 certbot 이 안내하는 도메인에 TXT 값을 할당하여 도메인소유인증을 하고
## 인증서를 발급해줍니다.
** (s)FTP 로 접속하여 파일을 수정하려고 할때
8022 로 접속해봐야 Termux 디렉토리이다.
/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu/
디렉토리가 바로 ubuntu 디렉토리란다. 그러니 나는
/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu/var/www/html
위 디렉토리로 들어가니 성공.