Tech Stuff/Software

남는 안드로이드폰에 웹서버 설치하기

오빵호빵 2024. 10. 9. 09:10

2주간 삽질했던 기록을 여기 남깁니다.

기록용이라 불친절할 수 있습니다. 시간 될 때 좀 보충할 예정입니다.

 

저는 집에서 놀고 있는 Android 12가 설치되어 있는 갤럭시 S10 5G(SKT향) 제품이 있어서 여기에 작업을 했습니다.

일단 초기화 하고 기본으로 깔려 있는 쓸데 없는 프로그램들은 가급적 삭제한 후

TermUx라는 녀석을 설치합니다.

 

안드로이드도 기본적으로 리눅스 같은 것이라 안드로이드 안에서 리눅스 터미널처럼 사용할 수 있게 해 주는 녀석이라고 생각하면 됩니다.

 

이 녀석은 앱스토어에도 존재하지만 제약사항이 있는 버전이라 여기에 접속하여 적절한 버전을 받읏히면 됩니다.
https://github.com/termux/termux-app/releases

 
 

 

이 TermUx를 설치하여 서버로 활용하면 몇 가지 문제가 생기는데

1. Android 12 이상에서는 안드로이드가 주기적으로 termux 프로세스를 죽이는 문제가 있습니다.
- Phantom Process Killer 기능 때문에 백그라운드 프로세스를 강제 종료시킵니다. 컴퓨터에 ADB를 설치하고, USB로 연결하여 아래 명령어를 입력하는 방식으로 해결합니다.

/system/bin/device_config set_sync_disabled_for_tests persistent; /system/bin/device_config put activity_manager max_phantom_processes 2147483647

2. 자동 업데이트 때문에 서버가 죽는 경우가 생깁니다. --> 설정에서 해당 기능을 끄면 됩니다.

3. 1024번 이하의 포트를 못 쓰게 되는 문제가 있습니다. (이 때문에 80 대신 8080, 22 대신 8022를 쓰는 등, 포트포워딩 작업이 필요합니다.)

4. 우분투를 설치하면 안드로이드폰의 스토리지 내에 termux의 스토리지(폴더?)가 생기고 그 안에 우분투가 설치되는 형태라 ssh에서 보는 폴더와 sftp에서 보는 폴더의 위치가 다를 수 있습니다. 이게 생각보다 복잡한 문제라 고생을 많이 했습니다. 인터넷을 검색해 봐도 위치가 정확하지 않습니다.

ssh를 termux에서 설치하는 방법이 있고, 우분투에서 설치하는 방법이 있는데 저는 termux에서 설치하는 방식으로 했고, apache2는 또 우분투 내에 설치했는데

그 웹루트 디렉토리는

ssh 내에서 볼 때는 /var/www/html이었는데

sftp에서 볼 때는 해당 폴더로 접속이 안되어서 이 폴더를 sftp 루트로 잡으면 바로 connection closed 에러가 나면서 죽어버리는 문제가 있었습니다. 인터넷을 검색해 봐도, perplexity에게 물어봐도 위치가 정확하게 나오는 경우가 없어서 한참을 고생한 끝에 찾았습니다. (sftp에서는 find도 쓸 수 없다는 게 골치....)

/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu/var/www/html/

 

또한 termux에서 ssh를 설정하면 ID가 u0_a2XX와 같은 형태로 임의로 설정됩니다.

이 아이디를 whoami 명령어로 확인하고 passwd로 비번 설정 후 접속하면 되는데

Termux에서  ssh 설치시 pc에서 ssh 접속해도 termux 환경으로 접속되어 할 수 있는 게 좀 많아진다는 장점은 있습니다.

 

5. 또한, 안드로이드 상단의 상태바를 끌어 내려 Termux의 세부 정보에 Acquire wakelock을 눌러 Release 상태로 변경해 놔야 합니다. (아래 캡처는 이미 눌린 상태임)

 

6. SystemCtl이 잘 안됩니다. 이 때 systemd를 설치한 후 SystemCtl을 사용하거나, Systemd로 대체하거나, service를 대신 사용할 수 있는데 저는 그냥 서비스를 사용하는 방식으로 진행했습니다. service 사용시 systemctl과는 구문의 순서가 다르니 주의하세요.

# systemctl 사용
sudo systemctrl restart apache2

# systemd 설치
sudo apt install systemd

# service 사용
sudo service apache2 restart

 

7. termux-setup-storage 라는 명령어를 입력해 저장공간 접근 허용을 해 주세요. 근데, 안드로이드 설정에서도 허용해 줄 수 있고, 어떤 경우 이 명령어를 입력하면 스마트폰에 불이 들어오면서 안드로이드 설정이 뜨기도 하더군요.

 

기타

# termux 상태에서 우분투 로그인
proot-distro login ubuntu

# termux에서 ssh 재시동
pkill sshd
sshd

# Apache2 포트 번호 변경
# nano 또는 vi 사용 가능하지만 전 nano가 편해서 nano만 사용합니다.
# 80은 8080으로 443은 4433으로 변경해야 함
nano /etc/apache2/ports.conf

# php 8.3 설치(우분투 내)
sudo apt install php8.3

# mysql 설치(우분투 내)
sudo apt install mysql-server
# mysql 시작
sudo service mysql start
# mysql 보안 설정(optional)
mysql_secure_installation
# mysql 접속
mysql -u root -p
# phpMyAdmin 설치
sudo apt install phpmyadmin
# phpMyadmin 설정을 apache2에 추가
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin

 

 

 
반응형