우분투 서버를 돌려보자 그누보드 설치 성공기 V 1.0.0 (준비물: USB 저장장치)
출처 : https://sir.kr/g5_tip/10729
컴퓨터 2대를 사용했습니다.(한쪽은 검색용) 처음에 OS 를 설치해야 겠죠?
이번엔 우분투로 그누보드 설치 성공기 입니다.
우분투를 다운로드 받는다. https://www.ubuntu.com/download/desktop 로 들어갑니다.
Download 클릭하면 자동으로 내려받게 됩니다. LTS 버전을 추천합니다. 오래 사용할 수 있습니다. 5년인가 그럴겁니다. 여기서는 18.04 LTS를 기준으로 설명합니다.
후에 USB 로 부팅 할 수 있게 해주는 UUI 다운로드 (윈도우에서)
https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ 방문
설치하시고 실행시키신 다음에 (Step 1 에서 Ubuntu 고르시고, Step 2 는 다운로드 받으신 iso 파일을 설치 Step 3 USB 장치 선택 등등...)
이제 USB에 부팅 가능한 우분투 파일들이 들어있죠?
설치합니다.
usb 꼽은 상태에서 부팅 시키고 Install Ubuntu 클릭 후 엔터. (usb로 부팅해 주세요. usb 부팅 방법을 모르시면 지식 또는 구글 검색해 주십시오.)
GUI 버전이기 때문에 설치하기 쉬울 것입니다.
설치 방법 조차 모르시면 난감 ㅡ.ㅡ; 구글이나 지식검색 해보세요.
우분투는 파티션 설정할 일 없이 그냥 대충 설치하셔도 됩니다.
다 설치하셨으면 다시 리붓 들어갑니다. 그리고 우분투 설치가 완료 되었습니다.
되도록 root 계정을 자동 로그인해서 사용하세요. 전 그편이 더 낫더라구요.
자동 로그인 방법입니다.
먼저 root 계정의 패스워드를 설정합니다. alt+ctrl+T 를 눌러서 터미널을 열어줍니다. 그 후 아래 코드를 차례로 입력해 줍니다.
sudo passwd root
sudo gedit /etc/pam.d/gdm-password (auth required pam_succeed_if.so user != root quiet_success 맨 앞에 #를 넣어줍니다.)
sudo gedit /etc/pam.d/gdm-autologin (auth required pam_succeed_if.so user != root quiet_success 맨 앞에 #를 넣어줍니다.)
sudo gedit /etc/gdm3/custom.conf
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=root
...
[security]
AllowRoot=true
넣어주거나 수정해 줍니다. 그리고 리붓하세요. 리붓 먼저 하셔야 합니다.
그러면 tty 에러가 뜨는데 /root/.profile 의 가장 아래에 mseg n || true 를 tty -s && mesg n 로 수정해 줍니다. /root/.profile 파일은 숨겨져 있습니다. 디렉토리 설정에서 숨긴 파일 표시를 하셔야 보입니다.
그냥 gedit /root/.profile 해주셔도 될겁니다.
한글 입력이 안될 수도 있습니다. 그럴땐 설정에 들어가셔서 지역 및 언어를 선택해 주세요. 후에 입력소스에 한국어 (Hangul) 을 남기고 다른 입력소스는 - 로 삭제해 줍니다. 그러면 한/영 키가 먹힐겁니다.
자동 로그인 설정 후 alt+ctrl+T 를 누르시고 터미널을 엽니다.
우분투는 데비안 계열이기 때문에 yum을 쓰지 않고 apt-get 을 사용합니다.
그리고 httpd가 아닌 apache2로 통합됩니다.
apt-get install apache2 php bind9 bind9utils mysql-server php-mysql php-soap php-gd php-mbstring 을 설치합니다.
완료 되었으면 service mysql start 하셔서 mysql을 켭니다.
후에 mysql_secure_installation (처음 질문은 n 그리고 패스워드 넣으시고 확인 패스워드도 넣으시고 나머지는 다 y 합니다.)
참고로 apt-get 은 우분투(데비안 계열 리눅스)의 인스톨러 라고 보시면 됩니다.
이제 공유기에서 포트포워딩을 합니다. 포트포워딩 방법은 공유기마다 다르니 구글에서 검색 해보세요. (TCP: 21,25,443,3306 TCP & UDP: 53,80)
우분투는 방화벽이 안켜져 있어서 따로 해야할 것이 없습니다.
service apache2 start 해주시고 service mysql start, service bind9 start 를 해줘야 서버가 돌아갑니다.
중요한 a2enmod rewrite 잊지 마시고 실행시켜 주세요. 그리고 systemctl restart apache2 해줍니다.
부팅 때 자동으로 서버를 돌리려면 systemctl start apache2, systemctl start mysql, systemctl start bind9 해주십시오.
http://localhost 하시면 아파치 접속이 됩니다. 접속이 안된다면 포트포워딩이 틀렸거나 방화벽 설정이 제대로 안되어 있어서 그럽니다. 방화벽을 모두 꺼보시고 다시 시도해 보세요.
만약 접속이 안되면 리붓 한번 해줍니다.
외부 아이피로 접속이 될지 않될지 모르겠습니다만 아뭏든.........
내 외부 아이피를 모르시면 https://www.whatismyip.com/ 들어가 보세요.
외부 아이피는 중요합니다. 외부에서 접속할 때 이 외부 아이피로 들어와서 접속합니다.
파이어폭스에서 외부 아이피로 접속을 시도해 봅니다. 디폴트 페이지가 뜨면 성공적으로 설치된 겁니다.
아무것도 안뜨거나 오류가 있으면 리플 남겨주세요. 어떤 이유에서 외부 아이피로 접속이 안될 수도 있습니다. 그럴땐 아래에 도메인 설정까지 마치신 후 도메인으로 접속해 보시기 바랍니다.
대부분 안되는 이유는 방화벽 때문입니다. 또는 포트포워딩 또는 service apache2 start 를 안해줘서 그럽니다.
GD Library 2.0 이상, iconv, cURL, JSON, SOAP, openssl 모두 설치가 되어 있을겁니다.
혹시 안되면 phpinfo.php 란 파일을 만들어서 <?php phpinfo(); ?> 내용을 삽입하고 루트(var/www/html)에 올려서
localhost/phpinfo.php 를 해줘서 확인해 줍니다. GD Library 2.0 이상, iconv, cURL, JSON, SOAP, openssl 모두 깔려있는지 확인하십시오.
후에 그누보드를 다운로드 받습니다. 압축을 풀고 설치 설명서 대로 설치를 합니다.
data 폴더 만들고 chown -R www-data:www-data data 그리고 chmod -R 777 data 해주고...... http://localhost 또는 외부아이피로 접속 후 계정 만들고 적고...... (/var/www/html 에 그누를 올립니다. 다른 디렉토리를 사용하셔도 무방합니다.)
문제가 없다면 그냥 설치가 될 것입니다. 문제들은 댓글에 남겨주세요. 최대한 빨리 답변 드리도록 노력하겠습니다.
그 전에 해야할 일이 있습니다. phpmyadmin을 설치하는 것이죠.. 그 내용은 바로 아래에 있습니다.
phpmyadmin을 설치해 줍니다.
apt-get install phpmyadmin
service apache2 restart 해주시고 http://localhost/phpmyadmin 으로 접속하셔서 테스트해 줍니다.
아마 root 계정으로 로그인이 안될겁니다. 그럴땐 터미널에서 sudo mysql 를 입력해 줍니다.
후에
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';
비밀번호를 자신의 원하는 패스워드로 교체해서 입력합니다. 후에 FLUSH PRIVILEGES; 하고 ctrl+C 또는 ctrl-X 또는 ctrl-Z 를 입력하셔서 mysql에서 나옵니다.
그 후에 localhost/phpmyadmin 하셔서 root/비밀번호 를 입력하시면 접속이 됩니다.
후에 database를 생성해 줍니다. phpmyadmin 에 접속해서 데이터베이스 생성입니다.
그리고 그누보드 설치할 때에 생성된 database 명을 넣어주시면 됩니다.
그리고 그누보드5 설치를 마칩니다.
안되면 /var/www/html 에서 chown -R www-data:www-data data 터미널에서 해줍니다.
그리고 이제 apache2, php, mysql 설정을 할 것입니다.
터미널에서 gedit /etc/apache2/apache2.conf 후에 아래와 같이 수정해줍니다.
AllowOverride None 다 찾아서 AllowOverride All 로 바꾸기 (.htaccess 사용하기 위함입니다.) 4개 있습니다.
apache2.conf 수정이 거의 완료.
/etc/php/7.2/apache2/php.ini 수정 (gedit 로 수정하셔도 됩니다.)
max_execution_time 약간 늘리고 max_input_time 약간 늘리고, memory_limit 늘려주고, display_errors = Off (on으로 바꾸시면 에러 내용이 보여서 문제 해결을 할 수 가 있습니다.)
post_max_size 약간 늘려주고, upload_max_filesize 약간 늘려주고, max_file_uploads 약간 늘려주고... php.ini 설정 끝
bind (named) 설치할 차례...
패널 Webmin을 깔아줍니다. (안깔아도 된답니다만 나중을 위해서라도 깔아주세요. 익숙해지는데 1~3주 걸렸습니다. 정작 사용하는 것은 첫 페이지와 Apache Webserver, BIND DNS Server, Fail2ban, SSH Server, Sendmail, Users and Groups, Running Processes, Scheduled Cron Jobs, ProFTPD Server 등입니다.)
gedit /etc/apt/sources.list
(terminal에 타입합니다.)
---------------------------웹민 레포 설치 시작--------------------------
deb http://download.webmin.com/download/repository sarge contrib
---------------------------웹민 레포 설치 끝--------------------------
sources.list 가장 하단에 위 코드 추가. 저장 후 나오기...
아래 코드들을 터미널에 차례대로 입력해 줍니다.
wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
sudo apt update
sudo apt install webmin
여기까지 하면
Webmin install complete. You can now login to
https://your_server_ip:10000 as root with your
root password, or as any user who can use `sudo`.
란게 보일겁니다.
파폭(브라우저)에 보이는 주소:10000 으로 접속하시면 접속이 됩니다.
웹민은 https 에서만 돌아갑니다. 파이어폭스로 접속하시면 Your connection is not secure 페이지가 보일겁니다. 그럴땐 Advanced 클릭하셔서 Add Exception 을 눌러줍니다. 그리고 Confirm Security Exception 을 눌러주시면 접속이 됩니다. 안되면 방화벽에서 포트에 10000이 오픈되어 있는지 확인합니다. (공유기 포트포워딩도...) Username은 root 패스워드는 아까 입력하신 시스템 패스워드입니다.
웹민이 이상한 에러로 안될 때는 웹민을 구버전으로 설치하시면 에러 없을겁니다.
https://www.youtube.com/watch?v=PBMQVsoEgik
https://www.youtube.com/watch?v=jmcNUNA_B88
잘 보고 잘 따라합니다. (DNS 설정 하는 방법입니다.) BIND라 하옵니다. (웹민에서 사용) DNS 설정 툴이죠... 중요한 것은 도메인 구입한 곳에서 PRIVATE NAMESERVER 에 아이피를 등록하셔야 됩니다. 또는 그와 비슷한 서비스가 있을 것입니다. 당연히 있습니다.
그러니까 도메인 설정하는 겁니다. 다 정상으로 세팅하고 bind9 재시작 하셨다면 내도메인.com 또는 .net 등등으로 접속이 될겁니다. (아래에 apache2.conf 파일에 아래 소스를 넣어주셔야 됩니다.)
그리고 BIND 설정하는 도중에 RNDC 관련된 에러가 뜨면 웹민 BIND DNS Server 에서 Setup RNDC 해주면 됩니다. 혹 안되면 service apache2 restart, service mysql restart, service bind9 restart 하시고 그래도 안되면 리붓해 줍니다. 바인드 리스타트도 해줘야 합니다. 오른쪽 상단에 리프레시 버튼이 2개가 있는 순서대로 눌러줍니다.
bind 가 어렵거나 어느 이유에서라도 되지 않는다면 cloudflare 를 사용해 보세요. 클플에 가입하시고 add a site 클릭하시고 사이트 주소 넣고 next 클릭, FREE 선택 confirm plan 클릭, DNS query results for 페이지에서 아래부분에 보이는 모든 것을 삭제해 주시고 A 그대로 두고 Name 에 사이트 주소 넣어주시고 IPv4 address 에 내 외부 아이피 입력 Automatic TTL 그대로 놔두시고 Add Record 클릭 그리고 한개 더 삽입해 줍니다. A 그대로 두고 Name에 www 입력. IPv4 address 에 내 외부 아이피 입력 Add Record 클릭. Change your Nameservers 에서는 보이는 네임서버를 호스팅 업체에 가셔서 네임서버를 교체해 줍니다. (그러면 bind9 bind9utils 등 bind9 service 를 사용하실 필요가 없습니다.) (아래 /etc/apache2/apache2.conf 에 VirtualHost를 추가해 줌으로서 도메인으로 들어오는 트래픽이 내 컴퓨터와 연결이 되는 겁니다.)
버추어 호스트 입력하는 방법입니다.
apache2.conf 수정합니다. 자신에 맞게 수정해 주세요.
gedit /etc/apache2/apache2.conf
가장 하단에
--------------------http 버추어 호스트 입력 시작----------------------
<VirtualHost *:80>
ServerName 내도메인.com
ServerAlias www.내도메인.com
DocumentRoot /var/www/html
ScriptAlias /cgi-bin /var/www/html/cgi-bin
<Directory "/var/www/html">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
--------------------http 버추어 호스트 입력 끝----------------------
#아래 코드는 https 사용하실 때 기입해 줍니다.
------------------https 버추어 호스트 입력 시작---------------------
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName 내도메인.com
ServerAlias www.내도메인.com
DocumentRoot /var/www/html
ScriptAlias /cgi-bin /var/www/html/cgi-bin
<Directory "/var/www/html">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
</IfModule>
------------------https 버추어 호스트 입력 끝---------------------
apache2.conf 수정 후에는 service apache2 restart 해주셔야 적용이 됩니다.
SSL은 https 적용 때 쓰이는 겁니다. https:// 쓸 일이 없으시면 그냥 <VirtualHost *:80> 로 시작하는 부분만 추가해 주시면 됩니다.
SSL(https) 적용 방법입니다.
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-apache
그 후에
터미널에 certbot 입력 후 엔터하면 몇가지 질문들이 있는데 이메일 넣고, a 클릭하고 y 클릭합니다.
그리고 도메인 번호를 입력해 줍니다. 여러가지 일 때는 띄워쓰기로 분류해 줍니다.
1 번이랑 2번에 적용하고 싶으면 1 2 입력 후 엔터 클릭 후 나오는 질문에 1번 클릭 그러면 설치가 완료 됩니다.
Congratulations! 가 뜨면 완벽히 설치 된 것입니다. 만약 안되면 시간을 두고 시도해 보시기 바랍니다. dns 에러가 발생하면 웹민에서 bind 설정을 잘못해서 그럴겁니다. 천천히 다시 해보세요. 리스타트 하시는 거 잊지 마시구요. (service bind9 restart) 이쯤에서 막히는 분들이 계실거라 생각되는데 댓글 남겨주세요. 제가 귀찮지는 않습니다. 소확행입니다.
그리고 apache2.conf 에 443 Virtual Host에 자동으로 코드들이 삽입되어 있는걸 확인하실 수가 있습니다.
service apache2 restart 해줍니다.
이렇게요 그럼 SSL 적용도 끝이 납니다. (다 했는데 안되면 리붓해 줍니다.)
그럼 모든 것이 끝납니다.
질문은 댓글에 남겨주세요. 긴 글 끝까지 읽어주셔서 감사합니다.
참고로 서버는 연약한 여자와 같습니다. 살살 다뤄주세요. 막 다루면 서버 금방 죽습니다. 살살 다루어 주세요
'사이트관리 > 그누보드 소스' 카테고리의 다른 글
그누보드 data 첨부파일이 디비상에 실제로 있는지 확인하기 (0) | 2019.06.13 |
---|---|
그누보드 내가본 게시글 스킨 (0) | 2019.06.05 |
php 에러 출력하기 (0) | 2019.05.11 |
그누보드 data/editor 안의 자동 생성 파일 자동삭제 (0) | 2019.04.22 |
가입 후 24시간 내에 글 작성 불가 소스 (0) | 2019.03.23 |
날짜 카운터 간단한 소스 (0) | 2019.03.17 |
크롬 개발자도구를 무력화 하는 소스 (4) | 2019.03.09 |
로또번호 생성기 소스 ( 자바스크립트 ) (0) | 2019.03.07 |