centos7 + Vagrant + nginx로 Laravel이 라우팅되는 페이지 표시

웹 서버의 지식을 넓히고 싶다고 하는 방향의 기사입니다.

개인적으로는 apache라고 간단하게 서버 구축할 수 있지만, nginx라고 할 수 없다고 하는 상태였기 때문에
nginx의 지식을 넓히고 싶었습니다.

환경 구축은 Vagrant에서했습니다.
$vagrant init centos/7

Vagrantfile 편집

Vagrantfile
# config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "private_network", ip: "192.168.33.11"

Vagrant 시작
$vagrant up
$vagarnt ssh

패키지 업데이트
$sudo yum -y update

epel 및 remi 설치
$sudo yum -y install epel-release
$sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

php 설치
$sudo yum -y install php71 php71-php-fpm php71-php-mysqlnd php71-php-opcache php71-php-xml php71-php-xmlrpc php71-php-gd php71-php-mbstring php71-php-json

심볼릭 링 설정
$sudo ln -s /usr/bin/php71 /usr/bin/php

php 버전 확인
$php -v
PHP 7.1.33 (cli) (built: Oct 23 2019 07:59:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.1.33, Copyright (c) 1999-2018, by Zend Technologies

composer 설치
$cd /vagrant
$php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$php composer-setup.php
$php -r "unlink('composer-setup.php');"
$sudo mv composer.phar /usr/local/bin/composer
$composer -v
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.9.1 2019-11-01 17:20:17

zip unzip git 설치
$sudo yum -y install zip unzip git

nginx 설치
$sudo yum -y install nginx

자동 시작 설정
$sudo systemctl enable nginx

시작
$sudo systemctl start nginx

nginx 시작 확인



nginx 시작하는 방법



nginx 구성 파일 업데이트
$sudo vi /etc/nginx/nginx.conf

/etc/nginx/nginx.conf

    http {
             include /etc/nginx/default.d/*.conf;

             location / {
    +            index index.php index.html;
    +        }
    +
    +        location ~ \.php$ {
    +            root /usr/share/nginx/html;
    +            fastcgi_pass 127.0.0.1:9000;
    +            fastcgi_index index.php;
    +            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    +            include fastcgi_params;
             }

nginx 재부팅
$sudo systemctl restart nginx

php-fpm 자동 시작
$sudo systemctl enable php71-php-fpm

시작
$sudo systemctl start php71-php-fpm

phpinfo 파일 만들기
$sudo sh -c "echo '<?php phpinfo();' > /usr/share/nginx/html/phpinfo.php"

phpinfo 확인

htp // 192. 168. 33. 11 / ph Pinfu. php

$cd /usr/share/nginx/html
$sudo chmod 777 .
$composer create-project --prefer-dist laravel/laravel blog "5.5.*"

그대로 열면 오류가 발생하기 때문에 다음 권한을 부여합니다.
$cd blog
$sudo chmod 777 -R storage

storage에 SELinux 설정을 한다.
httpd_sys_rw_content_t 타입을 설정하는 것으로, 일시적으로 허가.
$sudo chcon -Rv --type=httpd_sys_rw_content_t storage

초기 화면이 표시되는지 확인
htp //192.168.33.11/b㎉g/푸bぃc



URL 및 라우팅 설정



nginx.conf 설정 업데이트
$sudo vi /etc/nginx/nginx.conf

/etc/nginx/nginx.conf
http {
         include /etc/nginx/default.d/*.conf;

         location / {
+            try_files $uri $uri/ /index.php;
             index index.php index.html;
         }

         location ~ \.php$ {
-            root /usr/share/nginx/html;
+            root /usr/share/nginx/html/blog/public;
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

nginx 재부팅
$sudo systemctl restart nginx

라우팅 설정 추가

routes/web.php
//下記を追加する
Route::get('foo', function () {
   return 'bar';
});

foo 페이지 확인
h tp://192.168.33.11/후오오


Unix 도메인 소켓에서 연결에서 nginx를 시작하는 방법



nginx 설정 업데이트
$sudo vi /etc/nginx/nginx.conf

/etc/nginx/nginx.conf
         location ~ \.php$ {
             root /usr/share/nginx/html/blog/public;
-            fastcgi_pass 127.0.0.1:9000;
+            #fastcgi_pass 127.0.0.1:9000;
+            fastcgi_pass unix:/var/run/php71-fpm.sock;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             include fastcgi_params;

php-fpm 설정
$sudo vi /etc/opt/remi/php71/php-fpm.d/www.conf

/etc/opt/remi/php71/php-fpm.d/www.conf
-user = apache
+user = nginx

-group = apache
+group = nginx

-listen = 127.0.0.1:9000
+listen = /var/run/php71-fpm.sock

-;listen.owner = nobody
-;listen.group = nobody
-;listen.mode = 0660
+listen.owner = nginx
+listen.group = nginx
+listen.mode = 0660

foo 페이지 확인
h tp://192.168.33.11/후오오

참고문헌
CentOS 7에 PHP 7.1을 yum으로 설치하는 단계
h tps://우우 bぁ보. 미안해. 네 t/전과 s7-php71-인 s타르/

Vagrant에서 CentOS7, nginx, php7.2, MySql 8, Laravel 5.7, TypeScript, react, redux, redux-saga의 환경을 구구하면서 작성해 보았다
htps : // 코 m / 오쿠 무라 사고 / ms / 4b54f12f33d2ba 59d8 a8

좋은 웹페이지 즐겨찾기