티스토리 뷰
Amazon Linux AMI 에서 Nginx 1.12.1, Php7.1, Postgresql 9.6 자동 설치하여 연동하기
DFR 2018. 5. 5. 14:29설치하기 전에 앞서.. HTTP포트, Postgresql포트를 열어야 한다.
AWS메뉴에서, 네트워크 및 보안 -> 보안그룹 -> 인바운드 편집에서
HTTP의 포트번호인 80번과, Postgresql의 포트번호인 5432번을 열어준다.
1. Nginx 설치
sudo yum install nginx
sudo service nginx start
Nginx 서비스까지 실행 되었다면,
aws 보안 그룹으로 가서
자기가 생성한 인스턴스에 해당하는 보안그룹 체크 후에
인바운드 편집으로 이동
유형은 HTTP, 소스는 0.0.0.0/0 또는 위치 무관으로 설정하고 저장한다.
(그러나 SSH는 어지간하면 내 IP로 설정한다.)
※설치된 패키지를 제거하는 방법
sudo yum remove 패키지이름 또는 패키지이름*
예 1) sudo yum remove nginx -> nginx패키지만 지움.
예 2) sudo yum remove nginx* -> nginx패키지 뿐만 아니라 nginx를 설치하는 데 종속적으로 설치한 패키지까지 한꺼번에 지워진다. 주로 이방법을 씀.
※nginx의 기본 설정법
sudo vi /etc/nginx/nginx.conf
※nginx 버전 확인
nginx -v
※TIP : sudo yum search 검색할대상*
-> 검색한 대상의 관련 패키지 목록이 뜬다.
-> 예를들어 sudo yum search php* 하면, php로 시작하는 관련된 패키지 목록이 뜸.
2. PHP 7.1 설치 및 Nginx와 연동
sudo yum install php71-fpm
- 기본설치
sudo yum install php71-gd php71-imap php71-mbstring php71-opcache php71-pdo php71-devel
- 필수 추가 확장(Extension) 모듈들 설치
※확장 모듈이 뭐하는것인지 궁금하면 클릭하세요.
sudo service php-fpm start
Nginx와 연동
sudo vi /etc/php-fpm-7.1.d/www.conf
vi 편집기가 실행되었으면,
대략 20번째 줄에
RPM: apache user chosen to provide access to the same~~ 밑에
user = apache 와 group = apache 부분을
user = nginx, group = nginx 로 바꾼다.
그리고 저장.
sudo chkconfig nginx on (부팅할 때 마다 nginx 시작)
sudo chkconfig php-fpm on (부팅할 때 마다 php-fpm 시작)
이후
sudo nginx -s reload && sudo service nginx restart && sudo service php-fpm restart
Nginx 와 php 재시작
이제 연동이 되어 있는지 확인하기 위해 vi 편집기를 이용하여 phpinfo가 뜨도록 하자.
sudo vi /usr/share/nginx/html/php_info.php
(※ 만약 Nginx를 컴파일 설치 하였을 경우는 sudo vi /etc/nginx/html/php_info.php 입력.)
<?php
phpinfo();
?>
입력 하고 저장.
자신의 aws아이피/php_info.php 입력하여 php와 연동 되었는지 확인.
(PHP Version 7.1.15가 뜨면서 정보창이 뜨면 연동이 된 것이다.)
이제, 앞으로 php파일의 생성 경로는 /usr/share/nginx/html 에다 저장한다.
※ 컴파일 설치 하였을 경우는 생성 경로는 /etc/nginx/html 이다.
(nginx.conf 파일을 통해 root 경로를 바꿀 수 있지만 귀찮아서 안 한다.)
※php-fpm 버전확인
php-fpm -v
※php의 기본 설정법
sudo vi /etc/php-fpm-7.1.d/www.conf
※php패키지 제거 법
sudo yum remove php71*
3. Postgresql 9.6 설치 및 PHP와 연동
sudo yum install postgresql96-server php71-pgsql
DB 초기화
sudo service postgresql96 initdb
DB 자동시작
sudo chkconfig postgresql96 on
재시작
sudo service postgresql96 restart
postgresql 접근방법
sudo su - postgres 입력 후, bash창에다가 psql 입력.
postgres=# 입력창에
ALTER USER postgres PASSWORD '비밀번호';
- postgres의 비밀번호 설정 완료
(postgresql의 계정을 생성하고 싶으시면 여기로)
다음으로, 외부에서 postgresql에 접근가능하도록 설정하도록 하겠다.
sudo vi /var/lib/pgsql96/data/pg_hba.conf
창을 띄우고, 밑으로 쭉 내린 다음에
빨간색 상자 부분이 가리키는 ident를 trust로 바꾼다. 본래 md5로 암호화 시켜서 사용하다가 Phpstorm과 자꾸 충돌이 나서 trust로 바꾸었다.
자세한 내용은 여길 참조
마지막으로 재시작을 해준다.
sudo service postgresql96 restart
※PostgreSQL 버전 확인
postgres --version
※PostgreSQL 접근권한 설정 법
sudo vi /var/lib/pgsql96/data/pg_hba.conf
※PostgreSQL 기본 설정 법
sudo vi /var/lib/pgsql96/data/postgresql.conf
끗~
다음에는 PHPSTORM이랑 연동(원격조종, Postgresql)하는 글을 적겠습니다.
'개발일지 > AWS 서버 구축' 카테고리의 다른 글
Redis(Server)와 연동하기 위해 AWS linux AMI에 PhpRedis(Client) 설치 (0) | 2018.05.25 |
---|---|
AWS Linux AMI에 Redis(Server) 설치하기. (0) | 2018.05.25 |
AWS 서버에 Nginx-rtmp-module이 설치된 웹서버에 PHP와 Postgresql 설치하고 연동하기. (0) | 2018.05.24 |
Phpstorm과 AWS의 원격조종(Remote Control) 및 Postgresql과 연동하기. (0) | 2018.05.11 |
AWS LINUX AMI 서버에 Nginx-rtmp 모듈 컴파일 설치 (1) | 2018.05.08 |