반응형
728x90
반응형

Apache2 VHost 설정하기

  • Apache Vhost 설정

Vhost란? Apache2의 Virtual host 기능을 통해서 하나의 아파치 서버에서 독립된 서버 공간을 나누는 작업을 의미한다.

설정 파일 조작

vhost에 필요로 하는, 수정해야하는 설정들은 위 그림에서 처럼 3가지이다.

ports.conf : 각 vhost 마다 사용할 포트 등록.
sites-available, -enabled : vhost에 필요한 설정 파일 등록.

먼저, /etc/apache2 경로의 sites-available/ 디렉토리 내에 필요한 파일을 구비할 것인데, sites-available 디렉토리현재 비활성 중인 사이트들의 설정 파일을 담고 있는 디렉토리이다. 

001-autotag.api 라는 이름으로 가상 환경을 나눈다. 내용은 다음과 같다.

<VirtualHost *:7011> 과 같이 해당 가상 환경에서 사용할 포트를 기재해주고,
ServerName 에는 도메인 주소가 들어간다.
DocumentRoot 의 경우, 렌더링할 웹 문서 파일이 존재하는 Default 경로라고 생각하면 되겠다.
ErrorLog 및 CustomLog 는 해당 vhost에서 발생하는 로그들을 어디에 저장할 것인가를 지정한다.
<Directory ~ > 부분은 해당 vhost에 대한 옵션들이라고 생각하면 된다.

--------------------------------------------------------------------------------------------------------------------------------------------------
[해당 내용]
<VirtualHost *:7011>
ServerName autotag.api
ServerAdmin ysho0707@gmail.com
DocumentRoot /server_app/autotag.api
ErrorLog ${APACHE_LOG_DIR}/django.api/error.log
CustomLog ${APACHE_LOG_DIR}/django.api/access.log combined
          <Directory /server_app/autotag.api>
                    Options All
                    AllowOverride All
                    Require all granted
          </Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
--------------------------------------------------------------------------------------------------------------------------------------------------

그리고 다음으로는 sites-enabled 디렉토리를 수정할 것이다. sites-enabled 디렉토리는 현재 활성 중인 사이트의 설정 파일들을 갖는 디렉토리인데, 보통 sites-available 디렉토리에서 심볼릭 링크를 걸어서 설정 파일을 채워넣는 형태로 진행이 된다. 그 부분을 다음에서 확인할 수 있다.

sudo ln -s /etc/apache2/sites-available/001-autotag.api.conf /etc/apache2/sites-enabled/001-autotag.api.conf

위의 명령어를 통해 심볼릭 링크를 건다.

728x90

Port 수정

다음으로는 port를 재설정할 것이다.

위와 같은 경로에 ports.conf 파일이 존재하는데 이 부분에 해당 Virtual Host 공간의 접속 포트를 추가하면 된다. 위 과정 중에서 sites-available 디렉토리 내에 001-autotag.api.conf 의 가장 첫 줄에 포트 번호가 있다. 그 번호를 추가한다.

포트를 추가하면 기본 default로 정했던 7010 포트 뿐만 아니라, autotag.api 이름의 가상 호스트의 포트 또한 접속 요청으로 수용할 수 있다.

Apache2 재시작

아파치를 위와 같이 재시작하고, 접속을 시도해본다.

접속 및 테스트

위와 같이 깔끔하게 접속이 잘 된 모습을 볼 수 있다. 해당 페이지는 “hello” 를 출력하는 페이지 파일을 001-autotag.api.conf 의 DocumentRoot 경로에 기술한 경로에 사전에 집어넣어 렌더링 된 상태이다. 

해당 디렉토리에 아무 것도 넣지 않고 접속하면 아무 것도 출력되지 않으니 확인을 해야한다.
/etc/hosts를 수정한다면 다음과 같이 접속 또한 가능하다.

/etc/hosts 파일을 다음과 같이 수정하게 되면 autotag.api 라는 주소는 앞으로 192.168.0.112로 바꿔서 해석하겠다 라는 의미를 갖는다. 

여기서 중요한 것은 그 말인 즉 슨 내 컴퓨터 내에서만 적용되는 규칙이다. 외부 사람들은 백 날 autotag.api를 친다 하더라도 접속이 되지 않을 것이다.

아래와 같이 접속이 잘 되는 것을 확인할 수 있다.

 

 

 

 

 

 

728x90
반응형
728x90
반응형

oracle 사의 sql developer 툴은 매우 사용하기 편리하다. 익숙해서 그런가? 

아무튼 윈도우에서 즐겨 사용하곤 했는데, 우분투에서는 혹시 사용할 수 있으려나? 하고 검색해본 결과, 가능하다!!
그래서 나중에 또 기록용으로 이번 포스팅을 작성한다.

다운로드 파일 준비

먼저, JDK의 다운로드이다.

https://www.oracle.com/java/technologies/javase-downloads.html

 

우분투에서 설치할 것이니, Linux x64 Debian Package 를 다운로드 하면 된다.

다음으로는 Oracle Sql Developer의 다운로드이다.

https://www.oracle.com/tools/downloads/sqldev-downloads.html

20.2 버전으로 꼭 Other Platforms 로 다운로드 한다.

다음으로는 Msql Connector JDBC 드라이버이다. Oracle 용 sql developer 이니 다른 DB도 사용할 수 있도록 만들어준다.

https://dev.mysql.com/downloads/connector/j/

 

MySQL :: Download Connector/J

MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.

dev.mysql.com

platform independent 로 꼭 다운로드 해야한다.

 

모두 준비된 모습이다.

JDK 11 설치

sql developer 는 자바 기반으로 jvm 위에서 돌아가기 때문에 필히, jvm 을 설치해야한다. 그러기 위해선 jdk를 설치하면 되겠다.

sudo dpkg -i jdk-11.0.9_linux-x64_bin.deb

설치가 완료되면 다음 디렉토리를 탐색하여 존재하는지 확인한다.

설치 끝

 

SQL Developer 설치

설치랄 것도 없이 그냥 압축을 풀고 경로에 넣으면 끝이다.

sudo unzip ./sqldeveloper-20.2.0.175.1842-no-jre.zip

압축 해제가 끝났다면 /opt 경로에 넣어준다. 안 넣어줘도 상관없지만 3rd party app의 경우 이곳에 넣어주고, 탐색할 때도 용이하다.

sudo mv ./sqldeveloper /opt/

 

해당 경로에 접근하여 sqldeveloper.sh 파일을 실행하는데 위와 같은 입력이 나온다면 ctrl+c 를 눌러 중단한 뒤, 위 사진 중 가장 오른 쪽에 있는 빨강 박스 속 경로를 vim 이나 각종 에디터로 열고, jdk 의 설치 경로를 입력한다.

jdk는 따로 설정되지 않는 이상 /usr/lib/jvm 내에 설치된다. 직접 경로를 접근하여 jdk 경로를 확인해 본 뒤 복사 후, 아래 처럼 vim 등으로 빨강 박스 내의 경로를 연다.

그리고 나서 SetJavaHome 주석 쳐져 있는 곳 아래에 그림과 같이 경로를 적어 넣고 저장한다!

저장 후 실행하면 아래와 같이 완성!

그러나 아직까지는 oracle db에만 접근이 가능하다. 아까 다운로드 받은 MYSQL JDBC 드라이버 추가를 통해 mysql, maria db 등을 사용할 수 있다. 아까 받은 mysql-connector-java-8.0.22.tar.gz 압축을 푼다.

압축을 풀고 천천히 살펴본다면, mysql~~~.jar 파일이 존재한다. 이를 sql developer 상에서 드라이버 추가해주면 되는 것이다!

작성자는 개인적으로 두고두고 실행할 것이니 sql developer 앱이 존재하는 경로에 옮겨 저장을 했다.

sql developer 에서 도구 탭 -> 환경 설정 -> 데이터베이스 -> 타사 JDBC 드라이버를 누른 후 항목 추가로 아까 그 ~.jar 파일을 추가하면 된다.

짠~! mysql 을 선택한 후, maria db 혹은 mysql db에 접근하면 되는 것이다!

위와 같이 우분투 메뉴나 런처에 아이콘을 추가하고 싶은 경우, 아래의 경로로 접속하여 실행해보자

https://typingdog.tistory.com/91?category=933956

 

우분투 20.04에서 JetBrains 프로그램 설치 및 런처에 아이콘 추가.

제트 브레인 사의 프로그램 ( Clion, Intellij, Pycharm 등) 을 우분투에서 다운로드 하여 압축을 풀어보면, 바로 실행할 수 있는 스크립트를 제공하기 때문에 런처에 실행 아이콘이 자동으로 제공되지

typingdog.tistory.com

 

728x90
반응형

'리눅스:Ubuntu > Database 관련' 카테고리의 다른 글

maria db 백업 및 복구 방법  (0) 2021.01.08
우분투 20.04에서 Maria db 설치  (0) 2020.09.29
728x90
반응형

먼저, Vhost란 Virtual Host의 줄임말이다.

원래 Apache를 설치하면 /var/www/html 디렉토리에 있는 웹 문서를 로드하여 웹 서버를 서비스하는데, 이 상태는 하나의 host가 서비스되는 것이다. 아래와 같이 말이다.

 

그러나 Vhost 를 이용하면 달라진다. 아래의 그림처럼 디렉토리 별로 완전히 다른 호스트로 구분되어, 하나의 웹 서버에 여러 호스트를 운영할 수 있는 것이다.

이 때, 호스트의 분기는 rewrite 등의 모듈을 함께 이용하기 때문에 rewrite까지 이번 포스팅에서 다룰 것이다.

VHOST 설정

VHOST 설정을 위해서는 각 가상 호스트 별로 설정 파일을 마련해야한다. 바로 다음과 같은 경로에!

sudo vim /etc/apache2/sites-available/001-phindol.conf

001-phindol.conf 라는 설정 파일을 만듦으로써 하나의 가상 호스트를 생성하는 것이라고 보면 되겠다. phindol은 임의 이름이다.

sites-available 를 헤깔리면 안된다. 이 .conf 파일의 내용은 아래와 같다. 각 지시자들은 검색을 통해서 확인하도록 한다.

<###VirtualHost *:80###>
    ServerName phindol.com
    ServerAlias *.phindol.com
    ServerAdmin ysho0707@gmail.com
    DocumentRoot /var/www/html/phindol.com
    # chmod -R 755 path

    ErrorLog ${APACHE_LOG_DIR}/phindol/error.log
    CustomLog ${APACHE_LOG_DIR}/phindol/access.log combined

    <###Directory /var/www/html/phindol.com###>
        Options All
        AllowOverride All
        Require all granted
# rewrite 명령어
# sudo a2enmod rewrite
# sudo systemctl restart apache2
        RewriteEngine on
        RewriteCond %{REQUEST_URI} ^(.*)\.(html|htm|php|lib|act|pcls|pexe)$
        RewriteRule . /var/www/html/phindol.com/System/enter.php [L]
    <###/Directory###>
<###/VirtualHost###>

(###은 알아서 지우도록 하자)

참고)
/var/www/html/sub에 해당하는 부분에서 Permission 에러가 난다면 위의 주석 처리된 chmod 755 권한으로 갱신한다.

위에서 sites-available 디렉토리 내에 생성을 했다면 다음은 sites-enabled 디렉토리 내에 심볼릭 링크를 생성해야한다.

아래와 같이 하며 명령어는 다음과 같다.

sudo ln -s /etc/apache2/sites-available/001-phindol.conf /etc/apache2/sites-enabled/001-phindol.conf

sites-available 디렉토리 내의 conf 파일과 동일한 이름으로 심볼릭 링크를 지어준다.

vhost를 추가할 때에는 아래의 명령으로 추가됨을 반영하자.

sudo a2ensite phindol(sites-available, enable등에서 지정했던 이름 ex] 001-phindol.conf 에서의 phindol)

 

윈도우 host 파일 설정

conf 파일의 설정을 봤다면 알겠지만 취급할 virtual host의 도메인은 "phindol.com" 이다.

그러나 우리는 해당 도메인을 구매하여 구비하지 않았기 때문에 실제로 테스트를 할 수 없다. 이러한 경우 윈도우의 host 파일을 수정하여 나의 컴퓨터 내에서 해당 도메인에 대한 접속을 바꿔주는 것이다.

C:\Windows\System32\drivers\etc

위 경로를 관리자 권한으로 열고, 아래의 그림처럼 수정한다. ( 탭 단위로 구분한다 )

우분투 20.04에서 테스트 할 경우 127.0.0.1 이 먹히지 않는 경우가 있어 확인해 봤더니 다음과 같은 이유였다.

그리고 나서 아파치를 재시작한다.

#은 지우고 실행한다.

성공적인 결과가 말을 해주고 있다.

왼쪽은 http://localhost/ 도메인으로 vhost 설정이 되지 않은 메인 host이고 오른쪽은 vhost 설정이 된 가상 host이다. vhost 설정을 하면서 rewrite라고 하는 주소를 고쳐쓰는 모듈을 설정했는데 왼쪽과 오른쪽에서 rewrite 모듈이 실행 안되고/되고 의 결과를 본다면, vhost 설정을 통해 하나의 아파치 웹 서버에서 서로 독립적인 사이트처럼 실행된다는 사실을 확인할 수 있다.

로그 폴더의 생성

vhost 설정 중 log 각 vhost 마다 로그 폴더를 따로 두었는데, 이에 따른 생성 및 권한 설정을 해야한다.

sudo mkdir /var/log/apache2phindol

Rewrite 모듈 설정

Rewrite는 Request를 정해진 Rule에 의해서 다른 URL or File로 보내는 모듈을 뜻한다. 

예를 들어, 다음 그림과 같다고 보면 된다.

그렇다면, redirect와 다른 점은 무엇일까?

redirect 는 클라이언트 사이드에서 처리가 이루어지며, 클라이언트의 주소 표시줄에 변경된 주소가 표시된다.
rewrite 는 서버 사이드에서 처리가 이루어지며, 클라이언트의 주소 표시줄에 변경된 주소가 표시되지 않는다.

위의 vhost .conf 파일 설정 중 rewrite 부분을 다시 확인 한다면,

이 부분이다. 각 지시자들에 대한 설명은 검색을 통해 확인한다.

RewriteEngine ~ RewiteRule 까지가 본인이 정한 Rewrite 룰인 것이다. 저 룰이 실행되려면 다음과 같은 명령을 명령 라인에 실행한 뒤 아파치를 재실행 하면 된다.

sudo a2enmod rewrite # rewrite 모듈 활성

이후에 apache 재실행을 하면 phindol.com 에 대해서만 rewrite 룰이 적용되는 것을 아래의 그림처럼 확인할 수 있다.

728x90
반응형
728x90
반응형


데이터를 추가하고, 저장하고 테이블 형태로 열람하고 관리할 수 있는 웹 서비스를 만들어 볼 기회가 주어졌다.

간단하게 만드는 경우인지라 C언어와 비슷하고 익숙한 언어인 PHP를 기반으로 구현하게 되었다. 이에 따라서 필요로하는 환경을 구축하는 내용을 다루는 포스팅이다.

 

Apache2 설치

아파치 설치는 매우 간단하다.

sudo apt install apache2

설치 후, 다음 명령어를 통해 서비스가 켜져 있는지 확인한다.

sudo /etc/init.d/apache2 status

꺼져있다면, 다음 명령어를 실행하여 서비스를 켜주자.

sudo /etc/init.d/apache2 start

localhost 라고 인터넷 주소창에 입력했을 때, 다음과 같이 뜬다면 설치 및 서비스 성공이다.

 

APACHE 포트 변경

이번엔 아파치 서비스의 포트를 변경할 것이다. 아래의 경로(명령어)로 들어가면 포트를 변경할 수 있다.

sudo vim /etc/apache2/ports.conf

기본으로 80 포트로 적용되었지만, 나는 익숙한 포트 번호로 변경하였다.

포트 변경을 원치 않는 경우는 안 바꿔도 된다.

이제 설정이 변경되었으니, 아래와 같이 재시작을 한다.

sudo /etc/init.d/apache2 stop
sudo /etc/init.d/apache2 start
혹은
sudo /etc/init.d/apache2 restart

PHP 설치

서버 사이드 스크립트 언어 설치이다.

다음 명령을 통해서 설치한다.

sudo apt install php php-mysql

설치가 완료되면 Apache2와 연동이 되는지 확인하기 위해서 아래의 과정들을 실행하여 확인해본다.

sudo vim /var/www/html/test.php

위 명령으로 편집기에 들어가서 아래와 같이 입력하고 저장한다.

<?php phpinfo(); ?> 

이러한 화면이 떠야한다. 뜨지 않는 경우 apache2 서비스를 재실행한다. (stop -> start)

이제 이 환경 위에 간단한 웹 서비스를 올리면 되겠다 ㅎㅎ

728x90
반응형
728x90
반응형

 

집에다가 Ubuntu Server 20.04를 설치했다. 

git 서버 / svn 서버 / 서비스 서버 용도로 사용하려고 하는데 GUI 환경은 필요없기 때문이다. 설치하고 놀랐던 점은 바로 아래과 같다!!!

역시 서버라 그런지 메모리 사용량이 실화인가 싶을 정도이다. (gitlab 이나 svn 서버 올리면 내나 그 타령이겠지만ㅋ)

뭐 아무튼 용도가 서버 용도인만큼 내가 원할 때 상시 접속을 할 수 있어야 하는데, 전기요금으로 인해 서버를 항시 켜둘 수도 없기 때문에 선택한 것은 WOL이다!

Wake On Lan 기능으로 랜 신호를 이용하여 컴퓨터를 깨우는 방법이다!

위와 같이 웹으로 접속하여 공유기한테 WOL 신호를 컴퓨터에게 주라고 명령하는 것이다 ㅋㅋㅋ 

그렇지만 깨움을 당하는 입장인 OS에서도 (마음의) 준비가 되어 있어야 하기 때문에 어느 정도 설정이 필요하다. 그 설정 때문에 이렇게 또 귀찮게 포스팅을 하게 되었다. 자주 쓰니까 기록할 겸!

 

1. 필요 명령 설치

sudo apt install net-tools ethtool wakeonlan

위 명령어를 통해 필요한 부분을 먼저 설치하자.

2. 이더넷 인터페이스 이름을 알아보자

내가 깨울 컴퓨터의 네트워크 랜 카드에 배정된 이더넷 인터페이스 이름을 알아야 한다. 이를 알기 위해서는 먼저,

ifconfig 명령을 실행하여

이더넷 인터페이스 이름을 알아낸다.

3. /etc/network/interfaces 설정

sudo vim /etc/network/interfaces

위의 명령을 통해 위에서 알아낸 인터페이스 이름을 기입하고 저장한다.

post-up /sbin/ethtool -s 이더넷 인터페이스 이름 wol g
post-down /sbin/ethtool -s 이더넷 인터페이스 이름 wol g

기입하고 저장한 모습

4. /etc/netplan 설정

고정 아이피만을 기준으로 적용한다. (wol 자체가 서버로 이용하려는 경우가 많기 때문에 다른 아이피들도 설정할 일이 많아서 그냥 고정 아이피로 설정해두는게 심신에 평안을 가져다 준다 ㅋㅋ)

/etc/netplan 디렉토리 내에 ~~.yaml 파일이 있는데 이를 다음 명령을 통해 열고 아래와 같이 수정한다.

sudo vim /etc/network/interfaces 

빨간 박스 부분만 추가하면 된다.

그리고 나서 아래의 명령어로 적용을 해준다.

sudo netplan apply

우분투 18.04 부터 /etc/network/interfaces 를 수정하는 것은 적용이 되지 않는다는 정보가 있어서 netplan 부분 설정이 필요해서 넣었다.

5. 시작 스크립팅 작성 ( 4번까지 적용해도 작동이 안될 경우 강제로 wol 기능을 켜도록 작성 )

먼저, 스크립트를 작성할 디렉토리를 생성한다.

sudo mkdir /etc/wol

위 디렉토리 안에 다음과 같은 내용을 작성하고 저장하여 wakeonlan.sh 스크립트를 생성한다.

sudo vim /etc/wol/wakeonlan.sh # 스크립트 생성 및 쓰는 명령어

---- 아래는 안에 들어가야할 내용 ----
#!/bin/sh                           
/sbin/ethtool -s 인터페이스이름 wol g
---- 위에는 안에 들어가야할 내용 ----

실행 퍼미션 설정

sudo chmod u+x /etc/wol/wakeonlan.sh

서비스 정의 파일(wakeonlan.service)을 작성한다. ( 컴퓨터가 켜질 때마다 실행할 서비스로 등록하는 과정 )

vim /etc/systemd/system/wakeonlan.service

---- 아래는 안에 들어가야할 내용 ----
[Unit]                                       
Description=Enable Wake-On-LAN 

[Service] Type=simple                  
ExecStart=/etc/wol/wakeonlan.sh    
Restart=always                           

[Install]                                     
WantedBy=multi-user.target         
---- 위에는 안에 들어가야할 내용 ----

아래의 명령어를 통해 서비스 등록 및 시작을 한다. 

sudo systemctl enable wakeonlan.service
sudo systemctl start wakeonlan.service

아래처럼 재부팅 후 명령어를 쳤을 때(인터페이스 이름은 각자 맡게 ㅋ), g 값이 뜬다면 성공인 것이고, 다시 컴퓨터를 종료한 후 wol 신호를 보내보자!  

728x90
반응형
728x90
반응형

 

제트 브레인 사의 프로그램 ( Clion, Intellij, Pycharm 등) 을 우분투에서 다운로드 하여 압축을 풀어보면, 바로 실행할 수 있는 스크립트를 제공하기 때문에 런처에 실행 아이콘이 자동으로 제공되지 않는다.

그래서 이를 정리해보고자, 글을 작성한다.

 

1. 다운로드 및 압축 풀기

먼저, 나는 pycharm, intellij, clion 을 종종 사용하기 때문에 깔끔하게 세 개만 다운로드 후 위의 명령어로 설치를 한다.

2. 경로 재설정

접근의 편리성을 위해서 복잡한 디렉토리의 이름을 간단하게 변경한다.

그리고 해당 IDE들은 아무 디렉토리에 널부러져 있는 것 보다는 따로 공용된 곳에 관리하는 것이 낫다고 판단하여 루트 아래의 opt 디렉토리에 넣고 공통적으로 사용할 예정이다. 그래서 위의 mv 명령어로 옮겨 주었다.

3. 런처 아이콘 생성

먼저 런처에 아이콘을 생성하려면 /usr/share/applications/ 폴더 내에 .desktop 이라는 확장명의 일정 텍스트 양식이 존재해야한다. 그 안의 내용을 참조하여 실행, 아이콘 이미지 로드 등이 진행되어 런처에 추가 및 클릭으로 실행을 할 수 있는 것이다.

파일명은 무엇이든 상관없지만 아까전에 2번 항목에서 수정해줬던 이름을 그대로 따랐다.

/usr/share/applications/ij.desktop

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=아이콘 이미지 경로
Name[en_US]=IntelliJ
Exec=실행 스크립트 경로
Name=IntelliJ
Icon=아이콘 이미지 경로

아이콘 이미지 경로나, 실행 스크립트 경로는 알아서 찾아서 넣으면 된다. jpg, sh 확장명으로 끝나는 것들을 의미하며, 제트브레인 사의 프로그램들 같은 경우는 bin 폴더 내에 모두 존재한다.

위와 같은 방식으로 나는 총 3가지를 추가하였다.

 

4. 권한 및 소유 지정

sudo chmod 644 /usr/share/applications/ij.desktop 
sudo chown root:root /usr/share/applications/ij.desktop

위에서 생성한 .desktop 파일에 권한과 소유를 지정해주어야한다!

 짠 위와 같이 잘 추가된 것을 확인할 수 있다. 이번 20.04는 아이콘들이 너무 예쁘게 잘 나왔음...

혹시라도 안될 경우는

권한 및 소유의 지정을 잘 주었는지 확인하기!
경로가 잘 지정되었는지 확인하기!

그래도 안 될 경우는 생성한 .desktop 파일을 지우고 처음부터 다시 해 본 후, 재부팅하여 확인해본다.

728x90
반응형

'리눅스:Ubuntu > Desktop' 카테고리의 다른 글

우분투 20.04 Server 에 WOL 적용하기.  (1) 2020.10.18
728x90
반응형

오늘은 오랜만에 기록이다.

요즘 프리 바람의나라 서버를 개발하고 있는 탓에 DB가 필요하다. 웹에서는 DB가 거의 기본이다 싶었지만, 예전에 DB 개념이 거의 전무하다 싶을 때에는 파일 입/출력을 통해서 유저, 아이템 데이터 등을 관리했다. 

그 결과, 텍스트화 되어 있는 게임 데이터를 모두 메모리에 올려다 놓고 거기에 항목에 대한 엑세스까지 행해야하므로 메모리는 메모리 대로 씨피유는 씨피유 대로 박살났던 기억이 있다... ㅠㅠ

아무튼 웹 개발 일을 하면서, 아! 이래서 DB를 썼어야했구나! 아주 절실하게 느끼곤 하는데, 바로 그 DB를 설치해볼 것이다.

그것도 우분투 20.04에서 Maria DB 를 설치해보았다.
우분투 22.04에서 Maria DB를 다시 설치해 보았고, 대체로 동작하지만 몇몇 부분은 누락되는 부분들을 수정했다.

 

1. 간단하게 바로 설치

sudo apt install mariadb-server

매우 간단하다.

 

2. 설정

설정이 좀 중요하다.

sudo mysql_secure_installation

위의 명령어를 작성하면 여러 설정을 위한 질문들이 나온다

Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

읽어보면 바로 알 수 있는 내용들이다. 굵은 글씨는 내가 설정한 내용들이다.

22.04 ) 윗 부분에 없는 질문들은 모두 Default 값으로 엔터만 눌러 넘어가도 문제 없다.

maria db 설정에 성공한 모습이다

3. Character Set 설정

문자 설정 매우 중요하다. 한글이 파괴되면 얼마나 슬프단 말인가. 영어만 입력을 해야하니.. 다음과 같이 하면 된다.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

위 명령어를 쳐서 general -> unicode로 변경한다. 혹시 모르니까 기존 줄(106)은 주석을 쳐뒀다.

4. Port 변경

remote 가 붙는 경우가 대부분이므로, 포트 설정을 중요하다. 로컬이어도 포트는 사용되니 중요하다.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

마찬가지로 위 명령어를 통해 port 항목의 값을 원하는 포트 번호로 수정한다.

설정 파일 구조가 조금 바뀌었지만 자신 있게 변경하면 문제없다.

5. 외부 접속 허용 설정

remote 가 아닌 local 에서 다음과 같이 실행한다.

sudo mysql -u root  # sudo 계정으로 접속

이 아래 부터는 maria db 명령을 치는 곳에다가 쳐야한다.(위 명령을 통해 접속했으므로)

----------------------------------------------------------------------------------------------------------------------------------------------------------------
설치 당시(2023-05-09) Maria DB 10.6.12 버전에서는 mysql_native_password 가 기본으로 설정 되어 있는 것 같다.... 그래서 점선 사이 부분은 사실 상 커맨드 치지 않아도 된다.
----------------------------------------------------------------------------------------------------------------------------------------------------------------

use mysql; 
SELECT User, Host, plugin FROM mysql.user; 
update user set plugin='mysql_native_password' where user='root';
flush privileges; 
select user, host, plugin from user; 

위 명령들을 치면 A 사진이 B 사진 처럼 바뀌어야한다. ( Plugin 부분 )

A사진
B사진

----------------------------------------------------------------------------------------------------------------------------------------------------------------

그리고! 다음 명령어로 유저 별로 외부 접속을 허용시켜주자! 

GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '패스워드';   
FLUSH PRIVILEGES; 

갑자기 뜬금 없이 아이디가 shyoo 가 나와서 헤깔렸을 수 있는데.. 새로운 아이디 생성은 다음과 같이 CREATE USER 갈겨주면 해결된다.
CREATE USER 'USERID'; // 지정한 이름으로 아이디 생성
CREATE USER 'USERID'@'%' identified by 'PASSWORD';
// 지정한 이름으로 아이디 생성 및 외부 접근 허용(%), 비밀번호 설정까지 함께 진행한다.
FLUSH PRIVILEGES; 

그러니까 기존에 아이디가 존재했다면 GRANT 명령을, 아이디를 새로 생성하는 경우에는 CREATE USER 명령을 갈기면 된다.

6. 서버 허용 아이피 변경

접속을 시도했는데 이런 오류가 뜬다면 문제가 있는 것이다.

그럴 때에는 다음과 같이 한다.

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

위 명령을 작성 후 그림과 같이 한다.

 

7. 서비스 재시작

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
--------------------------------------------------------------------
Maria DB 10.06.12 버전에서는 명령 스크립트 이름이 mariadb로 변경됐다.
sudo /etc/init.d/mariadb stop
sudo /etc/init.d/mariadb start

위 명령어를 통해 종료와 시작이 잘 이루어지는지 확인을 한다.

성공한 모습이다.

8. 확인

 

728x90
반응형
728x90
반응형

 

우분투 Ubuntu 20.04.1 Version에서 Gitlab CE 를 설치를 해보았다.
우분투 Ubuntu 22.04.2 Version에서도 설치 테스트를 진행해 본 결과 유효하다.

 

1. 먼저 필수적인 의존성 라이브러리 설정 및 설치를 진행한다.

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates 

2. 메일 발송을 위한 Postfix 를 설치한다.

메일 발송을 위한 Postfix가 꼭 필요한 모양이다. 그렇기 때문에 설치를 하지만 당장은 필요하지 않다.
필요한 경우에 나중에 다시 설정을 하면 되므로 아래와 같이 선택한 후, 적절하게 입력한다. 
말이 적절이지, 특수문자를 제외하고 아무렇게나 입력해도 되는 듯 싶다. 나중에 재설정 가능하다.

sudo apt install postfix

postfix 설치 과정 중...

3. Gitlab 패키지 레퍼지토리를 추가한 후 설치한다.

다음 명령어를 입력하여 Gitlab 패키지 레퍼지토리를 추가한다.

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash 

그 후 , 환경 변수 설정과 함께  gitlab-ce 를 설치한다. 아래와 같은 명령어로, 알아서 설치를 잘 한다.

sudo EXTERNAL_URL="http://gitlab.example.com/" apt-get install gitlab-ce 


아래와 같이 나오면 설치가 완료된 모습이다.

Gitlab 설치가 성공한 모습이다.

4. 내 입맛에 맞게 IP와 PORT 를 설정한다.

먼저, IP 및 PORT의 설정은 /etc/gitlab/gitlab.rb 파일에서 설정을 변경할 수 있다. vim 을 통해서 변경을 하였다.sudo vim /etc/gitlab/gitlab.rb 변경해야할 항목은 다음과 같다.

  • external_url

먼저, external_url 을 설정한다. 기존에 gitlab.example.com:[port] 으로 되어 있으나, 자신의 주소와 포트에 맞게 변경한다.
[port] 부분을 각자 정의한 포트 번호로 기재하면 된다.

Text Editor는 가림용이다.

그리고 다음의 명령어로 gitlab 서비스를 재시작 한다.

sudo gitlab-ctl reconfigure 

그리고 설정한 아이피와 포트로 접속했을 때 다음과 같이 뜬다면 성공한 것이다.

 

5. 처음에 "root" 계정에 대한 비밀번호 변경.

처음 회원가입하고, 로그인할 경우 내가 생성한 계정은 당연스럽게도 pending 상태에 들어간다. 승인이 있어야 가입할 수 있다는 소리이다. Pending 상태를 풀어주려면 당연히 root 계정으로 접속을 해야한다.
root 계정의 비밀번호를 알기 위해서는 다음 명령어를 통해서 알아낸다.

sudo cat /etc/gitlab/initial_root_password | grep Password

root 비밀번호를 알아내는 과정

이제 비밀번호도 알았으니 저 비밀번호를 복붙하여 로그인도 하고, root 비밀번호 변경과 동시에 가입한 아이디의 pending 상태 또한 풀어서 이용하면 되겠다.

728x90
반응형

+ Recent posts