[ Linux ] 서버 APM (Apache, PHP, MySQL) 설치

ma.caron_g·2022년 10월 11일
0

Linux

목록 보기
2/7
post-thumbnail

참고 사이트

[ 서버 접속하기 ]

$ SSH [계정]@[IP]

[ 설치 목록 업데이트 ]

우선 다운 받기 전 최신 목록을 다운 받기 위해 apt를 업데이트 해줍니다.

$ sudo apt-get update

동작이 완료되면 최신 버전의 APM들을 다운 받아봅시다.

[ A. Apache 설치 ]

$ sudo apt-get install apache2

진행 중
작업 이 후, 용량KB을 사용합니다. 계속 하시겠습니까? [Y/n] 라고 물어보는데 Y를 눌러 계속 진행해줍니다.

설치가 완료되면

$ apache2 -v

를 입력하여 현재 설치된 아파치2 버전을 확인할 수 있습니다.

잘 설치됐습니다.

[ 아파치 서버 관리 ]

#아파치 서버 시작
$ systemctl start apache2

#아파치 서버 상태
$ systemctl start apache2

#아파치 서버 재시작
$ systemctl start apache2

#아파치 서버 중지
$ systemctl stop apache2

systemctl [행동] [행동시킬 프로그램]으로 아파치 서버를 관리할 수 있습니다.


혹은
#아파치 서버 시작
$ sudo service apache2 start

#아파치 서버 재시작
$ sudo service apache2 restart 

#아파치 서버 중지
$ sudo service apache2 stop


아파치 서버를 실행시키고 localhost에 접속하면

아파치2 디폴트 페이지에 접근한 것을 볼 수 있습니다.

[ Apache 설정 ]

$ cd /etc/apache2
$ sudo vi apache2.conf

입력하여

:set number를 입력하여 라인을 보이게 해주고 170번 줄의 블럭을 변경합니다.

<Directory /var/www/>
         #Options Indexes FollowSymLinks
         Options MultiViews FollowSymLinks
         AllowOverride None
         Require all granted
</Directory>

171번의 Options Indexes FollowSymLinks를 #으로 주석시키고, Options MultiViews FollowSymLinks 값을 넣어줍니다.

:를 누르고 wq를 입력하여 저장 후 종료합니다.
:wq

[ P. PHP 설치 ]

$ sudo apt install php

혹은

$ sudo apt install php7.4 php7.4-cli \
php7.4-fpm php7.4-bcmath php7.4-bz2 \
php7.4-common php7.4-curl php7.4-dba \
php7.4-gd php7.4-json php7.4-mbstring \
php7.4-opcache php7.4-readline php7.4-soap \
php7.4-xml php7.4-xmlrpc php7.4-zip \
php7.4-ctype php7.4-pdo php7.4-redis \
php7.4-mysql php7.4-imagick php7.4-intl \
php7.4-mysqlnd php7.4-gmp \
php7.4-geoip php7.4-dev -y

를 이용하여 여러 기능을 한 번에 다운 받습니다.



[ PHP-FPM ]

PHP와 Apache와의 연동을 위한 설정입니다.

Apache의 가장 큰 장점 - 플러그인 모듈을 사용한 아주 다양한 기능을 사용 할 수 있다는 점.

다만 많이 추가된 모듈과 사용 환경에 따라 process 기반의 prefork 방식에 의해서 동접자에 따라서 메모리 사용률이 높아지거나 성능에 대한 degrade가 발생.


prefork란? 한 자식 프로세스당 하나의 쓰레드를 사용하는 방법

  • 기본 사용 메모리가 worker보다 높음.
  • 프로세스간 메모리를 공유하지 않는 독립 형태

worker란? 한 자식 프로세스당 여러 개의 쓰레드를 사용하는 방법으로 동시 접속자가 많은 사이트에 적합.


출처 : https://itmore.tistory.com/entry/%EC%95%84%ED%8C%8C%EC%B9%98-prefork-worker-%EB%9E%80

이러한 문제를 해결하기 위해 PHP를 Apache와 별도로 분리하여 Apache의 메모리 사용량이나 CPU 사용량 등의 부하를 분산.

[ pool.d/www.conf 수정 ]

$ cd /etc/php/7.4/fpm/pool.d/
$ sudo vi www.conf

명령을 입력하여 www.conf를 엽니다.

:을 누르고 set number를 입력하여 라인 넘버(36)에 listen 값을 접속을 받는 방식을 설정하는 부분으로 Socket(UDS)방식을 사용하거나 IP방식으로 사용해야합니다.

본인의 IP로 지정해줍니다.

/을 누르고 listen을 검색하고 n키를 누르면서 찾아도 됩니다.


[ phpinfo.php 생성 ]

php가 Apache와 정상 작동하는지 보기 위하여 행동하는 단계입니다.

$ cd /var/www/html
$ sudo vi phpinfo.php

vi 대신 touchvim으로 작성해도 됩니다.

php의 정보를 가져오기 위해 php코드를 작성해줍니다.

i를 눌러 INSERT모드로 전환하고,

<?php
	phpinfo();
?>

입력하고 저장 후 종료합니다.(:wq)

그리고 Apache를 재시작 후 사용자의 localhost로 접속하여 결과를 확인합니다.

$ sudo systemctl restart apache2

다음과 같이 php 창이 나오면 php 설치 완료입니다.

[ M. MySQL 설치 ]

$ sudo apt install mysql

다운을 받으면 mysql의 사용자 비밀번호를 지정하게 되어 있는데 이는 잊어버리지마시고 잘 적어주시기 바랍니다.

root 유저에서는

$ mysql

일반 유저에서는

$ sudo mysql

을 사용하면 패스워드 없이 접속이 가능합니다.


journalctl -xe 오류 발생시 아래 참고

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lcs5382&logNo=221505802213

profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글