Centos7에서 웹서버 구축 [APM] - YUM설치

그누위즈 20-05-21 11:44 4,052

웹서버 구축을 하기위해 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

댓글 0
상단으로