EC2로 php 환경 구축 ① Nginx + php56 + php56-fpm + virtualhost
14229 단어 php-fpmnginxPHPVirtualHost
개요
서버 구축 경험이 별로 없기 때문에 이번에 해본 흐름을 정리해 보았다.
목차
# EC2 IP Adress (임시)
52.111.111.111
nginx 설치
EC2에 로그인
[hoge@local ~]$ ssh -i "XXX.pem" [email protected]
1. nginx 정보 확인
[ec2-user@ip-172-31-4-XXX ~]$ yum info nginx
2. nginx 설치
[ec2-user@ip-172-31-4-XXX ~]$ sudo yum install nginx -y
3. 설치 확인
[ec2-user@ip-172-31-4-XXX ~]$ which nginx
/usr/sbin/nginx
4. nginx 가동
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx start
Starting nginx: [ OK ]
[ec2-user@ip-172-31-4-XXX ~]$ ps -ef | grep nginx
root 1563 1 0 09:06 ? 00:00:00 nginx: master process nginx
nginx 1564 1563 0 09:06 ? 00:00:00 nginx: worker process
ec2-user 1566 1385 0 09:06 pts/0 00:00:00 grep nginx
5. 브라우저에 대한 액세스 확인
브라우저에서 htp://52.111.111.111 로 이동합니다.
아래와 같은 화면이 표시되면 OK.
6. 서비스 자동 가동으로 설정
[ec2-user@ip-172-31-4-XXX ~]$ sudo chkconfig nginx on
7. nginx 로그 디렉토리에 대한 액세스 확인
[ec2-user@ip-172-31-4-XXX ~]$ tail -f /var/log/nginx/access.log
tail: `/var/log/nginx/access.log' を 読み込み用に開くことが出来ません: 許可がありません
[ec2-user@ip-172-31-4-XXX ~]$ ls -ald /var/log/nginx
drwx------ 2 nginx nginx 4096 9月 20 08:26 /var/log/nginx
8. 로그 디렉토리에 대한 액세스 권한 변경
[ec2-user@ip-172-31-4-XXX ~]$ sudo chmod 755 /var/log/nginx/
[ec2-user@ip-172-31-4-XXX ~]$ ls -ald /var/log/nginx
drwxr-xr-x 2 nginx nginx 4096 9月 20 08:26 /var/log/nginx
[ec2-user@ip-172-31-4-XXX ~]$ tail -f /var/log/nginx/access.log
XXX.XXX.XX.XXX - - [20/Sep/2015:08:29:09 +0000] ...
XXX.XXX.XX.XXX - - [20/Sep/2015:08:30:01 +0000] ...
php-fpm 설치
1. php5.6 및 php-fpm 설치
[ec2-user@ip-172-31-4-XXX ~]$ sudo yum install php56 php56-fpm -y
2. 확인용 PHP 파일 작성
/usr/share/nginx/html/phpinfo.php<?php
phpinfo();
3. php-fpm 설정 변경
사용자와 그룹을 apache에서 nginx로 변경
/etc/php-fpm-5.6.d/www.conf- user = apache
+ user = nginx
- group = apache
+ group = nginx
4. nginx 설정 변경
/etc/nginx/nginx.conf http {
- index index.html index.htm;
+ index index.php index.html index.htm;
server {
root /usr/share/nginx/html;
- #location ~ \.php$ {
- # root html;
- # fastcgi_pass 127.0.0.1:9000;
- # fastcgi_index index.php;
- # fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name;
- # include fastcgi_params;
- #}
+ location ~ \.php$ {
+ root html;
+ fastcgi_pass 127.0.0.1:9000;
+ fastcgi_index index.php;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ include fastcgi_params;
+ }
5. php-fpm 가동 및 자동 가동 설정
[ec2-user@ip-172-31-4-XXX ~]$ sudo service php-fpm start
[ec2-user@ip-172-31-4-XXX ~]$ sudo chkconfig php-fpm on
6. nginx 재부팅
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx restart
7. 설정 변경 확인
[ec2-user@ip-172-31-4-XXX ~]$ curl -s http://localhost/phpinfo.php |grep "PHP Version"
<tr><td class="e">PHP Version </td><td class="v">5.6.8 </td></tr>
8. nginx와 php-fpm의 연결을 소켓으로 만듭니다.
php-fpm 설정 변경
/etc/php-fpm-5.6.d/www.conf- listen = 127.0.0.1:9000
+ listen = /var/run/php-fpm/php-fpm.sock
- ;listen.owner = nobody
- ;listen.group = nobody
+ listen.owner = nginx
+ listen.group = nginx
nginx 설정 변경
/etc/nginx/nginx.conf- fastcgi_pass 127.0.0.1:9000;
+ fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
서비스 재시작
[ec2-user@ip-172-31-4-XXX ~]$ sudo service php-fpm restart
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx restart
php 실행에 문제가 있는지 확인
[ec2-user@ip-172-31-4-XXX ~]$ curl -s http://localhost/phpinfo.php |grep "PHP Version"
가상 환경 생성 (feature1-develop.com)
1. php-fpm 설정
/etc/php-fpm-5.6.d/php-fpm-feature1-develop.conf[feature1-develop]
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm-feature1-develop.sock
listen.owner = nginx
listen.group = nginx
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
2. nginx의 virtual.conf 설정
/etc/nginx/conf.d/virtual.confserver {
listen 80;
server_name feature1-develop.com;
access_log /var/log/nginx/feature1-develop.access.log main;
error_log /var/log/nginx/feature1-develop.error.log;
root /var/www/feature1;
index index.php;
location ~ \.php$ {
root /var/www/feature1;
fastcgi_pass unix:/var/run/php-fpm/php-fpm-feature1-develop.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3. 문서 루트 디렉토리 작성
[ec2-user@ip-172-31-4-XXX ~]$ sudo mkdir -p /var/www/feature1
4. index.php 파일 만들기
/var/www/feature1/index.php<?php
phpinfo();
5. php-fpm 및 nginx 재부팅
[ec2-user@ip-172-31-4-XXX ~]$ sudo service php-fpm restart
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx restart
6. sock 파일 추가 확인
[ec2-user@ip-172-31-4-XXX ~]$ ls -al /var/run/php-fpm/php-fpm-feature1-develop.sock
srw-rw---- 1 nginx nginx 0 9月 20 08:54 /var/run/php-fpm/php-fpm-feature1-develop.sock
7. 자신의 PC에 가상 호스트에 대한 액세스 설정
[hoge@local ~]$ sudo -- sh -c "echo 52.111.111.111 feature1-develop.com >> /etc/hosts"
8. 액세스 확인
쉘에서 확인
# アクセス確認
[hoge@local ~]$ curl -s http://feature1-develop.com/phpinfo.php | grep "PHP Version"
<tr><td class="e">PHP Version </td><td class="v">5.6.12 </td></tr>
# 「DOCUMENT_ROOT」確認
[hoge@local ~]$ curl -s http://feature1-develop.com/phpinfo.php | grep "DOCUMENT_ROOT"
<tr><td class="e">_SERVER["DOCUMENT_ROOT"]</td><td class="v">/var/www/feature1</td></tr>
브라우저에서 확인
ht tp // // 훗아트레 1-로 ゔぇぉp. 이 m/ph 핑후. php
'DOCUMENT_ROOT'이 '/var/www/feature1'인지 확인
다음에 한 일
EC2로 php 환경 구축 ② git 서버 구축 + altax 도입 + 배포 명령 작성
Reference
이 문제에 관하여(EC2로 php 환경 구축 ① Nginx + php56 + php56-fpm + virtualhost), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jjongs08/items/805aab3dc3483b499785
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[hoge@local ~]$ ssh -i "XXX.pem" [email protected]
[ec2-user@ip-172-31-4-XXX ~]$ yum info nginx
[ec2-user@ip-172-31-4-XXX ~]$ sudo yum install nginx -y
[ec2-user@ip-172-31-4-XXX ~]$ which nginx
/usr/sbin/nginx
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx start
Starting nginx: [ OK ]
[ec2-user@ip-172-31-4-XXX ~]$ ps -ef | grep nginx
root 1563 1 0 09:06 ? 00:00:00 nginx: master process nginx
nginx 1564 1563 0 09:06 ? 00:00:00 nginx: worker process
ec2-user 1566 1385 0 09:06 pts/0 00:00:00 grep nginx
[ec2-user@ip-172-31-4-XXX ~]$ sudo chkconfig nginx on
[ec2-user@ip-172-31-4-XXX ~]$ tail -f /var/log/nginx/access.log
tail: `/var/log/nginx/access.log' を 読み込み用に開くことが出来ません: 許可がありません
[ec2-user@ip-172-31-4-XXX ~]$ ls -ald /var/log/nginx
drwx------ 2 nginx nginx 4096 9月 20 08:26 /var/log/nginx
[ec2-user@ip-172-31-4-XXX ~]$ sudo chmod 755 /var/log/nginx/
[ec2-user@ip-172-31-4-XXX ~]$ ls -ald /var/log/nginx
drwxr-xr-x 2 nginx nginx 4096 9月 20 08:26 /var/log/nginx
[ec2-user@ip-172-31-4-XXX ~]$ tail -f /var/log/nginx/access.log
XXX.XXX.XX.XXX - - [20/Sep/2015:08:29:09 +0000] ...
XXX.XXX.XX.XXX - - [20/Sep/2015:08:30:01 +0000] ...
1. php5.6 및 php-fpm 설치
[ec2-user@ip-172-31-4-XXX ~]$ sudo yum install php56 php56-fpm -y
2. 확인용 PHP 파일 작성
/usr/share/nginx/html/phpinfo.php
<?php
phpinfo();
3. php-fpm 설정 변경
사용자와 그룹을 apache에서 nginx로 변경
/etc/php-fpm-5.6.d/www.conf
- user = apache
+ user = nginx
- group = apache
+ group = nginx
4. nginx 설정 변경
/etc/nginx/nginx.conf
http {
- index index.html index.htm;
+ index index.php index.html index.htm;
server {
root /usr/share/nginx/html;
- #location ~ \.php$ {
- # root html;
- # fastcgi_pass 127.0.0.1:9000;
- # fastcgi_index index.php;
- # fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name;
- # include fastcgi_params;
- #}
+ location ~ \.php$ {
+ root html;
+ fastcgi_pass 127.0.0.1:9000;
+ fastcgi_index index.php;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ include fastcgi_params;
+ }
5. php-fpm 가동 및 자동 가동 설정
[ec2-user@ip-172-31-4-XXX ~]$ sudo service php-fpm start
[ec2-user@ip-172-31-4-XXX ~]$ sudo chkconfig php-fpm on
6. nginx 재부팅
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx restart
7. 설정 변경 확인
[ec2-user@ip-172-31-4-XXX ~]$ curl -s http://localhost/phpinfo.php |grep "PHP Version"
<tr><td class="e">PHP Version </td><td class="v">5.6.8 </td></tr>
8. nginx와 php-fpm의 연결을 소켓으로 만듭니다.
php-fpm 설정 변경
/etc/php-fpm-5.6.d/www.conf
- listen = 127.0.0.1:9000
+ listen = /var/run/php-fpm/php-fpm.sock
- ;listen.owner = nobody
- ;listen.group = nobody
+ listen.owner = nginx
+ listen.group = nginx
nginx 설정 변경
/etc/nginx/nginx.conf
- fastcgi_pass 127.0.0.1:9000;
+ fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
서비스 재시작
[ec2-user@ip-172-31-4-XXX ~]$ sudo service php-fpm restart
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx restart
php 실행에 문제가 있는지 확인
[ec2-user@ip-172-31-4-XXX ~]$ curl -s http://localhost/phpinfo.php |grep "PHP Version"
가상 환경 생성 (feature1-develop.com)
1. php-fpm 설정
/etc/php-fpm-5.6.d/php-fpm-feature1-develop.conf[feature1-develop]
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm-feature1-develop.sock
listen.owner = nginx
listen.group = nginx
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
2. nginx의 virtual.conf 설정
/etc/nginx/conf.d/virtual.confserver {
listen 80;
server_name feature1-develop.com;
access_log /var/log/nginx/feature1-develop.access.log main;
error_log /var/log/nginx/feature1-develop.error.log;
root /var/www/feature1;
index index.php;
location ~ \.php$ {
root /var/www/feature1;
fastcgi_pass unix:/var/run/php-fpm/php-fpm-feature1-develop.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3. 문서 루트 디렉토리 작성
[ec2-user@ip-172-31-4-XXX ~]$ sudo mkdir -p /var/www/feature1
4. index.php 파일 만들기
/var/www/feature1/index.php<?php
phpinfo();
5. php-fpm 및 nginx 재부팅
[ec2-user@ip-172-31-4-XXX ~]$ sudo service php-fpm restart
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx restart
6. sock 파일 추가 확인
[ec2-user@ip-172-31-4-XXX ~]$ ls -al /var/run/php-fpm/php-fpm-feature1-develop.sock
srw-rw---- 1 nginx nginx 0 9月 20 08:54 /var/run/php-fpm/php-fpm-feature1-develop.sock
7. 자신의 PC에 가상 호스트에 대한 액세스 설정
[hoge@local ~]$ sudo -- sh -c "echo 52.111.111.111 feature1-develop.com >> /etc/hosts"
8. 액세스 확인
쉘에서 확인
# アクセス確認
[hoge@local ~]$ curl -s http://feature1-develop.com/phpinfo.php | grep "PHP Version"
<tr><td class="e">PHP Version </td><td class="v">5.6.12 </td></tr>
# 「DOCUMENT_ROOT」確認
[hoge@local ~]$ curl -s http://feature1-develop.com/phpinfo.php | grep "DOCUMENT_ROOT"
<tr><td class="e">_SERVER["DOCUMENT_ROOT"]</td><td class="v">/var/www/feature1</td></tr>
브라우저에서 확인
ht tp // // 훗아트레 1-로 ゔぇぉp. 이 m/ph 핑후. php
'DOCUMENT_ROOT'이 '/var/www/feature1'인지 확인
다음에 한 일
EC2로 php 환경 구축 ② git 서버 구축 + altax 도입 + 배포 명령 작성
Reference
이 문제에 관하여(EC2로 php 환경 구축 ① Nginx + php56 + php56-fpm + virtualhost), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jjongs08/items/805aab3dc3483b499785
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[feature1-develop]
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm-feature1-develop.sock
listen.owner = nginx
listen.group = nginx
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
server {
listen 80;
server_name feature1-develop.com;
access_log /var/log/nginx/feature1-develop.access.log main;
error_log /var/log/nginx/feature1-develop.error.log;
root /var/www/feature1;
index index.php;
location ~ \.php$ {
root /var/www/feature1;
fastcgi_pass unix:/var/run/php-fpm/php-fpm-feature1-develop.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[ec2-user@ip-172-31-4-XXX ~]$ sudo mkdir -p /var/www/feature1
<?php
phpinfo();
[ec2-user@ip-172-31-4-XXX ~]$ sudo service php-fpm restart
[ec2-user@ip-172-31-4-XXX ~]$ sudo service nginx restart
[ec2-user@ip-172-31-4-XXX ~]$ ls -al /var/run/php-fpm/php-fpm-feature1-develop.sock
srw-rw---- 1 nginx nginx 0 9月 20 08:54 /var/run/php-fpm/php-fpm-feature1-develop.sock
[hoge@local ~]$ sudo -- sh -c "echo 52.111.111.111 feature1-develop.com >> /etc/hosts"
# アクセス確認
[hoge@local ~]$ curl -s http://feature1-develop.com/phpinfo.php | grep "PHP Version"
<tr><td class="e">PHP Version </td><td class="v">5.6.12 </td></tr>
# 「DOCUMENT_ROOT」確認
[hoge@local ~]$ curl -s http://feature1-develop.com/phpinfo.php | grep "DOCUMENT_ROOT"
<tr><td class="e">_SERVER["DOCUMENT_ROOT"]</td><td class="v">/var/www/feature1</td></tr>
EC2로 php 환경 구축 ② git 서버 구축 + altax 도입 + 배포 명령 작성
Reference
이 문제에 관하여(EC2로 php 환경 구축 ① Nginx + php56 + php56-fpm + virtualhost), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jjongs08/items/805aab3dc3483b499785텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)