vagrant에서 Nginx+PHP+php-fpm 환경을 시작합니다.

9091 단어 nginxPHPVagrant
vagrant에서 Nginx + PHP + php-fpm 환경을 시작했으므로 절차를 작성했습니다.

CentOS7 설치



CentOS7을 다운로드합니다.
$vagrant box add CentOS7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

CentOS7 VM 시작



박스 작성이 성공하면 다음 단계에 따라 Vagrantfile을 작성하십시오.
이번에는 「sample」이라고 하는 디렉토리를 만들어, 그 안에 전개해 갑니다.

또, 이 후, 호스트측(자신의 PC)으로 작성한 php 파일이나 html 파일을, 게스트 OS(이번에 말하는 곳의 vagrant로 시작한 centos)에 동기시키는(마운트)를 위한 설정을 하는 것입니다 그러나 이러한 php 파일과 html 파일을 저장하는 폴더 "sync"를 샘플 아래에 만들어 둡니다.
$ mkdir sync

sample 디렉토리로 이동하여 다음 명령을 실행합니다.
$vagrant init CentOS7

이제 centos7의 os에서 vagrant가 시작되고 vagrantfile이 생성됩니다.

현재 디렉토리 구성은 다음과 같습니다.
sample ┠ sync/
       ┠ Vagrantfile

생성된 Vagrantfile을 다음과 같이 편집합니다.

Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "CentOS7"
  #ローカルでアクセスするときのIPアドレス。初期設定は192.168.33.10のはず。
  config.vm.network "private_network", ip: "192.168.33.10"
  #同期先を指定。「カレントディレクトリ(.)を/vagrant以下に同期」と、「syncディレクトリを/var/www/」以下に同期する。
  config.vm.synced_folder ".", "/vagrant"
  config.vm.synced_folder "sync", "/var/www/"
end

그 후 vagrant를 시작하고 ssh로 안으로 들어간다.
$ vagrant up
$ vagrant ssh

vagrant에서의 조작



vagrant에 들어가면 ifconfig에서 방금 지정한 192.168.33.10에 액세스 할 수 있는지 확인하십시오.
$ ifconfig
~~~略~~~~~
inet 192.168.33.10
~~~略~~~~~

같은 표기가 있으면 OK. 그렇지 않으면 or 다른 IP가 되어 있으면, 한 번 vagrant에서 빠져, reload하고 다시 연결한다.

(이하는 없는 사람만이네)
[vagrant@localhost]$ exit
$vagrant reload
$vagrant ssh

다시 확인하여 ifconfig에서 192.168.33.10에 액세스할 수 있는지 확인합니다.

EPEL 리포지토리와 remi 리포지토리



업데이트하고 EPEL 리포지토리와 remi 리포지토리를 추가했습니다.
$sudo yum update
$sudo yum -y install epel-release
$sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Nginx



/etc/yum.repos.d/nginx.repo 만들기

etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
enabled=0
gpgcheck=0

Nginx를 설치합니다.
$sudo yum -y --enablerepo=nginx install nginx
$nginx -v 
#バージョンが表示されればOK

nginx를 시작합니다.
$sudo systemctl start nginx
$sudo systemctl enable nginx

nginx가 시작되었는지 확인합니다.
$sudo systemctl status nginx
#ここで、「Active: active (running)」になっていればOK。こんな感じ
   #Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  # Active: active (running) since 木 2019-04-18 15:27:49 CEST; 1h 46min ago

방화벽



이대로는 방화벽에 의해 막혀 액세스할 수 없기 때문에, 80번 포트(http의 포트)를 해방합니다.
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --reload

nginx 시작, 방화벽 설정이 끝났으므로 브라우저에 액세스해 보겠습니다.
nginx의 환영 페이지가 표시되면 OK입니다.

nginx 설정 편집



여기에서 nginx 설정을 밟아갑니다./etc/nginx/conf.d/default.conf의 구성 파일을 편집하고 다음을 수행합니다.
server {
    listen       80;
    server_name  localhost;
    #ここは「sync」フォルダ以下にあるファイルを参照してほしいので、「sync」の同期先であるvar/wwwを指定。
    root   /var/www;
    charset UTF-8;
    access_log  /var/log/nginx/www.example.com.access.log  main;
    error_log  /var/log/nginx/www.example.com.error.log;

    location / {
        index index.php index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

}

nginx의 설정 파일을 괴롭힌 후에는 restart해야 하기 때문에 아래에서 다시 시작합니다.
$ systemctl restart nginx

php,php-fpm 설치


$ yum -y install --enablerepo=epel,remi,remi-php72  php php-mbstring php-pdo php-mysqlnd php-fpm php-gd

새로운 php와 php-fpm이 들어 있는지 확인.
$ php -v
$ php-fpm -v

그런 다음/etc/php-fpm.d/www.conf의 php-fpm 구성 파일을 편집합니다.

이 5개의 기술을 코멘트 아웃(;) 혹은 삭제해, (각각 떨어진 곳에 있으므로 찾기 어려울지도)

/etc/php-fpm.d/www.conf
;listen = 127.0.0.1:9000
;user = apache
;group = apache
;listen.owner = nobody
;listen.group = nobody 

다음을 추가.

/etc/php-fpm.d/www.conf
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.group = nginx
listen.owner = nginx

설정을 반영하기 위해 php-fpm을 다시 시작합니다.
$ sudo systemctl restart php-fpm

ngix와 마찬가지로 시작할 수 있는지 확인합니다. "Active: active (running)"이 되어 있으면 OK
$systemctl status php-fpm

/var/www/에서 index.php를 만들고 php의 시작을 확인하고 싶습니다. "/var/www/이하로 이동하여 vi에서 index.php를 만들어 ... 하지 않고 k.

최초로 한 Vagrantfile의 설정으로 「sync」에 작성한 것은 「var/www」에 동기되기 때문에, 자신의 PC의 에디터로 작성해 괜찮다.

index.php
<?php phpinfo(); ?>

여기서, 192.168.33.10에 액세스해, 이하와 같이 되어 있으면 OK입니다! ! !



만약 에러 나왔을 경우는 nginx의 에러 로그(/var/log/nginx/error.log)등을 보면 좋을 것입니다.

좋은 웹페이지 즐겨찾기