CentOS: 내 서버를 돌려보자 아미나 설치 성공기 V 2.0.0 (준비물: USB 저장장치)

Tip & Tech

활용팁

홈 > 회원포럼 > 활용팁
활용팁

CentOS: 내 서버를 돌려보자 아미나 설치 성공기 V 2.0.0 (준비물: USB 저장장치)

5 째이 3 258 0 0

컴퓨터 2대를 사용했습니다.(한쪽은 검색용) 처음에 OS 를 설치해야 겠죠?

전 centos를 선택했습니다. kali, ubuntu, fedora 다 써 봤는데

설치 순조롭고 빠르고 안정적인건 centos 같습니다. 페도라도 좋은데 php 가 7.0 이라 호환이 안되는 앱이 있어서 스킵.. (지금은 우분투 씁니다.)

설치 과정은 대충 이렇습니다.



centos 를 다운로드 받는다. centos.org 로 접속합니다. Get CentOS Now 클릭합니다.

If the above is not for you, alternative downloads might be. 에서 alternative downloads 클릭.


CentOS Linux Version 7 버전에 있는 mirrors 클릭합니다.


http://isoredirect.centos.org/centos/7/isos/x86_64/ 로 바로 접속하셔도 됩니다.


위편에 있는 링크 중 아무거나 클릭하셔도 됩니다. 중간 즈음에 있는 LiveGNOME 다운로드

http://buildlogs.centos.org/rolling/7/isos/x86_64/CentOS-7-x86_64-LiveGNOME.iso

후에 USB 로 부팅 할 수 있게 해주는 UUI 다운로드 (윈도우에서)

https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ 방문

설치하시고 실행시키신 다음에 (Step 1 에서 Centos 고르시고, Step 2 는 다운로드 받으신 iso 파일을 설치 Step 3 USB 장치 선택 등등...)

이제 USB에 부팅 가능한 Centos iso 파일들이 들어있죠?

설치합니다.

usb 꼽은 상태에서 부팅 시키고 Centos 어쩌고 저쩌고 엔터. (usb로 부팅해 주세요. usb 부팅 방법을 모르시면 지식 또는 구글 검색해 주십시오.)

GUI 버전이기 때문에 설치하기 쉬울 것입니다. (설마 여기서 막히진 않으시겠죠? 앞으로 막힐 날이 많은데...)


참고로 파티션 설정할 때 home 디렉토리로 공간이 대부분 가는데 /var/www/html 사용하실 분은 home으로 가는 공간을 root 으로 옮겨주세요. 당장은 괜찮지만 쓰다보면 용량 부족 현상이 생깁니다.

다 설치하셨으면 다시 리붓 들어갑니다. 그리고 새 Centos 7 이 설치가 완료 되었습니다.



프로그램 -> 즐겨찾기 -> Terminal

yum install httpd php bind bind-utils php-mysqlnd php-soap php-gd php-mbstring 를 설치합니다.

후에 mysql을 설치합니다.

rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

yum install -y mysql-server


완료 되었으면 service mysqld start 하셔서 mysql을 켭니다.

후에 mysql_secure_installation (처음 질문은 엔터로 넘어갑니다. 패스워드 넣으시고 확인 패스워드도 넣으시고 나머지는 다 y 합니다.)




참고로 yum 은 센토스(레드헷 계열 리눅스들)의 인스톨러 라고 보시면 됩니다.

이제 공유기에서 포트포워딩을 합니다. 포트포워딩 방법은 공유기마다 다르니 구글에서 검색 해보세요. (TCP: 21,25,443,3306 TCP & UDP: 53,80)

방화벽은 3개가 있는데 모두 안쓸 예정입니다.

Selinux, Firewalld, Iptables 모두 꺼줍니다. (나중에 감이 올때쯤 해서 키도록 하세요.)

gedit /etc/sysconfig/selinux 해서 enforcing 을 disabled 로 바꿔줍니다. service firewalld stop, yum install iptables-services, service iptables stop. firewalld 사용시 service firewalld start 하시고 왼쪽 상단에 프로그램 -> 잡다 -> 방화벽 클릭 하시고 설정 런타임 영구적 둘다 세팅해줍니다. 서비스, 포트, 프로토콜, 소스 포트 에서 서비스 클릭하시고 http, https, ftp 등 필요한 것들을 체크해 줍니다. 포트는 위에 포트포워딩 할 때 사용한 TCP 포트들과 TCP & UDP 포트들을 기입해 주시면 될 듯합니다.


영구적으로 방화벽을 끄기 위해서는 chkconfig iptables off, chkconfig firewalld off 해줍니다.

service httpd start 해주시고 service mysqld start, service named start 를 해줘야 서버가 돌아갑니다.

부팅 때 자동으로 서버를 돌리려면 chkconfig httpd on, chkconfig mysqld on, chkconfig named on 해주십시오.


가끔 진전이 안되면 한번씩 리붓해 줍니다.


이제 내 외부 아이피로 접속이 될겁니다. 외부 아이피로 접속이 안된다면 포트포워딩이 틀렸거나 방화벽 설정이 제대로 안되어 있어서 그럽니다. 방화벽을 모두 꺼보시고 다시 시도해 보세요. 혹시 그래도 안되면 localhost 는 접속이 되는지 확인해 주세요. 어떤 이유에서 외부 아이피로 접속이 안될 수도 있습니다. 그러면 아래에 도메인까지 세팅해보시고 도메인으로 접속이 되는지 확인해 주세요.


만약 접속이 안되면 리붓 한번 해줍니다.

내 외부 아이피를 모르시면 https://www.whatismyip.com/ 들어가 보세요.

외부 아이피는 중요합니다. 외부에서 접속할 때 이 외부 아이피로 들어와서 접속합니다.


파이어폭스에서 외부 아이피로 접속을 시도해 봅니다. 테스트 페이지가 뜨면 성공적으로 설치된 겁니다.


아무것도 안뜨거나 오류가 있으면 처음부터 다시 시도 또는 리플 남겨주세요.


대부분 안되는 이유는 방화벽 때문입니다. 또는 포트포워딩 또는 service httpd 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 apache:apache data 그리고 chmod -R 777 data 해주고...... 휴~ 계정 만들고 적고...... (/var/www/html 에 그누를 올립니다. 다른 디렉토리를 사용하셔도 무방합니다.)

문제가 없다면 그냥 설치가 될 것입니다. 문제들은 리플에 달아주세요. 최대한 빨리 답변 드리도록 노력하겠습니다.

아미나도 설치해야지요. 아미나 다운로드 받으시고 /var/www/html 에 덮어씁니다. 그리고 외부 아이피나 주소로 접속하면 설명이 되어있습니다. 설명대로 따라합니다. 전체 홈페이지가 안나오고 백지거나 텍스트 2줄만 나온다면 그 이유는 권한 때문에 그렇습니다. 그럴때는 /var/www 에서 chmod -R 755 html 해주시고 /var/www/html 에서 chown -R apache:apache data 그리고 chmod -R 777 data 해줍니다.

그 전에 해야할 일이 있습니다. phpmyadmin을 설치하는 것이죠.. 그 내용은 바로 아래에 있습니다.


phpmyadmin을 설치해 줍니다. rpm -iUvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum -y install phpmyadmin


service httpd restart 해주시고 만약 localhost/phpmyadmin 으로 접속해서 안되면 아래 부분을 읽어주세요. 되면 아래 수정건은 그냥 넘어가시면 됩니다.


----------------------------phpmyadmin 설치 시작---------------------------------------

gedit /etc/httpd/conf.d/phpMyAdmin.conf 하시고 아래와 같이 수정합니다.


# phpMyAdmin - Web based MySQL browser written in php

#

# Allows only localhost by default

#

# But allowing phpMyAdmin to anyone other than localhost should be considered

# dangerous unless properly secured by SSL


#Alias /phpMyAdmin /usr/share/phpMyAdmin

#Alias /phpmyadmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin


<Directory /usr/share/phpMyAdmin/>

   AddDefaultCharset UTF-8


   <IfModule mod_authz_core.c>

     # Apache 2.4

     <RequireAny>

       #Require ip 127.0.0.1

       #Require ip ::1

        Require all granted

     </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>

     # Apache 2.2

     Order Deny,Allow

     Deny from All

     Allow from 127.0.0.1

     Allow from ::1

   </IfModule>

</Directory>


<Directory /usr/share/phpMyAdmin/setup/>

   <IfModule mod_authz_core.c>

     # Apache 2.4

     <RequireAny>

       Require ip 127.0.0.1

       Require ip ::1

     </RequireAny>

   </IfModule>

   <IfModule !mod_authz_core.c>

     # Apache 2.2

     Order Deny,Allow

     Deny from All

     Allow from 127.0.0.1

     Allow from ::1

   </IfModule>

</Directory>


# These directories do not require access over HTTP - taken from the original

# phpMyAdmin upstream tarball

#

<Directory /usr/share/phpMyAdmin/libraries/>

    Order Deny,Allow

    Deny from All

    Allow from None

</Directory>


<Directory /usr/share/phpMyAdmin/setup/lib/>

    Order Deny,Allow

    Deny from All

    Allow from None

</Directory>


<Directory /usr/share/phpMyAdmin/setup/frames/>

    Order Deny,Allow

    Deny from All

    Allow from None

</Directory>


# This configuration prevents mod_security at phpMyAdmin directories from

# filtering SQL etc.  This may break your mod_security implementation.

#

#<IfModule mod_security.c>

#    <Directory /usr/share/phpMyAdmin/>

#        SecRuleInheritance Off

#    </Directory>

#</IfModule>

#끝


Alias /phpmyadmin /usr/share/phpMyAdmin 부분을 원하시는 디렉토리명으로 수정합니다. (/phpmyadmin 이 부분입니다.)


service httpd restart 해줍니다.


http://localhost/phpmyadmin 하시면 접속이 됩니다. (원하는 디렉토리명으로 접속하세요. 예) http://localhost/위에서바꾼원하는디렉토리명)


만약 에러나면 댓글 남겨주세요.


----------------------------phpmyadmin 설치 끝---------------------------------------


후에 database를 생성해 줍니다. phpmyadmin 에 접속해서 데이터베이스 생성입니다.


그리고 그누보드 설치할 때에 생성된 database 명을 넣어주시면 됩니다.


그리고 그누보드5 설치를 마칩니다.


안되면 /var/www/html 에서 chown -R apache:apache data 터미널에서 해줍니다.


 


그리고 이제 httpd, php, mysql 설정을 할 것입니다.

gedit /etc/httpd/conf/httpd.conf 후에 아래와 같이 수정해줍니다.

AllowOverride None 다 찾아서 AllowOverride All 로 바꾸기 (.htaccess 사용하기 위함입니다.) 4개 있습니다.

httpd.conf 수정이 거의 완료.

/etc/php.ini 수정

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/yum.repos.d/webmin.repo (terminal에 타입합니다.)


---------------------------웹민 레포 설치 시작--------------------------


[Webmin]

name=Webmin Distribution Neutral

#baseurl=http://download.webmin.com/download/yum

mirrorlist=http://download.webmin.com/download/yum/mirrorlist

enabled=1


---------------------------웹민 레포 설치 끝--------------------------


webmin.repo에 위 코드 추가 (webmin.repo 파일을 생성하는 겁니다.) 저장 후 나오기...

w.get http://www.webmin.com/jcameron-key.asc (w.get 에서 .(쩜)을 빼세요. 아미나 팁 게시판에 버그 때문에 저는 붙일 수가 없습니다.)

rpm --import jcameron-key.asc

yum -y install webmin

service webmin start

chkconfig webmin on


https://localhost:10000 으로 웹민으로 접속이 가능합니다. 웹민은 https 에서만 돌아갑니다. 안되면 방화벽에서 포트에 10000이 오픈되어 있는지 확인합니다. (공유기 포트포워딩도...) 그러면 경고창이 뜨는데 오른쪽 아래즈음에 Advanced(고급) 을 눌러줍니다. 그리고 또 Add Exception... 을 클릭해 줍니다. 왼쪽 하단즈음에 Confirm Security Exception을 클릭해 줍니다. 그러면 웹민으로 로그인이 됩니다.


웹민이 이상한 에러로 안될 때는 웹민을 구버전으로 설치하시면 에러 없을겁니다.


https://www.youtube.com/watch?v=PBMQVsoEgik

https://www.youtube.com/watch?v=jmcNUNA_B88

잘 보고 잘 따라합니다. (DNS 설정 하는 방법입니다.) BIND라 하옵니다. (웹민에서 사용) DNS 설정 툴이죠... 중요한 것은 도메인 구입한 곳에서 PRIVATE NAMESERVER 에 아이피를 등록하셔야 됩니다. 또는 그와 비슷한 서비스가 있을 것입니다. 당연히 있습니다.

그러니까 도메인 설정하는 겁니다. 다 정상으로 세팅하고 named 재시작 하셨다면 내도메인.com 또는 .net 등등으로 접속이 될겁니다. (아래에 httpd.conf 파일에 아래 소스를 넣어주셔야 됩니다.)

그리고 BIND 설정하는 도중에 RNDC 관련된 에러가 뜨면 웹민 BIND DNS Server 에서 Setup RNDC 해주면 됩니다. 혹 안되면 service httpd restart, service mysqld restart, service named restart 하시고 그래도 안되면 리붓해 줍니다. 바인드 리스타트도 해줘야 합니다. 오른쪽 상단에 리프레시 버튼이 2개가 있는 순서대로 눌러줍니다. (그냥 service named restart 하셔도 될겁니다.)


 


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 에서는 보이는 네임서버를 호스팅 업체에 가셔서 네임서버를 교체해 줍니다. (그러면 bind bind-utils 등 named service 를 사용하실 필요가 없습니다.) (아래 httpd.conf 에 VirtualHost를 추가해 줌으로서 도메인으로 들어오는 트래픽이 내 컴퓨터와 연결이 되는 겁니다.)


 


버추어 호스트 입력하는 방법입니다.


httpd.conf 수정합니다. 자신에 맞게 수정해 주세요.


gedit /etc/httpd/conf/httpd.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 버추어 호스트 입력 끝---------------------


httpd.conf 수정 후에는 service httpd restart 해주셔야 적용이 됩니다.


SSL은 https 적용 때 쓰이는 겁니다. https:// 쓸 일이 없으시면 그냥 <VirtualHost *:80> 로 시작하는 부분만 추가해 주시면 됩니다.


 


SSL(https) 적용 방법입니다.

yum install epel-release

yum install httpd mod_ssl python-certbot-apache

certbot 입력 후 엔터하면 몇가지 질문들이 있는데 이메일 넣고, a 클릭하고 y 클릭합니다.


그리고 도메인 번호를 입력해 줍니다. 여러가지 일 때는 띄워쓰기로 분류해 줍니다.


1 번이랑 2번에 적용하고 싶으면 1 2 입력 후 엔터 클릭 후 나오는 질문에 1번 클릭 그러면 설치가 완료 됩니다.

Congratulations! 가 뜨면 완벽히 설치 된 것입니다. 만약 안되면 시간을 두고 시도해 보시기 바랍니다. dns 에러가 발생하면 웹민에서 bind 설정을 잘못해서 그럴겁니다. 천천히 다시 해보세요. 리스타트 하시는 거 잊지 마시구요. (service named restart) 이쯤에서 막히는 분들이 계실거라 생각되는데 댓글 남겨주세요. 제가 귀찮지는 않습니다. 소확행입니다.


그리고 httpd.conf 에  443 Virtual Host에 자동으로 코드들이 삽입되어 있는걸 확인하실 수가 있습니다.

service httpd restart 해줍니다.


이렇게요 그럼 SSL 적용도 끝이 납니다. (다 했는데 안되면 리붓해 줍니다.)


그럼 모든 것이 끝납니다.


 


센트오에스는 php 버전이 5.4인가 그렇습니다. 7.0을 설치하기 위해서는 따로 또 해야 할 일이 있습니다.


https://www.zerostopbits.com/how-to-upgrade-php-5-4-to-php-7-3-on-centos-7-5-1804/


여기에 자세히 나와 있습니다. 7.3 설치 방법인데 조금만 수정하면 7.0 설치가 가능합니다.



질문은 댓글에 남겨주세요. 긴 글 끝까지 읽어주셔서 감사합니다.


참고로 서버는 연약한 여자와 같습니다. 살살 다뤄주세요. 막 다루면 서버 금방 죽습니다. 살살 다루어 주세요.

3 Comments
2 라벤더 09.17 14:00  
mysql 8 은 아미나 로고인 문제가 있어서 maria db 는 괜찮은데 어떻게 설치해야하나요?
아마존 라이트세일에서 LEMP 설치가 안되더군요 고맙습니다
11 우성군 09.17 14:40  
http://amina.co.kr/bbs/board.php?bo_table=tip&wr_id=5914

요걸로 해보세요. 한방에 설치됩니다.
5 째이 09.17 16:05  
로그인 오류 내용 바랍니다.
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand