NGINX Server Blocks

Bitnami NGINX WordPress 환경에서 Virtual Host 생성

Terminal 에서 app 폴더 생성

cd /opt/bitnami/
sudo mkdir apps
sudo chown bitnami.bitnami apps

yii2 폴더 생성

cd apps
mkdir yii2

yii2 설치

composer create-project --prefer-dist yiisoft/yii2-app-advanced yii2
cd yii2
./init

참고: https://www.yiiframework.com/extension/yiisoft/yii2-app-advanced/doc/guide/2.0/en/start-installation

Nginx 설정 파일(1) 생성

cd /opt/bitnami/apps/ 
mkdir conf 
cd conf 
nano nginx-app.conf

/opt/bitnami/apps/conf/nginx-app.conf

index index.php index.html index.htm;

if ($request_uri !~ "^/phpmyadmin.*$")
{
  set $test  A;
}
if ($request_uri !~ "^/bitnami.*$")
{
  set $test  "${test}B";
}
if (!-e $request_filename)
{
  set $test  "${test}C";
}
if ($test = ABC) {
  rewrite ^/(.+)$ /index.php?q=$1 last;
}

# Deny access to any files with a .php extension in the uploads directory
location ~* /(?:uploads|files)/.*\.php$ {
  deny all;
}

# Disable logging for not found files and access log for the favicon and robots

# Deny all attempts to access hidden files such as .htaccess or .htpasswd.
location ~ /\. {
    deny all;
}

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_read_timeout 300;
    fastcgi_pass unix:/opt/bitnami/php/var/run/www.sock;
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME $request_filename;
    include fastcgi_params;
}

Nginx 설정 파일(2) 생성

nano yii2-prefix.conf

/opt/bitnami/apps/conf/yii2-prefix.conf

location /yii2 {
alias "/opt/bitnami/apps/yii2/frontend/web";
include "/opt/bitnami/apps/conf/nginx-app.conf";
}

Nginx Vhosts 설정 파일 생성

nano yii2-vhosts.conf

/opt/bitnami/apps/conf/yii2-vhosts.conf

server {

    listen    80;
    root   "/opt/bitnami/apps/yii2/frontend/web";
    server_name  yii2.semapoblockchain.com app.semapoblockchain.com;
    
    include "/opt/bitnami/apps/conf/nginx-app.conf";
}

server {

    listen    443 ssl http2;
    root   "/opt/bitnami/apps/yii2/frontend/web";
    server_name  yii2.semapoblockchain.com app.semapoblockchain.com;

       ssl_certificate      /opt/bitnami/nginx/conf/bitnami/certs/server.crt;
       ssl_certificate_key  /opt/bitnami/nginx/conf/bitnami/certs/server.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    
#change this folder name
    include "/opt/bitnami/apps/conf/nginx-app.conf";
}

Nginx Vhosts 기본 설정 파일 수정

cd /opt/bitnami/nginx/conf/server_blocks
nano wordpress-https-server-block.conf

Add this Inside of server {} block
/opt/bitnami/nginx/conf/server_blocks/wordpress-https-server-block.conf

include "/opt/bitnami/apps/conf/*-prefix.conf";

Add this outside of server {} block

include "/opt/bitnami/apps/conf/*-vhosts.conf";

Test NGINX server configuration

sudo nginx -t

Document Folder 권한 수정(wordpress 일 경우)

sudo chown bitnami:daemon -R /opt/bitnami/apps/yii2/*
sudo chmod -R g+w /opt/bitnami/apps/yii2*

NGINX 서버 재시작

 sudo /opt/bitnami/ctlscript.sh restart nginx