■ 백엔드 ■/Slim2018.05.23 17:29

   03. 웹서버 설정




   nginx


먼저 nginx는 PHP를 기본적으로 지원하고 있지 않기대문에 nginx 상에서 PHP를 

구동하기 위해 PHP-fpm 이라는 패키지를 설치해야한다.


$  sudo apt-get install php7.0-fpm


이후 nginx를 설정하기 위해서 아래 경로의 파일을 편집기로 연다

편집기 종류는 아무거나 상관없다.


$ vi /etc/nginx/sites-available/default


server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name example.com;
    index index.html index.htm index.nginx-debian.html index.php;

    # error_log /path/to/example.error.log;
    # access_log /path/to/example.access.log;

    root /var/www/html/project/;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.(php|html|htm)$ {
        try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_index index.php;
    # fastcgi_pass 127.0.0.1:9000;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }
}


server -> root 에는 실제 프로젝트 폴더명을 적어주고


server -> location / 에는 uri 뒤에 arg가 포함되도록 허용


server -> location ~ 에는 php, html, htm 을 전부 해석하도록 설정하고


위에서 설치한 fpm을 주석처리된 slim 공식 가이드와 다르게 아래와 같이 적어주었다.

fastcgi_pass unix:/run/php/php7.0-fpm.sock;


이후 nginx 재시작한다.


sudo service nginx reload



/var/www/html/project/index.php


<?php

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require 'vendor/autoload.php';

$app = new \Slim\App;
$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");

    return $response;
});
$app->run();


http://localhost/hello/serpiko











   apache


index 파일이 있는 곳에서 .htaccess 파일 작성


.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

index.php

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;
$app->get('/hello/{name}', function (Request $request, Response $response, array $args) {
    $name = $args['name'];
    $response->getBody()->write("Hello, $name");

    return $response;
});
$app->run();


실행

http://localhost/slimapp/public/hello/serpiko


결과


Hello, serpiko





- virtualhost, host 파일 설정할경우 아래를 참조


C:\xampp\apache\conf\extra\httpd-vhosts.conf


NameVirtualHost *:80
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/myslimsite/public"
    ServerName myslimsite
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/slim-skeleton/public"
    ServerName slim-skeleton
</VirtualHost>



C:\Windows\System32\drivers\etc


# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
127.0.0.1       myslimsite
127.0.0.1       slim-skeleton
#   ::1             localhost



'■ 백엔드 ■ > Slim' 카테고리의 다른 글

Slim Framework 3 Skeleton Application  (0) 2018.06.25
Twig views  (0) 2018.05.24
Middleware  (0) 2018.05.24
Routes  (0) 2018.05.24
index.php  (0) 2018.05.24
03. 웹서버 설정  (0) 2018.05.23
02. 컴포저로 slim 설치하기  (0) 2018.05.22
01. slim 프레임워크  (0) 2018.05.22
Posted by SAP (Study And Programming) by serpiko

댓글을 달아 주세요