728x90
실습 개요
Webserver
- http / https 프로토콜을 이용
- 정적인 페이지 + 동적인 페이지를 제공 (컨텐츠)
- 구성방식 : Apache , Nginx , IIS ...
- 페이지 : html , css , php , python ...
-> LAMP ( Linux + Apache + MariaDB + PHP )
WEB Server
Apache 기본 구성
패키지 설치 및 서비스 시작
# WEB 서버
yum install -y httpd
systemctl enable --now httpd
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=http
echo "test web page" > /var/www/html/index.html
# 다른 가상 머신에서 접속 확인
[root@storage ~]# curl 10.0.2.40
test web page
PHP 구성
추가 패키지 설치
php, php-mbstring, php-pear, php-fpm, php-mysql(DB 연동)
yum install -y php php-mbstring.x86_64 php-fpm php-mysql php-pear
언어를 위한 설정 파일 수정 (DB 연동)
/etc/httpd/conf.d/php.conf
vi /etc/httpd/conf.d/php.conf
4 <FilesMatch \.php$>
5 SetHandler "proxy:fcgi://127.0.0.1:9000"
서비스 재시작 및 활성화
httpd (재시작), php-fpm (활성화)
systemctl restart httpd php-fpm
서비스를 제공할 스크립트 작성
1. /var/www/html/info.php
# /var/www/html/info.php
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
systemctl restart httpd php-fpm
웹 브라우저에서 접속하여 php 기본 페이지 확인: Web 서버 IP/php 설정 파일 이름
여기까지 작업이 완료되었다면 HTTP + PHP 서비스가 정상적으로 작동되고 있음
2. /var/www/html/db.php
1) 사전 작업: DB 서버에 데이터가 저장된 테이블과 사용자 설정 필요
[root@master ~]# mysql -u root -p
MariaDB [(none)]> GRANT select ON *.* TO remote@'%' identified by '123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> SELECT user,host FROM mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| remote | % |
| replica | % |
| root | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+---------+-----------+
MariaDB [(none)]> SELECT * FROM examdb.test_tab;
+------+------+--------+
| id | name | locate |
+------+------+--------+
| 1 | kim | seoul |
+------+------+--------+
1 row in set (0.00 sec)
2) db.php 파일 생성
vi /var/www/html/db.php
<?php
$conn = mysqli_connect('10.0.2.10', 'remote', '123', 'examdb');
$sql = "SELECT * FROM test_tab";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result)){
echo $row['id'].' '.$row['name'].' '.$row['locate'].'<br>';
}
?>
* DB 연결 에러: WEB 서버의 SELinux 설정이 원인
방화벽 확인 (문제 없음)
firewall-cmd --list-services
dhcpv6-client mysql ssh
포트 설정 확인 (문제 없음)
semanage port -l | grep 3306
mysqld_port_t tcp 1186, 3306, 63132-63164
파일 컨텍스트 확인 (문제 없음)
ls -Z /var/lib/mysql
...
drwx------. mysql mysql system_u:object_r:mysqld_db_t:s0 examdb
...
부울 컨텍스트 확인 (문제: off > on)
# WEB 서버에서 작업 필요
semanage boolean -l | grep httpd_can_network_connect_db
httpd_can_network_connect_db (off , off) Allow httpd to can network connect db
semanage boolean -m httpd_can_network_connect_db --on
semanage boolean -l | grep httpd_can_network_connect_db
httpd_can_network_connect_db (on , on) Allow httpd to can network connect db
웹 브라우저에서 접속: WEB 서버의 IP/db.php
728x90
'쿠버네티스 교육 > 프로젝트' 카테고리의 다른 글
220525_3_세미 프로젝트_웹 서비스 구축_로드밸런서 구성 (0) | 2022.05.25 |
---|---|
220525_2_세미 프로젝트_웹 서비스 구축_NFS-WEB 연동 (0) | 2022.05.25 |
220524_2_세미 프로젝트_웹 서비스 구축_DB 서버 이중화 구성-2 (0) | 2022.05.24 |
220524_1_세미 프로젝트_웹 서비스 구축_DB 서버 이중화 구성-1 (0) | 2022.05.24 |
220523_2_세미 프로젝트_웹 서비스 구축_iSCSI 구성-2 (0) | 2022.05.24 |