✔️ apt 업데이트하기
sudo apt update
✔️ 우분투에 apache2, mariadb, php library 설치하기
sudo apt-get install -y apache2 mariadb-server php libapache2-mod-php php-mysql
1) apache2 : 아파치 설치를 위한 패키지
2) mariadb-server : mariadb 설치를 위한 패키지로 mysql과 동일!
3) php : php 설치를 위한 패키지로 안했을 시 설치
4) libapace2-mod-php : apache2와 php를 연동하는 모듈을 위한 설
5) php-mysql : php와 mariadb(mysql) 연동하는 모듈을 위한 설치
apache2를 정상 설치하면,
기본 경로(예를 들면 localhost)에서 다음과 같은 화면이 뜨게 되고,
sudo systemctl status apache2
위 명령어로 시스템 상태를 확인했을 때, active (running) 상태이면 정상이다!
✔️ mariadb 설정하기
sudo mysql_secure_installation
다음 명령을 통해서 몇가지 mariadb 설정을 진행해준다.
1) Enter current password for root (enter for none): 비밀번호 없으므로 엔터!
2) Set root password? [Y/n] : root 비밀번호 설정해야 하므로 Y
나머지 4개의 설정은 일반적으로 Y로 진행하여 차후에 커스텀 설정하도록 하자.
✔️ mysql 진입하기
mysql -u root -p 이후 위에서 설정한 패스워드를 입력하면
정상적으로 진입할 수도 있고, Access denied for user 'root'@'localhost' 오류를
만날 수도 있다.
다음 오류를 만나게 되면 다음과 같이 해결하자.
use mysql;
select User, Host, plugin from mysql.user;
# root plugin이 _socket으로 설정되어있는 것을 확인하고,
해당 설정을 mysql_native_password로 변경해주면 된다.
update user set plugin='mysql_native_password' where user='root';
flush privileges;
select user, host, plugin from user;
이후 mysql -u root -p 명령어를 재시도하여 로그인하면
정상적으로 접근에 성공할 수 있다.
✔️ 외부에서 mysql 접근을 위한 설정
sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
외부에서 데이터베이스의 접근을 위해서 다음 코드를 주석으로 설정하거나 삭제한다.
> bind-address = 127.0.0.1 주석 또는 삭제
> 혹은 bind-address = 0.0.0.0 으로 변경한다.
sudo systemctl restart mariadb
이후 위의 명령어로 서비스를 재시작해준다.
✔️ database 생성하고 테이블 만들기
mysql -u root -p
create database 데이테베이스명
use 데이터베이스명
database를 생성하는 명령어를 통해서 생성하고
해당 데이터베이스에 진입하여준다.
create table 테이블명(
idx int primary key auto_increment,
id varchar(300) unique not null,
password varchar(300) not null,
...
regtime datatime default now()
);
다음과 같이 자신이 사용할 테이블을 생성하여준다.
✔️ database 연동 확인하기
/var/www/html 경로에서 dbconn.php를 새로 만들어준 뒤,
<?php
$mysql_hostname = 'localhost';
$mysql_username = 'root';
$mysql_password = '루트패스워드';
$mysql_port = '3306';
$mysql_charset = 'utf8';
$connect = new mysqli($mysql_hostname, $mysql_username, $mysql_password);
var_dump($connect);
if($connect->connect_errno) {
echo 'fail : '.$connect->connect_error.'';
} else {
echo 'success.';
}
?>
다음과 같이 작성해준다.
그리고 /dbconn.php에 들어가서 정상적으로 var_dump에 해당하는 내용과
success가 페이지에 표시되는지 확인이 되면 성공이다.
이로써 데이터베이스와 apache를 연동하고 웹 서버를 간단하게 열고,
웹을 구축할 수 있게 되었다. 간단하게 쇼핑몰을 제작해보고,
해당 쇼핑몰에 공격 및 방어를 시도해보는 공부를 진행해보려고 한다. 💪
'개발(dev) > php' 카테고리의 다른 글
[php] 게시글을 위한 DB 테이블 생성하기 (0) | 2022.12.20 |
---|---|
[php] 회원가입을 위한 DB 테이블 생성하고 연결하기 (0) | 2022.12.20 |
[php] 우분투에 php 설치 및 vscode 연동하기 (0) | 2022.12.13 |