티스토리 뷰
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 |
댓글