본문 바로가기

PHP

PHP / 그누보드5: 설치 in Mac # composer # api

728x90
반응형

PHP 기반의 그누보드5를 Mac에서 설치해보자

 

homebrew 이용 (설치 과정 생략)

 

1. Nginx 설치

brew install nginx

 

homebrew로 설치했으므로, (/usr/local/etc/nginx/nginx.conf가 아닌) 

  /opt/homebrew/etc/nginx/nginx.conf 를 아래와 같이 수정한다. (코멘트 부분 제외)

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        root   /Users/sir/git/gnuboard5;
        index  index.php index.html index.htm;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

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

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO	    $fastcgi_path_info;
 	    include        fastcgi_params;
        }

    }

    include servers/*;
}

 

 

2. PHP 설치

brew install php

 

 * PHP-FPM configuration

# Find PHP-FPM configuration file
php-fpm -i | grep "Loaded Configuration File"

# Edit the php-fpm.conf or www.conf
sudo nano /opt/homebrew/etc/php/8.x/php-fpm.d/www.conf  # Replace 8.x with your PHP version

 

위의 www.conf에서 아래 설정이 잘되어있는지 확인

listen = 127.0.0.1:9000
; or
; listen = /opt/homebrew/var/run/php/php-fpm.sock

user = sir
group = staff

 

 

3. mysql 설치

brew install mysql

설치 후 리눅스와 비슷하게 db 생성

 

 

4. 그누보드 설치

  nginx.conf의 root에 설정한대로 /Users/sir/git/에 gnuboard5 github 클론 

git clone https://github.com/gnuboard/gnuboard5.git

 

 * 권한 부여

sudo chown -R sir:staff /Users/sir/git/gnuboard5
// 또는 sudo chown -R ${USER}:staff /Users/sir/git/gnuboard5
sudo chmod -R 755 /Users/sir/git/gnuboard5

 

위와 같이 설치한 후, nginx를 재시작하여 localhost에 접속하면 그누보드가 실행됨을 확인할 수 잇다.

 

+ composer로 패키지 설치

 

파이썬의 pip, 노드의 npm 처럼, php에는 composer라는 것을 통해서 필요한 패키지, 라이브러리 등을 설치할 수 있다.

그누보드의 swagger api를 이용하려면 composer롤 통해서 패키지 추가 설치 필요

 

Composer 설치

curl -sS https://getcomposer.org/installer | php

 

Composer를 Global Location으로 옮기기

sudo mv composer.phar /usr/local/bin/composer

 

설치된 Composer 확인

composer --version

 

패키지 설치

  - 그누보드 프로젝트내에서 아래 명령어 실행하면, composer.json 내의 패키지가 설치됨

composer install

 

vendor에 패키지 설치됨

 

 

* 그누보드 5의 REST API는 feat/restapi 브랜치에 구현되어 있음

api 는 프로젝트 경로/api/ 에 정리되어 있기 때문에, nginx에서 api/v1/ 의 uri 요청이 들어오면, api/index.php를 읽을 수 있도록 설정

server {
    listen       8090;
    server_name  localhost;

    root   /Users/sir/git/gnuboard5;
        index  index.php index.html index.htm;

    # 추가된 부분
    location ~ ^/api/v1/ {
        rewrite ^/api/v1/(.*)$ /api/index.php?$query_string;
    }

    location / {
       try_files $uri $uri/ /index.php?$query_string;
    }
    ...

 

728x90
반응형