[php]stdClass object배열로 변환

function arrayCastRecursive($array)
{
    if (is_array($array)) {
        foreach ($array as $key => $value) {
            if (is_array($value)) {
                $array[$key] = arrayCastRecursive($value);
            }
            if ($value instanceof stdClass) {
                $array[$key] = arrayCastRecursive((array)$value);
            }
        }
    }
    if ($array instanceof stdClass) {
        return arrayCastRecursive((array)$array);
    }
    return $array;
}

$result = arrayCastRecursive($stdObj);

[docker] redmine 구축하기

docker-compose.yml 작성
https://github.com/jisung87kr/docker-redmine

version: '3.2'

services:

  redmine:
    image: redmine
    restart: always
    ports:
      - 8080:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: PASSWORD
      REDMINE_SECRET_KEY_BASE: supersecretkey
    
  db:
    image: mysql:5.7
    restart: always
    ports:
     - 3330:3306
    environment:
      MYSQL_ROOT_PASSWORD: PASSWORD
      MYSQL_DATABASE: redmine 
    volumes:
     - db_data:/var/lib/mysql
    command: #문자셋 지정
     - --character-set-server=utf8mb4
     - --collation-server=utf8mb4_unicode_ci

volumes:
  db_data:

포트개방

docker-comse.yml 에서 지정한 포트가 개방되어 있어야 한다.

apache 설정

<VirtualHost *:80>
  ServerName redmine.ujsstudio.com
  #ProxyRequests Off
  #ProxyPreserveHost On
  ProxyPass / http://localhost:8888/
  ProxyPassReverse / http://localhost:8888/
</VirtualHost>

역프록시 설정을 해서 지정한 포트로 리다이렉트 처리

참고

[docker] systemctl 사용할 수 없을때

도커에서 권한 문제로 systemctl 커맨드를 사용할수 없음
privileged 옵션과 /sbin/init 커맨드를 전달해서 해결

docker run -itd --privileged --name centos7 centos:7 /sbin/init