안녕하세요, 아글입니다.
오늘은
아파치 서버 서비스 및 PHP 사용 에 대해서 알아보겠습니다.
아파치 서비스를 시작하는 명령어
#systemctl start httpd
[root@test www]# systemctl start httpd
Apache 서버의 httpd 데몬을 실행시킵니다.
* 데몬의 개념은 아래 링크를 통해 확인이 가능합니다!
https://wowy0211.tistory.com/16
아파치 서비스가 서버 부팅 시 항상 올라오도록(서비스가 시작되도록) 하는 명령어
#systemctl enable httpd
[root@test www]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
명령어 enable 을 이용하여 Apache 서비스가 부팅 이후 자동으로 시작하게 설정합니다.
multi-user.target.wants에 httpd 서비스 파일인 httpd.service에 심볼릭 링크가 생성됩니다. 참고로 이 때, multi-user.target 은 run level 3(텍스트 모드)로 서버를 사용할 때 설정되는 Systemd Target입니다.
이 말이 이해되지 않으시는 분들은 그냥 '부팅 이후 자동으로 Apache 서비스가 실행되도록 한다' 로만 이해하시면 됩니다.
Apache 서비스의 상태를 확인하는 명령어
#systemctl status httpd
[root@test www]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-17 12:10:46 KST; 1 weeks 3 days ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 12554 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─11187 /usr/sbin/httpd -DFOREGROUND
├─11188 /usr/sbin/httpd -DFOREGROUND
├─11189 /usr/sbin/httpd -DFOREGROUND
├─11190 /usr/sbin/httpd -DFOREGROUND
├─11191 /usr/sbin/httpd -DFOREGROUND
└─12554 /usr/sbin/httpd -DFOREGROUND
Active : active (running)이라는 문구를 봤을 때, Apache 웹 서버가 잘 실행된 것을 볼 수 있습니다.
우리는 우리 서버를 이용해 바깥 세상(크롬 등 웹 브라우저)과 우리 서버를 연결할 프로그램을 실행시킨 것입니다.
그럼 웹서버를 껐을 땐 status가 어떻게 나오는 지 볼까요?
아파치 서비스를 중단하는 명령어
#systemctl stop httpd
[root@test www]# systemctl stop httpd
중단 후 아파치 웹서버 상태 확인
#systemctl status httpd
[root@test www]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Tue 2023-02-28 08:28:20 KST; 2s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 13090 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 12554 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS)
Main PID: 12554 (code=exited, status=0/SUCCESS)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Feb 28 08:28:19 techcs7514.cafe24.com systemd[1]: Stopping The Apache HTTP Server...
Feb 28 08:28:20 techcs7514.cafe24.com systemd[1]: Stopped The Apache HTTP Server.
Active : inactive (dead) 로 옆에 언제 웹서버가 죽었는 지(중단 됐는 지) 시간과 함께 상태가 출력되네요.
명령어 netstat을 활용한 httpd 데몬이 사용하는 포트와 프로토콜, PID를 확인
[root@test www]# netstat -natlp |grep httpd
tcp6 0 0 :::80 :::* LISTEN 13284/httpd
httpd 데몬이 사용하는 포트와 프로토콜, PID 확인이 가능하네요.
tcp프로토콜을 이용하고 있고, 80번 포트, PID는 13284가 부여돼있습니다.
명령어 lsof를 이용한 명령어 - 서비스 확인
#lsof -i tcp:80
[root@test www]# lsof -i tcp:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 13284 root 4u IPv6 42143042 0t0 TCP *:http (LISTEN)
httpd 13285 apache 4u IPv6 42143042 0t0 TCP *:http (LISTEN)
httpd 13286 apache 4u IPv6 42143042 0t0 TCP *:http (LISTEN)
httpd 13287 apache 4u IPv6 42143042 0t0 TCP *:http (LISTEN)
httpd 13288 apache 4u IPv6 42143042 0t0 TCP *:http (LISTEN)
httpd 13289 apache 4u IPv6 42143042 0t0 TCP *:http (LISTEN)
lsof 명령어를 통해 포트 80번을 확인하면 httpd 명령어가 http 서비스를 제공하는 것을 확인 가능합니다.
이제는 아파치 웹서버와 함께 사용할 PHP를 설치해보겠습니다.
*PHP란 서버사이드 스크립트 언어 라고 하며, 일반적으로 "웹 서버는 정적인 페이지만 출력이 가능한 반면, PHP와 같은 서버사이드 스크립트 언어를 통해 동적 페이지를 표현이 가능하다" 라는 정도로 참고해주시기 바랍니다.
명령어 yum을 이용해 php패키지를 설치
#yum install php php-per -y
[root@test www]# yum install php php-pear -y
명령어 rpm 을 이용해 php 패키지 설치 여부 확인. 이 때 의존성 있는 패키지들도 같이 확인된다.
#rpm -qa |grep php
[root@test www]# rpm -qa |grep php
php81-runtime-8.1-1.el7.remi.x86_64
php70w-cli-7.0.33-1.w7.x86_64
php81-php-cli-8.1.11-1.el7.remi.x86_64
php70w-common-7.0.33-1.w7.x86_64
php70w-mysqlnd-7.0.33-1.w7.x86_64
php81-8.1-1.el7.remi.x86_64
php70w-pdo-7.0.33-1.w7.x86_64
php70w-7.0.33-1.w7.x86_64
php81-php-common-8.1.11-1.el7.remi.x86_64
php 설정 파일인 /etc/php.ini 에서 자신이 사용하는 시간 대를 설정
; http://php.net/date.timezone
date.timezone =Asia/Seoul
date.timezone 값이 비어있으면 실제 시간이 비정상적으로 출력될 수 있기 때문에 Aisa/Seoul을 반드시 넣어줍시다.
date.timezone이 비어있을 때 어떻게 출력이 되는 지, 어떻게 설정하는 지 등은 아래 포스팅을 통해 확인 가능합니다!
https://wowy0211.tistory.com/24
php에 관련된 설정을 정의하는 파일
/etc/httpd/conf.d/php.conf
[root@test www]# ls /etc/httpd/conf.d/php.conf
/etc/httpd/conf.d/php.conf
이 파일은 php패키지를 설치하면 사용할 수 있습니다.
php를 Apache 서버에서 사용하기 위해 필요한 모듈을 정의한 파일
/etc/httpd/conf.modules.d/10-php.conf
[root@test www]# ls /etc/httpd/conf.modules.d/10-php.conf
/etc/httpd/conf.modules.d/10-php.conf
이 파일도 php 패키지를 설치해야 사용 가능합니다.
PHP가 사용하는 모듈 이름
/etc/httpd/modules/libphp7.so
[root@test www]# ls -l /etc/httpd/modules/libphp7.so
-rwxr-xr-x 1 root root 4584776 Dec 7 2018 /etc/httpd/modules/libphp7.so
저는 PHP7 버전을 설치했기 때문에 libphp7.so 라는 이름의 so파일 모듈이 생성되었습니다.
관련 설정을 적용시키려면 Apache 웹서버를 재시작해주어야 합니다.
[root@test www]# systemctl enable httpd
오늘은 이렇게 아파치 웹서버 서비스를 다루는 명령어와 관련해서 자주 쓰이는 서버 사이드 스크립트 언어인 PHP를 설치하고 관련 위치, 파일에 대해서 알아보았습니다. 이어지는 포스팅은 Apache CGI와 UserDir 사용 방법에 대해서 알아보겠습니다.
https://wowy0211.tistory.com/41
'운영체제 > Linux' 카테고리의 다른 글
[아파치]CGI 와 UserDir 사용 (feat. 스크립트 언어 루비, 파이썬) (0) | 2023.03.02 |
---|---|
cut 명령어에 대해서 (0) | 2023.03.01 |
Apache 웹서버에 대해서(feat. httpd.conf) (0) | 2023.02.27 |
passwd 명령어에 대해서 (0) | 2023.02.26 |
커널 컴파일에 대해서 (0) | 2023.02.26 |