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;
}
...
'PHP' 카테고리의 다른 글
PHP: log monitoring # access.log # error.log # php-fpm.log (1) | 2024.12.06 |
---|---|
PHP: 특정 버전 설치 & Nginx 사용 # php7.4 # php-fpm # apache 제거 (1) | 2024.12.05 |
Web: Session # 세션 공유 # PHP, Nginx 예제 (0) | 2024.07.09 |
PHP: 세션 id를 검증 - Nginx를 활용하여 접근 허용/비허용 하는 예제 (0) | 2024.07.05 |
PHP: php 설치, php-fpm 설치, nginx 연결 (0) | 2024.07.04 |