반응형
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
반응형


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

간단하게 만드는 경우인지라 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
반응형

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

요즘 프리 바람의나라 서버를 개발하고 있는 탓에 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
반응형

 

어느 날 터미널 ssh 를 통해서 서버에 접속했을 때, 메모리 점유율이 4% -> 30% 이상에 육박하길래 확인해보았더니,
gitlab이 약 2기가 가량을 먹고 있어서 안 쓸 때에는 중지를 시켜놓아야겠다 싶어서 까먹을까봐 정리한다.

현재 서버에서 돌아가고 있는 gitlab-ce의 상태를 확인하는 명령어이다

sudo gitlab-sudo gitlab-ctl status

현재 모두 종료되어 있는 상태이다.

 

다음은 gitlab을 중지하는 명령어이다.

sudo gitlab-ctl stop

gitlab 서비스를 중지한 모습
종료 후 173MiB로 낮은 점유율을 보여준다 

다음은 gitlab을 중지하는 명령어이다.

sudo gitlab-ctl start

2기가로 늘어난 메모리 점유율ㅋㅋ

 

추가적으로 재시작 명령어는 다음과 같다.

sudo gitlab-ctl start

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