Ubuntu Mysql,Apache 설치

찌글렛·2022년 1월 11일
0
post-thumbnail

📣APM 서버 프로그램 설치

워드프레스 설치에 필요한 서버 프로그램은 총 3가지. 아래 패키지를 묶어 APM 이라고 합니다.

  • Apache : 웹서버
  • PHP : PHP 언어 인터프리터
  • MySQL : MySQL 데이터 베이스 서버

📣Ubuntu 에 Mysql 설치하기

  • $ lsb_release -a ⇒ Ubuntu 버전 확인하기
  • $ sudo apt-get update ⇒ 설치 되어있는 패키지들의 새로운 버젼이 있는지 확인 할 때, 사용가능한 패키지들과 그 버전들의 리스트를 업데이트 하는 명령어, 실제 패키지 버전을 업그레이드하는 것이 아니라 최신 버전 패키지가 있는지를 확인하고 내 우분투에 알려주는 용도.
  • $ sudo apt-get install mysql-server ⇒ Mysql 설치하기
  • $ sudo ufw allow mysql ⇒ mysql 서비스 방화벽 허용하기
  • $ sudo ufw deny mysql ⇒ mysql 서비스 방화벽 막기
  • $ sudo ufw allow 3306 ⇒ mysql의 포트는 3306이기 때문에 해당포트를 허용하기(이미 허용돼 있으면 패스한다고 나옴)
  • $ sudo systemctl start mysql ⇒ mysql 이 설치되었으면 실행해보기
  • $ sudo systemctl enable mysql ⇒ Ubuntu 서버가 재시작 되더라도 mysql이 자동 시작되도록 등록
  • $ sudo /usr/bin/mysql -u root -p ⇒ mysql 접속하기
    (mysql 접속 후)
  • SHOW VARIABLES LIKE "%version%"; ⇒ 버전 확인하기
  • ALTER USER 'root'@'localhost' IDENTIFIED BY '1027'; ⇒ root 계정에 패스워드 ''1027" 설정하기
  • SELECT User, Host, authentication_string FROM mysql.user; ⇒ 현재 mysql의 계정(User)정보를 확인하기
  • CREATE DATABASE myplanetdb; ⇒ "myplanetdb"이라는 database 를 만들기
  • SHOW DATABASES; ⇒ database 가 잘 만들어졌는지 database 리스트 확인하기
  • CREATE USER 'jiyeun'@'localhost' IDENTIFIED BY '1027'; ⇒ 계정은 jiyeun이고 Host는 localhost, 그리고 패스워드는 1027 이라는 myplanetdb를 사용하는 계정을 만들기
  • FLUSH PRIVILEGES; ⇒ mysql 의 user 테이블에 추가하거나 변경이 있을 경우 FLUSH PRIVILEGES 쿼리 실행하기
  • SELECT User, Host, authentication_string FROM mysql.user; ⇒ user 정보 조회하기
  • GRANT ALL PRIVILEGES ON myplanetdb.* to jiyeun@localhost; ⇒ jiyeun 계정에 myplanetdb DB를 사용할 수 있도록 권한을 부여하기
  • FLUSH PRIVILEGES; ⇒ 권한을 변경 했으니 FLUSH PRIVILEGES 쿼리
  • SHOW GRANTS FOR 'tongchun'@'localhost'; ⇒ jiyeun 계정이 localhost에서 어떤 권한을 가지고 있는지 확인해보기 GRANT USAGE ON *.* TO jiyeun@localhostGRANT ALL PRIVILEGES ON myplanetdb.* TO jiyeun@localhost`` 위 쿼리 결과로 나온 두 건 중 첫번째에 GRANT USAGE ON . TO가 있습니다. 이건 . 는 아무 권한이 없다는 의미입니다. 현재 jiyeun 계정은 myplanetdb 에만 모든 권한을 가지고 있고 mysql의 admin이나 system을 접근 할 수 있는 권한은 없습니다. 계정 뒤에 붙은 @localhost는 해당 계정이 localhost 즉 mysql이 설치된 pc에서만 접속 할 수 있다는 의미입니다. 만약 다른 서버(remote)에서 접속하고 싶다면 접속하려는 서버의 IP로 계정을 새로 만들어줘야 합니다. 예를 들어 192.168.0.10에서 접속하고 싶다면 아래와 같이 쿼리를 실행하면 됩니다.

`CREATE USER 'root'@'192.168.0.10' IDENTIFIED BY 'ngle1234';

GRANT ALL PRIVILEGES ON . TO 'root'@'192.168.0.10' WITH GRANT OPTION;

FLUSH PRIVILEGES;`

만약 특정 PC(192.168.0.10)이 아닌 어디서든 접속하려면 IP대신 %로 해주면 됩니다.

`CREATE USER 'root'@'%' IDENTIFIED BY 'ngle1234';

GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;`

  • SELECT User, Host, authentication_string FROM mysql.user; ⇒ 계정 리스트를 다시 보면 root@% 계정이 추가 된걸 확인할수 있습니다.
  • CREATE USER 'jiyeun'@'%' IDENTIFIED BY '1027'; GRANT ALL PRIVILEGES ON myplanetdb.* TO 'jiyeun'@'%'; FLUSH PRIVILEGES; ⇒ 마찬가지로 jiyeun 계정도 remote 접속이 필요해서 실행

📣Ubuntu 20.04 에 Apache 설치하기


  • Apache 설치
$ sudo apt update && sudo apt install apache2

⇒ 첫번째 명령은 패키지 목록을 업데이트하고 Apache에 대한 최신 버전과 종속성을 얻을 수 있도록 합니다. 두번째 명령은 Apache를 다운로드하고 설치합니다.


  • 방화벽 구성
$ sudo ufw allow OpenSSH

⇒ 서버를 원격으로 구성하는 경우 방화벽을 활성화 할 때 잠기는 것을 원하지 않기 때문에 SSH에 대한 방화벽 규칙을 추가합니다. "오류:openSSH와 일치하는 프로필을 찾을 수 없습니다"라는 오류가 발생 하는 경우 서버를 원격으로 구성하지 않고 무시 할 수 있습니다.

$ sudo ufw allow in "Apache Full"
$ sudo ufw enable

⇒ Apache에 대한 방화벽 규칙을 추가 할 수 있습니다. 방화벽이 활성화되지 않은 경우 활성화합니다.

$ sudo ufw status

⇒ 현재 방화벽 상태를 확인 할 수 있습니다.


  • Apache 테스트
$ sudo service apache2 status

⇒ Apache가 올바르게 설치되었는지 확인하기 위해 현재 Apache 서비스 상태를 확인 할 수 있습니다.

실행중이면 Active 가 녹색으로 표시되어야 합니다.

$ hostname -I

⇒ 본인의 아이피를 확인 할 수 있습니다.

확인된 아이피를 주소 표시줄에 입력하면 Apache default Page 가 나옵니다.

$ sudo nano /var/www/html/index.html

⇒ 기본 시작 페이지를 편집 할 수 있습니다. 종료는 CTRL + X 입니다.


  • 가상 호스트 구성
    $ sudo mkdir -p /var/www/mydomain.com/public_html
    
    ⇒ Ubuntu 20.04 서버에서 여러 도메인을 호스팅하려면 가상 호스트를 설정해야합니다. /var/www/ 도메인에 대한 새 디렉토리를 만듭니다. mydomain.com 을 자신의 것으로 바꿉니다.
    $ sudo nano /var/www/mydomain.com/public_html/index.html
    
    ⇒ 테스트를 위해 index.html 파일을 만듭니다. `
     <head>
       <title>Welcome!</title>
     </head>
     <body>
        <h1>Welcome to mydomain.com!</h2>
     </body>
    ` ⇒ 그리고 다음을 입력하고 저장 및 종료(ctrl+x ... y 를 차례로 누르고 enter 을 누릅니다.) `$ sudo nano /etc.apache2/sites-available/mydomain.com.conf` ⇒ [mydomain.com](http://mydomain.com/) 을 자신의 것으로 대체하는 가상 호스트 구성 파일을 만듭니다. ``` ServerAdmin webmaster@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/mydomain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ``` ⇒ 다음을 입력하여 [mydomain.com](http://mydomain.com/) 을 자신의 것으로 바꿉니다. 저장 및 종료(ctrl+x ... y 를 차례로 누르고 enter 을 누릅니다.) ``` $ apachectl configtest ``` ⇒ 오류를 테스트 합니다. ``` $ sudo a2ensite mydomain.com.conf ``` ⇒ [mydomain.com](http://mydomain.com/) 을 자신의 것으로 대체하는 가상 호스트를 활성화합니다. ``` $ sudo a2dissite -default ``` ⇒ 기본 Apache 웹 사이트를 비활성화합니다. 그렇지 않으면 가상 호스트를 재정의합니다. ``` $ sudo systemctl reload apache2 ``` ⇒ Apache 를 다시 시작합니다. 이제 브라우저에서 사이트를 로드 할 수 있습니다. 이제 4개의 단계를 반복하여 더 많은 도메인을 추가 할 수 있습니다.

0개의 댓글