최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

■ 백엔드 ■/Slim

03. 웹서버 설정

serpiko 2018. 5. 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/public/;

    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' 카테고리의 다른 글

Middleware  (0) 2018.05.24
Routes  (0) 2018.05.24
index.php  (0) 2018.05.24
02. 컴포저로 slim 설치하기  (0) 2018.05.22
01. Getting started with Slim 3  (0) 2018.05.22
댓글