이것저것

[CentOS7] CentOS7에 APM 설치하기 & PHP 로그인

pental 2022. 6. 8. 16:22
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
yum -y install epel-release

최신 phpMyAdmin 버전을 설치하기 위해 EPEL repo 추가한다.

( default repo에는 APM 구축에 필요한phpMyAdmin 없어서 설치하는 것이다.)


Maria DB 설치하기

yum -y install mariadb-server mariadb
systemctl restart mariadb
systemctl enable mariadb
systemctl status mariadb


Apache 설치하기

yum -y install httpd
systemctl restart httpd
systemctl enable httpd
systemctl status httpd


방화벽 열기

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
firewall-cmd --list-all

http와 https 가 정상적으로 방화벽이 열린것을 확인 할 수 있다.

그후 할당된 아이피 주소를 인터넷을 열어 확인해, Testing 123  문구(아래 사진)를 확인하면 아파치 설치가 완료된 상태이다.


PHP 7.3 설치

rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum update

이 과정에서는 시간이 많이 소요 될 수도 있으니 인내심을 가지고 기다리도록 하자. 해당 구문은 yum-util을 설치해 특정 php 버전을 설치할 수 있도록 하는 과정이다.

yum-config-manager --enable remi-php73
yum -y install php php-opcache
systemctl restart httpd

PHP 테스트

vi /var/www/html/info.php

/vi 편집기를 통해 a 키를 눌러 편집모드로 변환후 <?php phpinfo() ?>  입력후 ESC 누른후 :wq 입력해 저장해 나간다.


그후 [서버주소]/info.php  들어가 php version 제대로 나오는지 확인한다.

 


PHP에 Mysql 설치

yum -y install php-mysqlnd php-pdo
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-soap curl curl-devel

systemctl restart httpd
systemctl status httpd


PHPMYADMIN 설치

yum -y install phpMyAdmin
vi /etc/httpd/conf.d/phpMyAdmin.conf

 

해당 부분에 #을 통해 주석처리하고 Require all granted를 새로 추가해준다.

systemctl restart httpd

[서버주소]/phpmyadmin 으로 접속해 확인한다.

이제 데이터 베이스에  계정 추가및 데이터베이스 추가를 해야한다. 

mysql_secure_installation

현재 비밀번호가 없기 때문에 엔터를 눌러 접속한다.

새로운 비밀번호를 작성하고,  Y 눌러 초기 설정을 마친다.

systemctl enable mariadb

부팅시 mysql을 자동 실행하기 위해서 enable을 통해서 자동 실행을 설정한다.

다시 phpmyadmin 접속해, 설정한 비밀번호로 들어간다.

로그인 후 NEW 버튼을 눌러 새로운 데이터 베이스를 생성한다.

저같은 경우는 user라는 데이터베이스 이름을 사용하고 데이터베이스를 생성한다.

테이블명도 똑같이 user 작성하고, 인덱스, 아이디, 비밀번호를 입력 받아야 하므로 컬럼수는 3으로 지정하고, 각각의 필드를 다음과 생성하고 저장한다.


로그인 페이지 제작  연결

삽입 버튼을 눌러 관리자 계정을 하나 생성합니다.

 

admin / 1234  지정했고, 삽입시 index 필드는 공백으로 놔두고, 저장 버튼을 누르면 된다.

connect.php 파일을 생성하기 위해서, 다음과 같이 입력합니다.

vi /var/www/html/connect.php

 

<?php
    $db_host = "localhost";
    $db_user = "root";
    $db_password = “설정한 비밀번호를 입력해주세요”;
    $db_name = "user";

    $con = new mysqli($db_host, $db_user, $db_password, $db_name);
    if ($con->connect_errno) { die('Connection Error : '.$con->connect_error); } 
?>

index 파일을 생성한다.

vi /var/www/html/index.php
<?php
session_start(); // 세션
if($_SESSION['id']==null) { // 로그인 하지 않았다면
?>

<center><br><br><br>
<form name="login_form" action="login_check.php" method="post"> 
   ID : <input type="text" name="id"><br> 
   PW:<input type="password" name="pw"><br><br>
   <input type="submit" name="login" value="Login"> 
</form>
</center>

<?php
}else{ // 로그인 했다면
   echo "<center><br><br><br>";
   echo $_SESSION['name']."(".$_SESSION['id'].")님이 로그인 하였습니다.";
   echo "&nbsp;<a href='logout.php'><input type='button' value='Logout'></a>";
   echo "</center>";
}
?>

login_check.php 파일

vi /var/www/html/login_check.php
<?php
session_start();
include ("connect.php"); 
$id = $_POST['id'];
$pw = $_POST['pw']; 
$query = "select * from user where id='$id'and password='$pw'";
$result = mysqli_query($con, $query); 
$row = mysqli_fetch_array($result);

if($id==$row['id'] && $pw==$row['password’]){ 
        $_SESSION['id']=$row['id'];
        $_SESSION['name']=$row['id'];
        echo "<script>location.href='index.php';</script>";
}else{
        echo "<script>window.alert('invalid username or password');</script>"; 
        echo "<script>location.href='index.php';</script>";
}
?>

logout.php

vi /var/www/html/logout.php
<?php
session_start(); // 세션
if($_SESSION['id']!=null){
   session_destroy();
}
echo "<script>location.href='index.php';</script>";
?>

다음과 같은 파일들이 존재하면 된다.

사용하는 서버주소로 들어가서 비번이 틀리면 

비번이 맞으면 

지금까지 CentOS7 에 APM 설치후, PHP 를 통해 로그인 하는 과정을 작성하였습니다.

다른 문의나 오탈자는 댓글을 통해서 알려주세요.

감사합니다.