반응형
Web Server
일반 사용자 홈페이지 만들어보기
필요 패키지 설치
apt -y install php php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip php-mysql apache2 mysql-server
root@kwc:~# cd /etc/apache2/mods-enabled => mods-enabled : 아파치2 웹서버 모듈 중에 활성화된 모듈들이 모여있는 디렉토리
root@kwc:/etc/apache2/mods-enabled# ls => list 명령어로 디렉토리 내의 파일(활성화된 모듈)의 목록을 확인.
access_compat.load authz_user.load filter.load php8.1.load
alias.conf autoindex.conf mime.conf reqtimeout.conf
alias.load autoindex.load mime.load reqtimeout.load
auth_basic.load deflate.conf mpm_prefork.conf setenvif.conf
authn_core.load deflate.load mpm_prefork.load setenvif.load
authn_file.load dir.conf negotiation.conf status.conf
authz_core.load dir.load negotiation.load status.load
authz_host.load env.load php8.1.conf => 필요한 userdir.conf와 userdir.load 모듈이 없다.
=> 활성화되지 않은 모듈들은 /etc/apache2/mods-available 디렉터리에 있다.
userdir.conf모듈과 userdir.load모듈 활성화
ln -s ../mods-available/userdir.conf
ln -s ../mods-available/userdir.load
system restart apache2 => 활성화 후 아파치2 재시작
root@kwc:/etc/apache2/mods-enabled# useradd -D -s /bin/bash => bash를 새로 생성하는 유저의 기본 shell로 설정
root@kwc:/etc/apache2/mods-enabled# vi /etc/login.defs => 로그인 프로세스 설정 편집 실행
CREATE_HOME yes => 빈 칸에 입력
root@kwc:/etc/apache2/mods-enabled# useradd sam => 'sam' 유저 생성
root@kwc:/etc/apache2/mods-enabled# passwd sam => pw 설정
New password:
Retype new password:
passwd: password updated successfully
계정 생성 후, 새로운 터미널을 열어 새로 sam 계정으로 로그인한다.
---sam 계정으로 진행---
sam@kwc:~$ mkdir public_html
sam@kwc:~$ chmod 755 public_html/
sam@kwc:~$ vi public_html/index.html
---편집기에 입력---
<meta charset='utf-8'>
<body bgcolor=pink text=green> <br><br> <h1><center> => 배경색과 글자색을 설정할 수 있다.
<hr><hr>
아니요 뚱인데요?? <br><br> => 원하는 문구 입력
<hr><br><br>
저장 후, chmod 755 ~ 입력해서 권한 설정.
브라우저에 127.0.0.1/~sam 입력해서 웹사이트가 정상적으로 뜨는지 확인.
Database Server
Database Server는 데이터베이스를 호스팅하는 컴퓨터 또는 서버를 의미한다.
데이터베이스 관리 시스템(DBMS)을 실행하고, 데이터베이스테 접속하고, 데이터를 저장,
수정 및 검색하는 데 사용된다.
MySQL 관리 기본
설치: apt -y install mysql-server
Deamon: systemctl start mysqld
접속: mysql
처음 mysql-server를 설치하면 관리자인 root password가 비어있다. 설정을 해주어야 한다.
MySQL password 설정방법
root@kwc:~# mysql -u root => MySQL 서버에 root 계정으로 로그인
mysql> use mysql => MySQL 콘솔에 접속
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'jj';
Query OK, 0 rows affected (0.02 sec) => root의 비밀번호 변경. 'jj' 부분에 원하는 비밀번호 입력
mysql> FLUSH PRIVILEGES; => 변경된 비밀번호 적용
Query OK, 0 rows affected (0.01 sec)
MySQL 계정 사용하기
root@kwc:~# mysql -u root -p => root 계정으로 mysql 실행
Enter password: => 설정한 비밀번호 입력
mysql> create database aceDB; => DB 생성
Query OK, 1 row affected (0.01 sec)
mysql> use aceDB => 생성한 DB 사용
Database changed
mysql> create table Man(
-> name char(20),
-> age int); => 이름과 나이가 들어간 표 생성
Query OK, 0 rows affected (0.03 sec)
mysql> insert into Man values("손흥민", 32);
Query OK, 1 row affected (0.02 sec)
mysql> insert into Man values("이강인", 23);
Query OK, 1 row affected (0.02 sec) => 표에 넣을 정보 입력
mysql> select * from Man; => 표 출력
+-----------+------+
| name | age |
+-----------+------+
| 손흥민 | 32 |
| 이강인 | 23 |
+-----------+------+
2 rows in set (0.00 sec)
MySQL 기본 사용법
1열 | 2열 | 3열 | |
1행 | name | kor | eng |
2행 | 홍길동 | 50 | 90 |
3행 | 박명수 | 40 | 10 |
name, kor, eng 와 같이 가로로 읽히는 부분을 행, row, record라고 한다.
name, 홍길동, 박명수와 같이 세로를 열, field, column이라고 한다.
SQL 구조 | |||
데이터 정의어 | DDL : Data Definition Language | ||
create, alter, drop, truncate | |||
데이터 조작어 | DML : Data Manipulation Language | ||
select, insert, update, delet (CRUD) | |||
데이터 정의어 | DCL : Data Control Language | ||
grant, deny, revoke | |||
데이터 컨트롤 | TCL : Transation Control Language | ||
commit, rollback, savepoint |
SQLite3 사용하기
root@kwc:~# sqlite3 => sqlite3 실행
sqlite> .open adb => sqlite 데이터베이스 파일 실행
sqlite> .header on => 출력 결과의 컬럼 이름 헤더를 표시
sqlite> .mode column => 출력 결과를 커럼 모드로 설정. 결과가 열단위로 출력됨.
sqlite> .table => 현재 데이터베이스에 있는 모든 테이블의 목록 출력
sqlite> create table Man( => 테이블 생성
...> name char(20),
...> age int);
sqlite> insert into Man values("kim", 20);
sqlite> insert into Man values("choi", 25);
sqlite> insert into Man values("yang", 27); => 테이블에 들어갈 값 입력
sqlite> select * from Man;
name age
---- ---
kim 20
choi 25
yang 27
SQLite3는 오픈소스이며 C언어로 구현되어있으며, 작지만 빠르고 강력한 DBMS이다.
https://sqlite.org에서 프로그램과 소스코드를 볼 수 있다.
APM 연동 설치
필수 패키지
pache2, php
apache2 설정파일 경로
/etc/apache2
configuration file
/etc/apache2/apache2.conf
Document root-dir
/var/www/html
설치와 시작하기
apt -y install apache2
apt -y install install php
systemctl start apache2
systemctl status apache2
systemctl enable apache2
APM 연동 확인
별다른 설정 없이도 연동된다.
root@kwc:~# echo "Hello Naver Cloud Camp" >> /var/www/html/b.html
root@kwc:~# vi /var/www/html/k.php
--편집기에 입력--
<?php
echo(" APM Link <br> ");
phpinfo();
?>
Tomcat 연동 설치
Tomcat9 설치
apt -y install tomcat9 tomcat9-examples tomcat9-admin tomcat9-docs
Tomcat root-dir
/var/lib/tomcat9/webapps/ROOT
systemctl start tomcat9
systemctl status tomcat9
systemctl enable tomcat9
Tomcat 연동 확인
user : ace
pw : star123
파일을 열어 아래 3줄을 추가한다.
vi /var/lib/tomcat9/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="acd" password="11" roles="manager-gui,admin-gui"/>
WordPress 연동해보기
root@kwc:~# useradd money => 계정 생성
root@kwc:~# passwd money
New password:
Retype new password:
passwd: password updated successfully
mysql> create database moneyDB; => 데이터베이스 생성
Query OK, 1 row affected (0.01 sec)
mysql> use moneyDB;
Database changed
mysql에서 'money' 사용자를 생성하고 비밀번호 jj 설정.
mysql> create user money@localhost identified with mysql_native_password by 'jj';
Query OK, 0 rows affected (0.01 sec)
moneyDB의 모든 권한을 money 사용자에게 부여.
mysql> grant all privileges on moneyDB.* to money@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; => 변경사항 즉시 적용
데이터베이스 생성과 사용자에 대한 권한 부여까지 마쳤다.
root@kwc:~# cd /var/www/html => /var/www/html 디렉터리로 이동
root@kwc:/var/www/html# wget https://ko.wordpress.org/latest-ko_KR.tar.gz
=> 워드프레스 홈페이지 https://ko.wordpress.org/download/#download-install 에서 소스코드 우클릭 후 복사
=> wget 명령어 뒤에 우클릭 해서 붙여넣기. apt -y install wget
root@kwc:/var/www/html# ls
b.html index.html k.php latest-ko_KR.tar.gz => 워드프레스 압축파일이 생긴 것을 볼 수 있다.
root@kwc:/var/www/html# tar xf latest-ko_KR.tar.gz => 압축해제
root@kwc:/var/www/html# ls
b.html index.html k.php latest-ko_KR.tar.gz wordpress => 압축해제된 파일이 생겼다.
root@kwc:/var/www/html# mv wordpress/ wp => 편하게 작업하기 위해 wordpress를 wp로 이름을 바꿔주었다.
root@kwc:/var/www/html# ls
b.html index.html k.php latest-ko_KR.tar.gz wp
root@kwc:/var/www/html# cd wp => wp 디렉터리로 이동
root@kwc:/var/www/html/wp# ls
index.php wp-blog-header.php wp-includes wp-settings.php
license.txt wp-comments-post.php wp-links-opml.php wp-signup.php
readme.html wp-config-sample.php wp-load.php wp-trackback.php
wp-activate.php wp-content wp-login.php xmlrpc.php
wp-admin wp-cron.php wp-mail.php
root@kwc:/var/www/html/wp# cp wp-config-sample.php wp-config.php => wp-config-sample.php 파일을 wp-config.php 이름으로 복사
root@kwc:/var/www/html/wp# vi wp-config.php => wp-config.php 파일 편집기 실행
다음과 같이 입력 *중요*mysql에서 설정한 것과 동일해야한다.
23 define( 'DB_NAME', 'moneyDB' );
24
25 /** Database username */
26 define( 'DB_USER', 'money' );
27
28 /** Database password */
29 define( 'DB_PASSWORD', 'jj' );
30
31 /** Database hostname */
32 define( 'DB_HOST', 'localhost' );
root@kwc:/var/www/html/wp# systemctl restart apache2
root@kwc:/var/www/html/wp# systemctl restart tomcat9
root@kwc:/var/www/html/wp# systemctl restart mysql
반응형
'[네이버클라우드] AIaaS 개발자 과정 > Linux' 카테고리의 다른 글
[네이버클라우드캠프] 2023.5.3 Linux(2) - Shell Script 실습 (2) | 2023.05.05 |
---|---|
[네이버클라우드캠프] 2023.5.3 Linux(1) - Shell Script (1) | 2023.05.03 |
[네이버클라우드캠프] 2023.5.2 Linux(1) - DNS server (2) | 2023.05.02 |
[네이버클라우드캠프] 2023.5.1 Linux(2) - 네트워크의 이해 (2) | 2023.05.01 |
[네이버클라우드캠프] 2023.5.1 Linux(1) - log 관리, 예약작업(atd), 반복작업(crond) (4) | 2023.05.01 |