일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 28015
- mysql
- ssh
- Jupyter Notebook
- STF_PortForwarding
- PYTHON
- postgresql
- Materials
- SWIFT
- create table
- appium
- nmap
- Jupyter
- postgres
- STF
- openpyxl
- GoCD
- ubuntu
- nGrinder
- kitura
- perfect
- insert
- port forwarding
- sshpass
- rethinkdb
- ftp
- 실행권한
- appium server
- centos
- nohup
- Today
- Total
don't stop believing
LAMP 설치 (on CentOS 7) 본문
WordPress를 설치하고 홈페이지 관리를 해야 합니다.
WordPress를 실행하려면 LAMP가 필요합니다.
- L: Linux (이번 wordpress는 CentOS 7에서 진행합니다.)
- A: Apache 웹 서버
- M: MySQL 또는 MariaDB
- P: PHP
LAMP부터 설치하고 WordPress 설치로 넘어가겠습니다.
Linux를 확인합니다.
CentOS에 접속했다면 버전부터 확인하고 가겠습니다.
$ cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS 7인것을 확인 했습니다.
이제 yum을 update 해줍니다.
$ sudo yum update
만약 처음 CentOS를 설치하고 sudo 명령을 했을때 sudoer가 아니라고 메시지가 나온다면 아래 링크를 확인해 주세요.
https://dejavuqa.tistory.com/282
Apache 설치 입니다.
yum을 이용해 간단히 설치해 줍니다.
$ sudo yum install httpd
apache(httpd)를 설치했다면 실행해 줍니다.
$ sudo systemctl start httpd.service
서버가 재시작 되더라도 apache(httpd)가 자동 실행되도록 설정합니다.
$ sudo systemctl enable httpd.service
apache(httpd)가 정상적으로 실행 중인지도 확인해 봅니다.
$ sudo systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 화 2019-03-19 20:35:30 EDT; 2min 39s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 15199 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─15199 /usr/sbin/httpd -DFOREGROUND ├─15200 /usr/sbin/httpd -DFOREGROUND ├─15201 /usr/sbin/httpd -DFOREGROUND ├─15202 /usr/sbin/httpd -DFOREGROUND ├─15203 /usr/sbin/httpd -DFOREGROUND └─15204 /usr/sbin/httpd -DFOREGROUND 3월 19 20:35:30 localhost.localdomain systemd[1]: Starting The Apache HTTP Server... 3월 19 20:35:30 localhost.localdomain httpd[15199]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using lo... message 3월 19 20:35:30 localhost.localdomain systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full.
apache의 default page도 확인해 볼텐데요. CentOS에는 기본으로 방화벽이 실행되고 있습니다.
방화벽 실행 여부를 확인하려면 systemctl status firewalld로 확인하시면 됩니다.
$ systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since 화 2019-03-19 20:47:26 EDT; 1min 36s ago Docs: man:firewalld(1) Main PID: 15641 (firewalld) CGroup: /system.slice/firewalld.service └─15641 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid 3월 19 20:47:26 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon... 3월 19 20:47:26 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
방화벽에서 web 포트를 추가하거나 서비스를 등록해야 합니다.
간단하게는 아래와 같이 포드를 등록할 수 있습니다.
sudo firewall-cmd --zone=public --add-port=80/tcp
저는 새로운 존을 만들고 서비스를 등록해 보겠습니다.
1. 방화벽에 존(webserver)을 추가합니다.
$ sudo firewall-cmd --permanent --new-zone=webserver
2. 방화벽을 재시작(reload) 합니다.
$ sudo firewall-cmd --reload
3. 추가한 존(webserver)을 활성화 합니다.
$ sudo firewall-cmd --set-default-zone=webserver
4. 활성화한 존(webserver)에 서비스를 추가합니다.
default-zone을 webserver로 지정한다면 서버 연결을 위해 ssh 서비스도 추가해 줍니다.
$ sudo firewall-cmd --permanent --zone=webserver --add-service=http $ sudo firewall-cmd --permanent --zone=webserver --add-service=https $ sudo firewall-cmd --permanent --zone=webserver --add-service=ssh
5. 방화벽을 다시 재시작(reload) 합니다.
$ sudo firewall-cmd --reload
이제 apache도 설치했고 방화벽도 열었으니 apache의 default page를 확인합니다.
브라우저에서 서버의 IP로 접속하면 됩니다.
MariaDB를 설치합니다.
예전에는 WordPress를 설치할 때 MySQL을 설치했는데 최근에는 MariaDB로 설치를 안내하고 있습니다.
MariaDB는 MySQL의 source에서 분리되어(forked) 만들어진 DB입니다. MariaDB는 Open Source Application으로 누구든 사용할 수 있습니다.
MySQL에서 분리된 DB이기 때문에 기본적인 명령이 MySQL과 동일합니다.
MariaDB를 설치합니다.
$ sudo yum install mariadb-server mariadb
설치가 되었다면 시작해 줍니다.
$ sudo systemctl start mariadb
그리고 서버가 재시작 되어도 자동 실행되도록 해줍니다.
$ sudo systemctl enable mariadb
mariadb의 실행 상태도 확인해 봅니다.
$ sudo systemctl enable mariadb Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. [tongchun@localhost ~]$ sudo systemctl status mariadb ● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since 화 2019-03-19 22:34:18 EDT; 31s ago Main PID: 21574 (mysqld_safe) CGroup: /system.slice/mariadb.service ├─21574 /bin/sh /usr/bin/mysqld_safe --basedir=/usr └─21736 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log ... 3월 19 22:34:16 localhost.localdomain mariadb-prepare-db-dir[21492]: MySQL manual for more instructions. 3월 19 22:34:16 localhost.localdomain mariadb-prepare-db-dir[21492]: Please report any problems at http://mariadb.org/jira 3월 19 22:34:16 localhost.localdomain mariadb-prepare-db-dir[21492]: The latest information about MariaDB is available at http://mariadb.org/. 3월 19 22:34:16 localhost.localdomain mariadb-prepare-db-dir[21492]: You can find additional information about the MySQL part at: 3월 19 22:34:16 localhost.localdomain mariadb-prepare-db-dir[21492]: http://dev.mysql.com 3월 19 22:34:16 localhost.localdomain mariadb-prepare-db-dir[21492]: Consider joining MariaDB's strong and vibrant community: 3월 19 22:34:16 localhost.localdomain mariadb-prepare-db-dir[21492]: https://mariadb.org/get-involved/ 3월 19 22:34:16 localhost.localdomain mysqld_safe[21574]: 190319 22:34:16 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. 3월 19 22:34:16 localhost.localdomain mysqld_safe[21574]: 190319 22:34:16 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 3월 19 22:34:18 localhost.localdomain systemd[1]: Started MariaDB database server.
이번에는 MariaDB에 secure 설정을 해줍니다.
mariadb의 기본 설정은 보안 설정이 되어 있지 않습니다. 보안 이라고 거창한 건 아니고 root 계정에 비번을 넣을 건지, 외부에서 root 권한으로 접속할 수 있게 할건지, test database를 지울 건지 등에 대한 기본적인 설정입니다.
참고로, mariadb는 mysql에서 forked 되었기 때문에 mysql과 거의 같습니다. 아래와 같이 명령어에도 대놓고 mysql이 있습니다.
$ sudo mysql_secure_installation
위 명령을 실행하면 몇가지 질문을 하고 설정을 하게 됩니다.
처음 나오는 질문 입니다.
Enter current password for root (enter for none):
첫 설정이기 때문에 mariadb의 root 계정의 비밀번호는 없습니다. 그냥 엔터를 칩니다.
mariadb root 계정의 비밀번호를 만들 건지 묻습니다.
Set root password? [Y/n] Y
만들어 줍니다.
New password:
Re-enter new password:
새로 추가할 root 계정의 비번을 등록합니다.
이번엔 anonymous 계정을 제거할 건지 묻습니다.
Remove anonymous users? [Y/n] y
인증된 계정만 접속할 수 있도록 anonymous 계정은 삭제합니다.
mariadb root 계정이 외부에서 접속하지 못하게 할 건지 묻습니다.
Disallow root login remotely? [Y/n] y
보통은 root 계정은 관리용 계정으로만 사용하고 wordpress 처럼 외부 서버와 연결 할 때는 해당 계정을 만들어서 사용합니다.
테스트용 database를 삭제할 건지 묻습니다.
Remove test database and access to it? [Y/n] y
삭제해 줍니다.
설정을 바로 적용할지 묻습니다.
Reload privilege tables now? [Y/n] y
바로 적용해 줍니다.
PHP를 설치합니다.
php는 다목적 서버 스크립트 언어(general-purpose server-side scripting language)입니다. php와 함께 php에서 mariadb(mysql)에 연결할 수 있는 드라이버도 함께 설치해 줍니다.
$ sudo yum install php php-mysql
php를 설치하면 php가 시작된 상태가 됩니다. 다시 재시작해 줍니다.
$ sudo systemctl restart httpd.service
마찬가지로 linux 서버가 재시작하더라도 php가 실행되도록 설정합니다.
$ sudo systemctl enable httpd.service
php도 잘 실행되고 있는지 확인해 봐야죠.
$ sudo systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since 화 2019-03-19 23:09:11 EDT; 2min 4s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 23577 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─23577 /usr/sbin/httpd -DFOREGROUND ├─23579 /usr/sbin/httpd -DFOREGROUND ├─23580 /usr/sbin/httpd -DFOREGROUND ├─23581 /usr/sbin/httpd -DFOREGROUND ├─23582 /usr/sbin/httpd -DFOREGROUND └─23583 /usr/sbin/httpd -DFOREGROUND 3월 19 23:09:11 localhost.localdomain systemd[1]: Starting The Apache HTTP Server... 3월 19 23:09:11 localhost.localdomain httpd[23577]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using lo... message 3월 19 23:09:11 localhost.localdomain systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full.
php가 정상적으로 설치되었는지 php 설정 정보들을 웹 페이지로 확인해 보겠습니다.
apache의 기본 web 디렉토리인 /var/www/html/ 에 info.php라고 파일을 만들어 줍니다.
vim을 사용해 만들어 보겠습니다.
$ sudo vim /var/www/html/info.php
info.php 파일이 열리면 안에 아래와 같이 작성합니다.
<?php phpinfo(); ?>
php에서 phpinfo()함수는 php의 모든 설정 정보를 html파일로 만들어 보여줍니다.
info.php파일을 저장하고 브라우저에서 http://<서버 ip>/info.php로 호출해 봅니다.
저는 서버 ip가 10.10.5.0입니다.
info.php 페이지 중간 쯤 보면 mysql 정보가 보입니다. 5.5.60-MariaDB로 나오고 있습니다.
php와 연결할 준비가 되었다고 볼수 있습니다.
이와 하는거 phpMyAdmin까지 설치해 보겠습니다.
phpMyAdmin은 apache, php와 연동해 MySQL(MariaDB)를 손쉽게 관리할 수 있게 하는 툴입니다.
phpMyAdmin은 CentOS 7의 기본 Repository에는 없습니다. 그래서 EPEL Repository가 필요 합니다.
$ sudo yum install epel-release
EPEL Repository가 설치되었으면 phpMyAdmin을 설치해 줍니다.
$ sudo yum install phpmyadmin
phpMyAdmin은 관리자 페이지이기 때문에 지정된 ip에서만 접속할 수 있도록 해야 합니다.
config 파일을 열고 <RequireAny> 부분을 수정해 줘야 합니다.
아래와 같이 phpMyAdmin의 config 파일을 엽니다.
$ sudo vim /etc/httpd/conf.d/phpMyAdmin.conf
config 파일 윗쪽에 있는 Require ip 127.0.0.1에 접속하려는 ip를 추가해 줍니다.
저는 현제 10.10.5.104를 사용하고 있습니다. 구분자는 공백입니다. 아래 처럼 ip를 추가하고 config 파일을 수정합니다.
<IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 10.10.5.104 Require ip ::1 </RequireAny> </IfModule>
이제 브라우저를 열고 /phpmyadmin 경로로 접속합니다.
Username과 Password에는 MariaDB의 root 계정과 비번을 입력하면 됩니다.
앞서 만들었던 root 계정과 비번을 입력합니다.
DB 관리를 위한 메뉴들이 잘 보이네요.
여기까지 CentOS7에 LAMP 설치였습니다.
'Tools > WordPress' 카테고리의 다른 글
WordPress 설치 (on CentOS 7) (4) | 2019.03.20 |
---|