페이지 정보
본문
웹서버 구축을 하기위해 APM [Apache, MySQL(MariaDB), PHP] 3개의 패키지가 설치가 되야합니다.
웹을 개발할려는 환경에따라 버전에 맞게 RPM(소스파일로 설치)하는게 좋지만 크게 영향을 받지 않는다면 일반적으로 YUM(자동설치)으로 쉽게 설치할수 있습니다.
■ [APM] Apache, PHP, MariaDB Install(설치) Guide
1. 의존성 라이브러리 설치
□ 아래는 라이브러리가 설치되어있는지 확인해보는 부분이며 APM에 꼭 필요한 패키지가 있습니다.
BASH
[root@localhost ~]# rpm -qa libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel
freetype-devel-2.8-12.el7_6.1.x86_64
libjpeg-turbo-1.2.90-6.el7.x86_64
libpng-devel-1.5.13-7.el7_2.x86_64
libjpeg-turbo-devel-1.2.90-6.el7.x86_64
libpng-1.5.13-7.el7_2.x86_64
gdbm-devel-1.10-8.el7.x86_64
gcc-4.8.5-36.el7_6.2.x86_64
gcc-c++-4.8.5-36.el7_6.2.x86_64
freetype-2.8-12.el7_6.1.x86_64
gd-devel-2.0.35-26.el7.x86_64
□ Yum 으로 아래의 필요한 라이브러리를 한번에 전부 설치합니다. (한번에 관련된 의존성도 같이 설치가 됩니다.)
BASH
[root@localhost ~]# yum install libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel
.
.
==================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================
Installing:
freetype-demos x86_64 2.8-14.el7 base 188 k
gd-progs x86_64 2.0.35-26.el7 base 36 k
libjpeg-turbo-static x86_64 1.2.90-8.el7 base 120 k
libjpeg-turbo-utils x86_64 1.2.90-8.el7 base 77 k
libpng-static x86_64 2:1.5.13-7.el7_2 base 92 k
libpng12 x86_64 1.2.50-10.el7 base 171 k
libpng12-devel x86_64 1.2.50-10.el7 base 111 k
Updating:
freetype x86_64 2.8-14.el7 base 380 k
freetype-devel x86_64 2.8-14.el7 base 447 k
gcc x86_64 4.8.5-39.el7 base 16 M
gcc-c++ x86_64 4.8.5-39.el7 base 7.2 M
libjpeg-turbo x86_64 1.2.90-8.el7 base 135 k
libjpeg-turbo-devel x86_64 1.2.90-8.el7 base 99 k
Updating for dependencies:
cpp x86_64 4.8.5-39.el7 base 5.9 M
gcc-gfortran x86_64 4.8.5-39.el7 base 6.7 M
gcc-gnat x86_64 4.8.5-39.el7 base 13 M
gcc-go x86_64 4.8.5-39.el7 base 5.9 M
gcc-objc x86_64 4.8.5-39.el7 base 5.7 M
gcc-objc++ x86_64 4.8.5-39.el7 base 6.1 M
gcc-plugin-devel x86_64 4.8.5-39.el7 base 828 k
libgcc x86_64 4.8.5-39.el7 base 102 k
libgfortran x86_64 4.8.5-39.el7 base 300 k
libgnat x86_64 4.8.5-39.el7 base 967 k
libgnat-devel x86_64 4.8.5-39.el7 base 2.7 M
libgo x86_64 4.8.5-39.el7 base 2.2 M
libgo-devel x86_64 4.8.5-39.el7 base 230 k
libgomp x86_64 4.8.5-39.el7 base 158 k
libobjc x86_64 4.8.5-39.el7 base 80 k
libquadmath x86_64 4.8.5-39.el7 base 190 k
libquadmath-devel x86_64 4.8.5-39.el7 base 53 k
libstdc++ x86_64 4.8.5-39.el7 base 305 k
libstdc++-devel x86_64 4.8.5-39.el7 base 1.5 M
Transaction Summary
========================================================================================================
Install 7 Packages
Upgrade 6 Packages (+19 Dependent packages)
Total download size: 78 M
Is this ok [y/d/N]: y
.
.
Installed:
freetype-demos.x86_64 0:2.8-14.el7 gd-progs.x86_64 0:2.0.35-26.el7 libjpeg-turbo-static.x86_64 0:1.2.90-8.el7
libjpeg-turbo-utils.x86_64 0:1.2.90-8.el7 libpng-static.x86_64 2:1.5.13-7.el7_2 libpng12.x86_64 0:1.2.50-10.el7
libpng12-devel.x86_64 0:1.2.50-10.el7
Updated:
freetype.x86_64 0:2.8-14.el7 freetype-devel.x86_64 0:2.8-14.el7 gcc.x86_64 0:4.8.5-39.el7 gcc-c++.x86_64 0:4.8.5-39.el7
libjpeg-turbo.x86_64 0:1.2.90-8.el7 libjpeg-turbo-devel.x86_64 0:1.2.90-8.el7
Dependency Updated:
cpp.x86_64 0:4.8.5-39.el7 gcc-gfortran.x86_64 0:4.8.5-39.el7 gcc-gnat.x86_64 0:4.8.5-39.el7
gcc-go.x86_64 0:4.8.5-39.el7 gcc-objc.x86_64 0:4.8.5-39.el7 gcc-objc++.x86_64 0:4.8.5-39.el7
gcc-plugin-devel.x86_64 0:4.8.5-39.el7 libgcc.x86_64 0:4.8.5-39.el7 libgfortran.x86_64 0:4.8.5-39.el7
libgnat.x86_64 0:4.8.5-39.el7 libgnat-devel.x86_64 0:4.8.5-39.el7 libgo.x86_64 0:4.8.5-39.el7
libgo-devel.x86_64 0:4.8.5-39.el7 libgomp.x86_64 0:4.8.5-39.el7 libobjc.x86_64 0:4.8.5-39.el7
libquadmath.x86_64 0:4.8.5-39.el7 libquadmath-devel.x86_64 0:4.8.5-39.el7 libstdc++.x86_64 0:4.8.5-39.el7
libstdc++-devel.x86_64 0:4.8.5-39.el7
Complete!
2. [APM] Apache, PHP, MariaDB 설치 [순서는 : Apache, Maria, PHP 진행]
□ 아파치(Apache) 설치
BASH
[root@localhost ~]# yum install httpd
.
.
==================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================
Installing:
httpd x86_64 2.4.6-93.el7.centos base 2.7 M
Installing for dependencies:
httpd-tools x86_64 2.4.6-93.el7.centos base 92 k
mailcap noarch 2.1.41-2.el7 base 31 k
Transaction Summary
==================================================================================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 2.8 M
Installed size: 9.6 M
Is this ok [y/d/N]: y
.
.
Installed:
httpd.x86_64 0:2.4.6-93.el7.centos
Dependency Installed:
httpd-tools.x86_64 0:2.4.6-93.el7.centos mailcap.noarch 0:2.1.41-2.el7
Complete!
□ 마리아(Maria DB) 설치
[root@localhost ~]# yum install mariadb mariadb-server
.
.
==================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================
Installing:
mariadb x86_64 1:5.5.65-1.el7 base 8.7 M
mariadb-server x86_64 1:5.5.65-1.el7 base 11 M
Installing for dependencies:
mariadb-libs x86_64 1:5.5.65-1.el7 base 759 k
perl-DBD-MySQL x86_64 4.023-6.el7 base 140 k
Transaction Summary
==================================================================================================================================================
Install 2 Packages (+2 Dependent packages)
Total download size: 21 M
Installed size: 112 M
Is this ok [y/d/N]: y
.
.
Installed:
mariadb.x86_64 1:5.5.65-1.el7 mariadb-server.x86_64 1:5.5.65-1.el7
Dependency Installed:
mariadb-libs.x86_64 1:5.5.65-1.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7
Complete!
□ PHP 설치
BASH
[root@localhost ~]# yum install php php-mysql php-mbstring php-pdo php-gd
.
.
==================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================
Installing:
php x86_64 5.4.16-48.el7 base 1.4 M
php-gd x86_64 5.4.16-48.el7 base 128 k
php-mbstring x86_64 5.4.16-48.el7 base 506 k
php-mysql x86_64 5.4.16-48.el7 base 102 k
php-pdo x86_64 5.4.16-48.el7 base 99 k
Installing for dependencies:
libzip x86_64 0.10.1-8.el7 base 48 k
php-cli x86_64 5.4.16-48.el7 base 2.7 M
php-common x86_64 5.4.16-48.el7 base 565 k
t1lib x86_64 5.1.2-14.el7 base 166 k
Transaction Summary
==================================================================================================================================================
Install 5 Packages (+4 Dependent packages)
Total download size: 5.7 M
Installed size: 19 M
Is this ok [y/d/N]: y
.
.
Installed:
php.x86_64 0:5.4.16-48.el7 php-gd.x86_64 0:5.4.16-48.el7 php-mbstring.x86_64 0:5.4.16-48.el7 php-mysql.x86_64 0:5.4.16-48.el7
php-pdo.x86_64 0:5.4.16-48.el7
Dependency Installed:
libzip.x86_64 0:0.10.1-8.el7 php-cli.x86_64 0:5.4.16-48.el7 php-common.x86_64 0:5.4.16-48.el7 t1lib.x86_64 0:5.1.2-14.el7
Complete!
□ 설치 확인 및 버전확인
BASH
[root@localhost ~]# rpm -qa httpd mariadb php
mariadb-5.5.65-1.el7.x86_64
php-5.4.16-48.el7.x86_64
httpd-2.4.6-93.el7.centos.x86_64
■ [APM] Apache, PHP, MariaDB config(설정) 및 구동
1. 아파치(Apache) 설정 및 구동
□ 기본설정
BASH
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
.
.
62 # User/Group: The name (or #number) of the user/group to run httpd as.
63 # It is usually good practice to create a dedicated user and group for
64 # running httpd, as with most system services.
65 #
66 User nobody (apache → nobody 변경)
67 Group nobody (apache → nobody 변경)
.
.
93 # If your host doesn't have a registered DNS name, enter its IP address here.
94 #
95 #ServerName www.example.com:80
96 ServerName 192.168.223.129:80 (도메인 또는 해당서버 IP 입력 추가)
.
.
:wq (저장)
[참고]
■ apache → nobody 변경
ROOT 권한으로 실행된 아파치의 하위 프로세스를 이곳에서 지정한 사용자로 실행한다는 의미,
기본값으로 apache 또는 daemon 으로 되어있지만 대부분 nobody로 변경하여 이용한다. 약간 보안적인 의미를 포함
■ ServerName
자기 서버가 이 도메인을 사용한다는것을 알리기 위한 수단, 예를 들어
ServerName www.test.com:80 → 홈페이지 접속시 해당 도메인(http://www.test.com)으로 연결
ServerName 192.168.122.128:80 → 홈페이지 접속시 해당 도메인((http://192.168.122.128)으로 연결 (도메인이 없을경우 IP 입력)
■ IP는 자기서버 IP 셋팅
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.223.129 (이부분) netmask 255.255.255.0 broadcast 192.168.223.255
□ 방화벽 설정
환경설정이 완료가 되었으니 웹을 열기위해선 방화벽 80번 포트를 오픈해야합니다.
BASH
[root@localhost ~]# vi /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT (추가)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
:wq (저장)
[참고]
■ iptables 에서 순서는 매우 중요합니다.
일반적으로 적용되는 순서는 위에서부터 아래로 순차적으로 읽어옵니다.
예를들어 추가한 맨 아래의 라인쪽에 추가를 하게되면 적용이 정상적으로 안됩니다.
이해가 안되실경우는 스크린샷 그대로 따라진행해주세요.
□ 방화벽 재시작
BASH
[root@localhost ~]# service iptables restart
Redirecting to /bin/systemctl restart iptables.service
만약 재시작시 오류가 난다면 iptables 규칙을 저장하고
service iptables save
작동 중인 firewalld 데몬을 중지 시킨 후 재부팅 시에도 올라오지 않도록 설정한다.
systemctl stop firewalld
systemctl mask firewalld
이후 iptables 서비스 데몬이 재부팅시에 자동으로 올라오도록 만들자
systemctl enable iptables
□ 적용 확인
BASH
[root@localhost ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 (확인완료)
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
□ 아파치 시작
BASH
[root@localhost ~]# systemctl start httpd
□ 부팅후 자동 실행 설정
[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
□ 부팅후 자동 실행 설정(해제)
[root@localhost ~]# systemctl disable httpd
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
□ Service 명령어 이용 가능
[root@localhost ~]# service httpd start(stop)
□ 아파치 구동 확인
BASH
[root@localhost ~]# ps -ef |grep httpd
root 17652 1 0 13:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 17654 17652 0 13:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 17655 17652 0 13:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 17656 17652 0 13:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 17657 17652 0 13:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 17658 17652 0 13:46 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 17715 2983 0 13:51 pts/1 00:00:00 grep --color=auto httpd
□ 실제 웹 구동 테스트 확인
웹 브라우저에 설정한 아이피주소를 입력하고 접속 후 TEST 페이지가 나타난다면 정상
2. PHP 환경설정 및 구동(경로)
□ 기본설정
BASH
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
.
.
161 # DirectoryIndex: sets the file that Apache will serve if a directory
162 # is requested.
163 #
164 <IfModule dir_module>
165 DirectoryIndex index.html index.htm index.php (추가)
166 </IfModule>
.
.
270 # AddType allows you to add to or override the MIME configuration
271 # file specified in TypesConfig for specific file types.
272 #
273 #AddType application/x-gzip .tgz
274 AddType application/x-httpd-php .php .html .htm .inc (추가)
275 AddType application/x-httpd-php-source .phps (추가)
:wq (저장)
[참고]
■ 실제 PHP환경설정을 관리하는 파일은 아래의 경로입니다.
[root@localhost ~]# vi /etc/php.ini
위 httpd.conf 쪽에 셋팅하는건 아파치에 php 관련 처리를 할수 있게 추가를 하는 부분입니다.
php.ini 파일설정은 사용할려는 웹환경에 맞게튜닝을 해야하지만 현재는 기본셋팅으로 갑니다.
□ PHP 적용
Yum 설치시 html 업로드 기본 디렉토리는 아래와 같습니다.
BASH
[root@localhost ~]# cd /var/www/html/
해당 경로에서 PHP의 정보를 보여주는 함수의 파일을 하나 생성합니다.
BASH
[root@localhost html]# vi /var/www/html/phpinfo.php
<?php phpinfo(); ?>
:wq (저장)
[root@localhost html]# ls (파일생성 확인)
phpinfo.php
PHP 환경설정을 적용하기위해 아파치(Apache)도 한번 재시작을 합니다.
BASH
[root@localhost html]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
항상 아파치(Apache) 구동이 제대로 되고 있는지 확인합니다.
BASH
[root@localhost html]# ps -ef | grep httpd
root 18135 1 0 16:57 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 18137 18135 0 16:57 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 18138 18135 0 16:57 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 18139 18135 0 16:57 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 18140 18135 0 16:57 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 18141 18135 0 16:57 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 18143 2983 0 16:58 pts/1 00:00:00 grep --color=auto httpd
□ PHP 적용 확인 테스트
개인 PC에서 인터넷창에 접속 테스트를 진행하면 됩니다.
이전 경로에 생성하였던 경로를 입렵합니다. URL : http://아이피주소/phpinfo.php
댓글목록
등록된 댓글이 없습니다.