본문 바로가기
Work

웹프로그래밍용 APM 설치 순서

by 왕고미 2023. 4. 4.

사무실에서 혼자 웹환경을 구축할 때 APM을 사용하여

프로젝트를 빌드하는 경우가 많아 메모용으로 남긴다.

(APM = Apache + Php + Mysql)

******************************************************************

1. 서버를 생성함. centOS 기준

su -- > 관리자 권한 읽어오기

******************************************************************

2. Cent OS 최신으로 update

yum update -y

******************************************************************

3. yum을 통해 apache 설치

yum install httpd -y

******************************************************************

4. 웹서버가 설치되었는지 확인하기 위하여 apache 실행

service httpd start

--> 설정해둔 공인 아이피로 접속하기

******************************************************************

5. (설치해도 접속이 안될경우). 방화벽 설정이 필요함.

firewall-cmd --permanent --zone=public --add-port=80/tcp // ->웹페이지 포트

firewall-cmd --permanent --zone=public --add-port=3306/tcp //->DB포트

firewall-cmd --reload (재시작)

** firewalld is not running 발생시 => service firewalld start

** yum 명령어 정리

yum install [패키지명] ==> 해당 패키지 설치

yum remove [패키지명] ==> 해당 패키지 삭제

yum localinstall [패키지명] ==> 의존성이 필요한 파일만 인터넷으로 받음

yum info [패키지명] ==> 패키지 정보 확인

yum list ==> 모든 패키지 목록

yum search [패키지명] ==> 패키지와 관련된 모든 패키지 검색

yum update ==> yum 업데이트

yum groupinstall [그룹패키지명] ==> 해당 그룹패키지 설치

yum grouplist ==> 모든 그룹패키지 목록

yum clean all ==> 캐쉬에 있는 기존 저장소 목록 삭제

******************************************************************

6. redirect 방법

6-1. source code를 업데이트할 경우 기본루트 var/html로 가지고 있음.

--virtual host 변경이 필요함.

--또한 php 적용을 위한 AddType설정도 필요함.

location : etc/httpd/

# AddType

AddType application/x-httpd-php .php4 .php .phtml .ph .inc .html .htm

# Virtual hosts

--> (일반용 80포트) Include /etc/httpd/conf/extra/httpd-vhosts.conf

--> (인증서용 443포트) Include /etc/httpd/conf/extra/httpd-vhosts-le-ssl.conf

▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽

!!! httpd-vhosts.conf (가상연결 설정)

<VirtualHost *:80>

ServerAdmin 139.150.72.160

DocumentRoot "/home/market_chatbot/chatadm/www"

ServerName 139.150.72.160

ErrorLog logs/market-error_log

CustomLog logs/market-access_log common

</VirtualHost>

!!!!httpd-vhosts-le-ssl.conf (ssl설정) : ssl 접속에 대한 설정임.

인증서 발급단계에서 기술함.

******************************************************************

***php에서 오류가 출력될 수 있도록 설정

php.ini -> display_errors = Off => On 변경

******************************************************************

***Call to undefined function mysql_connect() 설정???

: mysql_connect가 아닌 mysqli_connect가 필요하여 생기는 오류.

yum을 통한 설치--> yum install php-mysql

설치확인 --> rpm -qa | grep php-mysql

******************************************************************

** 계속하여 로그인으로 돌아오는 경우 session 생서잉 안되는 것일 수 있음.

-->> chmod -R 706 data (chmod : 권한명령어 -R : 하위 폴더,파일까지 -707 : 권한분류)

******************************************************************

** 도메인 설정

gabia : gowow7997 / gowow7997!

DNS 관리 -> 레코드 없으면 등록 후 주소 설정 -> subDomain(A)을 가장 많이 씀.

그리고 나서 httpd-vhosts.conf에서 VirtualHost를 두개로 나누어서 연결시킴.

--> httpd.conf 최하단에 추가할 내용

# Virtual hosts

Include /etc/httpd/conf/extra/httpd-vhosts.conf

httpd-vhosts.conf 파일은 임시로 생성된 것이며,

etc/httpd/httpd.conf 최하단에 include 로 포함시킨 파일임.

******************************************************************

** SSL 설정하기 - CentOS _ Letsencrypt

1. certbot은 centOS 공식저장소에 미포함이므로 extra 저저장소 epel 확인 후 설치 필요

$ yum repolist -> epel 이 있나?

없으면

$yum install epel-release

설치 후 확인

$ yum repolist | grep epel

2. certbot 설치

$ yum install certbot python2-certbot-apache

(nginx라면)

$ yum install certbot python2-certbot-nginx

3. 인증서 발급

(--standalone일 경우 반드시 웹서버 종료)

sudo systemctl stop httpd

sudo certbot --standalone -d yourWesite.co.kr certonly

# certbot [option]

obtain, install, and renew certificates:

(default) run Obtain & install a certificate in your current webserver

certonly Obtain or renew a certificate, but do not install it

renew Renew all previously obtained certificates that are near expiry

enhance Add security enhancements to your existing configuration

-d DOMAINS Comma-separated list of domains to obtain a certificate for

--apache Use the Apache plugin for authentication & installation

--standalone Run a standalone webserver for authentication

(the certbot nginx plugin is not installed)

--webroot Place files in a server′s webroot folder for authentication

--manual Obtain certificates interactively, or using shell script hooks

-n Run non-interactively

--test-cert Obtain a test certificate from a staging server

--dry-run Test "renew" or "certonly" without saving any certificates to disk

4. 인증서를 적용

-> httpd-vhosts-le-ssl을 생성하여 하단처럼 작성

<VirtualHost *:443>

ServerName yourWesite.co.kr

SSLCertificateFile /etc/letsencrypt/live/yourWebsite.co.kr/cert.pem

SSLCertificateKeyFile /etc/letsencrypt/live/yourWebsite.co.kr/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/yourWebsite.co.kr/chain.pem

ServerAdmin yourWebsite.co.kr

</VirtualHost>

--> httpd.conf 최하단에 추가할 내용

# Virtual hosts

Include /etc/httpd/conf/extra/httpd-vhosts.conf

Include /etc/httpd/conf/extra/httpd-vhosts-le-ssl.conf