1. PHP 개발환경 구축
1.1 PHP 웹서버 구축
1.1.1 PHP-아파치(apache) 설치
아파치 설치
# yum -y install httpd httpd-devel
php 설치
# yum -y install php php-mysqlnd
아파치 서비스 시작
# systemctl start httpd
아파치 서비스 상태 확인
# systemctl status httpd
아파치 서비스 자동 시작
# systemctl enable httpd
아파치 환경설정 파일
# gedit /etc/httpd/conf/httpd.conf
42번 라인 : 포트번호 설정(기본값 : 80)
119번 라인 : 홈 디렉토리 설정(기본값 : /var/www/html)
웹브라우저 주소창에 http://localhost 입력
크기가 0인 파일 생성
# touch /var/www/html/info.php
파일 편집
# gedit /var/www/html/info.php
<?php
phpinfo(); // php 환경 설정 정보 확인
?>
http://localhost/info.php
ip 주소 확인
# ifconfig
방화벽에서 포트 개방
# firewall-cmd --add-port=80/tcp --permanent
# firewall-cmd --reload
방화벽 개방 후 윈도우의 웹브라우저에서 실행
http://리눅스의IP주소
http://리눅스의IP주소/info.php
1.2 maria DB 설치
http://mariadb.org
mariadb 클라이언트 설치
# yum -y install mariadb
mariadb 서버 설치
# yum -y install mariadb-server
mariadb 서비스 시작
# systemctl start mariadb.service
mariadb 자동시작
# systemctl enable mariadb.service
maria db 접속
# mysql
> show variables like 'c%';
한글 처리를 위해서는 latin1으로 설정된 부분을 utf-8 로 변경해야 함
# gedit /etc/my.cnf
추가
10번 라인에 추가 → character_set_server = utf8
maria db 서비스 재시작
# systemctl restart mariadb.service
# mysql
> show variables like 'c%';
utf8로 변경된 것 확인
데이터베이스 추가
> create database web;
사용자 계정 추가
create user '아이디'@'호스트' identified by '비밀번호';
> create user 'web'@'%' identified by '1234';
> create user 'web'@'localhost' identified by '1234';
> flush privileges;
권한 부여
grant 권한들 on 데이터베이스.테이블 to '아이디'@'호스트';
> grant all privileges on web.* to 'web'@'%';
> grant all privileges on web.* to 'web'@'localhost';
데이터베이스 목록 확인
>show databases;
사용할 데이터베이스 선택
use 데이터베이스
> use mysql;
user 테이블 확인, 비밀번호가 암호화되어 있음.
> select host, user, password from user;
테이블 목록 확인
> show tables;
외부접속을 위해 방화벽 설정 변경
# firewall-cmd --add-port=3306/tcp --permanent
# firewall-cmd --reload
또는
# firewall-config
윈도우의 heidi sql에서
호스트 : 리눅스의IP주소
사용자 : web
비밀번호 : 1234
포트 : 3306 (기본포트)
쿼리 탭 선택
use web;
create table guestbook (
idx int not null auto_increment primary key,
name varchar(50) not null,
email varchar(50) not null,
passwd varchar(50) not null,
content text,
post_date datetime
);
insert into guestbook (name, email, passwd, content, post_date)
values ('kim', 'kim@nate.com', '1234', '방명록...', now());
1.3 FTP 서버 구축
1.3.1 FTP : File Transfer Protocol