Server/서버 부트캠프

[Server] 서버 부트캠프 1주차 과제 - VM에서 리눅스 계열 OS를 인스턴스 생성/ APM 소스설치(3)

Haena 2022. 6. 10. 23:56

1주차 과제

VM에서 리눅스 계열 OS를 인스턴스 생성하고 APM 소스 설치하기

 

1. Virtual Box(가상머신)설치하기

2. Virtual Box에  Ubuntu(리눅스 계열 OS) 설치하기

3. Apache 설치하기

4. MySQL 설치하기

5. PHP 설치하기

 

 

4.MySQL 설치하기

 

MySQL 의존성 패키지

1. CMake

2. GNU make 3.75 이상

3. Linux 운영체제는 GCC 5.3 이상

4. C++ 혹은 C99 compiler

5. SSL Library : OpenSSL Library

6. Boot C++ libraries 

7. ncurses library 

8. Perl

 

$ dpkg -l | grep [이름]

위 명령어로 설치 여부 확인

위처럼 뜨면 설치된것, 아무 것도 안뜨면 설치 안된것

 

  • 설치하기 전에 apt-get 을 update 해주고 위에서 설치되지 않은 것들만 install
$ apt-get update
$ apt-get install cmake
$ apt-get install libssl-dev
$ apt-get install libboost-all-dev
$ apt-get install libncurses5-dev libncursesw5-dev

 

 

 

MySQL 다운로드

  • 다운로드 링크는 다음 링크를 통해 확인 가능

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

 

MySQL :: Download MySQL Community Server

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86

dev.mysql.com

 

  • wget 명령어로 mysql 을 다운로드 받고, tar xvfz 로 압축을 풀어준다.
$ cd /usr/local
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25.tar.gz
$ tar xvfz mysql-8.0.25.tar.gz

 

$ cd /usr/local/mysql-8.0.25
$ cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql/boost 

-> 여기서 에러 발생

 

  • 소스 디렉토리 내에 build 를 위한 디렉토리를 추가 생성하고 그 하단에서 작업을 진행해야됨 -> 아래와 같이 명령어를 바꾸고 실행시켜 준다. cmake \ 뒤에 .. \로 바꿔야 된다.

 

$ cd /usr/local/mysql-8.0.25
$ rm -f CMakeCache.txt
$ mkdir dir_mysql(원하는 이름으로)
$ cd dir_mysql
$ cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql/boost 
$ make
$ make test
$ make install
  • boost가 없다는 에러

 

 

  • boost를 wget으로 다운 받고
$ cd /usr/local/src/
$ sudo wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz
$ sudo tar xvfz boost_1_73_0.tar.gz

 

  • boost 라이브러리가 설치된 경로로 바꿔준 후에 실행하면 된다.
$ cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/boost_1_73_0

 

 

**오류** 

업데이트 했음에도 openssl이 없다고 뜸 -> 해결 : 수동설치 후 경로 지정 

cmake를 아래로 수정

$ cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/boost_1_73_0
-DWITH_SSL=/usr/local/openssl

 

※오류 해결은 아래 블로그 참조

https://aeolian-blarney-ebf.notion.site/mysql-cmake-openssl-1-0a2018f48e414ec89cbed628e27d780d

 

mysql cmake openssl 에러 (1)

Openssl 설치 링크

aeolian-blarney-ebf.notion.site

 

  • 컴파일 완료

 

  • make실행 - 한시간 반 정도 걸렸다

 

 

MySQL DB 초기화

cd /usr/local/mysql-8.0.25/dir_mysql
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql

그룹과 유저를 만들어야 한다.

-r : system account

-g : 그룹 지정

-s: user의 로그인 shell

 

2) 디렉토리 생성

$ cd /usr/local/mysql
$ mkdir mysql-files

3)권한주기

$ chown -R mysql:mysql /usr/local/mysql
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files

chown: 파일의 소유자를 변경

-R : 하위 디렉토리까지 소유권 할당

chmod : 사용권한을 변경

 

(4)기본 DB 생성

$ bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

이렇게 하면 임시 비밀번호가 나온다

 

MySQL 서버 실행 및 비밀번호 재설정

 

  • 서버 시작/ 사용해보기

(1) mysql서버 실행 및 확인

서버를 실행하고 아래 명령어로 실행이 잘 되는지 확인한다.

$ bin/mysqld_safe --user=mysql &
$ ps -ef | grep mysqld

아래 명령어로 mysql로 전환한다.

$ bin/mysql -u root -p

 

명령어를 치면 비밀번호를 입력하게 되는데 아까 받은 초기 비밀번호를 입력하면 된다.

(2) 비밀번호 할당하기

> alter user 'root'@'localhost' identified by '원하는 비밀번호';

ctrl+Z로 mysql 종료하기

 

서버를 종료하고 싶을 때 shutdown 이용하기

/usr/local/mysql# bin/mysqladmin -u root -p shutdown

 


5.PHP 설치하기

 

  • php설치 후 apache와의 연동 확인

아래 블로그 참고하여 진행

https://park-algorithm.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-AMP%EC%86%8C%EC%8A%A4%EC%84%A4%EC%B9%983-PHP-7421

 

리눅스 환경에서 AMP소스설치(3) PHP 7.4.21

1. PHP 설치를 위한 패키지 설치 /usr/local $ sudo apt-get install libxml2-dev /usr/local $ apt-get install libjpeg-dev /usr/local $ apt-get install libpng-dev sudo apt-get install libsqlite3-dev 2. P..

park-algorithm.tistory.com

 

 

ISSUE 

  • mysql cmake 할때 업데이트 했음에도 openssl이 없다고 뜸 -> openssl 수동설치 후 경로지정으로 해결
  • php 설치과정 중 make할때 openssl 에러가 나서 config할때 openssl을 빼고 진행
  • 이후 make test와 make install에서 에러와 warning이 났지만 무시하고 진행 -> 정상 작동
  • php 파일 작성할때(/usr/local/apache-2.4/htdocs $ vim phpinfo.php) 처음에는 <? 과 php 사이에 띄어쓰기를 하였는데 이렇게 입력할 시 phpinfo 페이지가 나오지 않음 ->  띄어쓰기 삭제 후 진행