상세 컨텐츠

본문 제목

파스타에 워드프레스 콘테이너 올려 보았습니다.[성공]

클라우드+마이크로서비스

by 김일국 2019. 8. 2. 18:11

본문

파스타 클라우드에 워드프레스를 올려 보았습니다.
기존 일반호스팅에서 DB설정을 입력하는 방식에서 ->
클라우드로 프로비저닝 가능하게  $VCAP_SERVICES 변수를 PHP $_ENV변수로 가져와서 wp-config.php 파일을 생성하니까,
DB설정을 건너띄고, 워드프레스 관리자 화면 설정으로 들어 가네요... $확실히 클라우드용이 더 편리합니다.
핵심은 기존 빌드팩은 워드프레스를 설치할 때, PHP확장모듈이 부족해서 설치가 않됩니다.
아래 내용을 .bp-config/options.json 파일을 만들어서 추가해 주면, 인스턴스 생성되면서, 필요한 모듈이 추가 됩니다.
첨부한 이미지 참조.(빨간 박스가 중요한 부분)

위 wp-config.php 파일을 생성하지 않고,  $VCAP_SERVICES 변수를 PHP $_ENV변수로 가져와서 사용할 때(아래)

$VCAP_SERVICES 변수확인(아래)


#wp-config.php 내용:

....
$services = json_decode($_ENV['VCAP_SERVICES'], true);
$service = $services['Mysql-DB'][0];  // pick the first MySQL service

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define( 'DB_NAME', 'database_name_here' );
define('DB_NAME', $service['credentials']['name']);

/** MySQL database username */
//define( 'DB_USER', 'username_here' );
define('DB_USER', $service['credentials']['username']);

/** MySQL database password */
//define( 'DB_PASSWORD', 'password_here' );
define('DB_PASSWORD', $service['credentials']['password']);

/** MySQL hostname */
//define( 'DB_HOST', 'localhost' );
define('DB_HOST', $service['credentials']['hostname'] . ':' . $service['credentials']['port']);
...

#manifest.xml 내용:

  disk_quota: 1024M
applications:
- name: wp
  memory: 1024M
  host: wp
  domain: paas-ta.org
  services:
  - wp-mysql-db
  - wp-glusterfs
  instances: 1
  disk_quota: 1024M

#options.json 내용:

}
  "PHP_EXTENSIONS": [
    "amqp",
    "apcu",
    "bz2",
    "cassandra",
    "curl",
    "dba",
    "enchant",
    "exif",
    "fileinfo",
    "ftp",
    "gd",
    "gettext",
    "gmp",
    "igbinary",
    "imagick",
    "imap",
    "interbase",
    "ldap",
    "lua",
    "lzf",
    "mailparse",
    "mbstring",
    "mcrypt",
    "memcached",
    "mongodb",
    "msgpack",
    "mysqli",
    "oauth",
    "openssl",
    "pcntl",
    "pdo",
    "pdo_firebird",
    "pdo_mysql",
    "pdo_odbc",
    "pdo_pgsql",
    "pdo_sqlite",
    "pgsql",
    "phalcon",
    "phpiredis",
    "protobuf",
    "pspell",
    "rdkafka",
    "readline",
    "recode",
    "redis",
    "shmop",
    "snmp",
    "soap",
    "sockets",
    "stomp",
    "sysvmsg",
    "sysvsem",
    "sysvshm",
    "tideways",
    "tideways_xhprof",
    "tidy",
    "wddx",
    "xmlrpc",
    "xsl",
    "yaf",
    "yaml",
    "zip",
    "zlib"
  ]
}


기술참조:
https://github.com/cloudfoundry-samples/cf-ex-wordpress
https://github.com/cloudfoundry/php-buildpack/blob/master/fixtures/php_71_all_modules/.bp-config/options.json

앞으로 glusterfs 퍼시스턴스 스토리지를 사용하는 방법을 확인 해야 겠습니다.
워드프레스는 wp-content 폴더가 스토리지에 마운트 되어야 합니다. 파스타에서 스토리지 마운트도 잘 진행 되었으면 합니다.

관련글 더보기

댓글 영역