Ver Fonte

Wordpress getting-started guide

Aanand Prasad há 11 anos atrás
pai
commit
140ccc7d4e
2 ficheiros alterados com 91 adições e 0 exclusões
  1. 1 0
      docs/_layouts/default.html
  2. 90 0
      docs/wordpress.md

+ 1 - 0
docs/_layouts/default.html

@@ -32,6 +32,7 @@
           <li><a href="install.html">Install</a></li>
           <li><a href="rails.html">Get started with Rails</a></li>
           <li><a href="django.html">Get started with Django</a></li>
+          <li><a href="wordpress.html">Get started with Wordpress</a></li>
         </ul>
         <ul class="nav">
           <li>Reference:</li>

+ 90 - 0
docs/wordpress.md

@@ -0,0 +1,90 @@
+---
+layout: default
+title: Getting started with Fig and Wordpress
+---
+
+Getting started with Fig and Wordpress
+======================================
+
+Fig makes it nice and easy to run Wordpress in an isolated environment. [Install Fig](install.html), then write a `Dockerfile` which installs PHP and Wordpress:
+
+```
+FROM orchardup/php5
+
+ADD http://wordpress.org/wordpress-3.8.1.tar.gz /wordpress.tar.gz
+RUN tar -xzf /wordpress.tar.gz
+ADD wp-config.php /wordpress/wp-config.php
+
+ADD router.php /router.php
+```
+
+Next up, `fig.yml` starts our web service and a separate MySQL instance:
+
+```
+web:
+  build: .
+  command: php -S 0.0.0.0:8000 -t /wordpress
+  ports:
+    - 8000:8000
+  links:
+    - db
+db:
+  image: orchardup/mysql
+  ports:
+    - 3306:3306
+  environment:
+    MYSQL_DATABASE: wordpress
+```
+
+Our Dockerfile relies on two supporting files - first up, `wp-config.php` is the standard Wordpress config file with a single change to make it read the MySQL host and port from the environment variables passed in by Fig:
+
+```
+<?php
+define('DB_NAME', 'wordpress');
+define('DB_USER', 'root');
+define('DB_PASSWORD', '');
+define('DB_HOST', getenv("DB_1_PORT_3306_TCP_ADDR") . ":" . getenv("DB_1_PORT_3306_TCP_PORT"));
+define('DB_CHARSET', 'utf8');
+define('DB_COLLATE', '');
+
+define('AUTH_KEY',         'put your unique phrase here');
+define('SECURE_AUTH_KEY',  'put your unique phrase here');
+define('LOGGED_IN_KEY',    'put your unique phrase here');
+define('NONCE_KEY',        'put your unique phrase here');
+define('AUTH_SALT',        'put your unique phrase here');
+define('SECURE_AUTH_SALT', 'put your unique phrase here');
+define('LOGGED_IN_SALT',   'put your unique phrase here');
+define('NONCE_SALT',       'put your unique phrase here');
+
+$table_prefix  = 'wp_';
+define('WPLANG', '');
+define('WP_DEBUG', false);
+
+if ( !defined('ABSPATH') )
+    define('ABSPATH', dirname(__FILE__) . '/');
+
+require_once(ABSPATH . 'wp-settings.php');
+```
+
+Finally, `router.php` tells PHP's built-in web server how to run Wordpress:
+
+```
+<?php
+
+$root = $_SERVER['DOCUMENT_ROOT'];
+chdir($root);
+$path = '/'.ltrim(parse_url($_SERVER['REQUEST_URI'])['path'],'/');
+set_include_path(get_include_path().':'.__DIR__);
+if(file_exists($root.$path))
+{
+    if(is_dir($root.$path) && substr($path,strlen($path) - 1, 1) !== '/')
+        $path = rtrim($path,'/').'/index.php';
+    if(strpos($path,'.php') === false) return false;
+    else {
+        chdir(dirname($root.$path));
+        require_once $root.$path;
+    }
+}else include_once 'index.php';
+```
+
+With those four files in place, run `fig up` and it'll pull and build the images we need, and then start the web and database containers. You'll then be able to visit Wordpress and set it up by visiting [localhost:8000](http://localhost:8000) - or [localdocker:8000](http://localdocker:8000) if you're using docker-osx.