WordPress ENV / WP_HOME / WP_SITE_URL

时间:2017-07-11 23:57:46

标签: wordpress frameworks wordpress-theming environment-variables timber

我努力找到这个问题的原因,并希望有人能指出我正确的方向。

有些部分是基于根的,但我似乎无法找到任何与此有关的答案。

这是文件结构 - > http://imgur.com/a/W2eYY

当我去浏览WordPress的安装/设置并将其输入到URL(框架(。)dev / public / wp /)时,它会自行更改为此(http://framework.dev/public/wp/framework.dev/wp/wp-admin/install.php )有没有办法让它去(framework(。)dev / wp / wp-admin / install.php)

关键

(。)=。

不允许我发布2个以上的链接

.env文件:

BB_USER=BBUSERNAME

DB_NAME=framework
DB_USER=root
DB_PASSWORD=root

DB_HOST=localhost
DB_PREFIX=wp_

WP_ENV=Development
WP_HOME=framework.dev
WP_SITEURL=${WP_HOME}/wp

composer.json:

{
    "name": "framework/framework",
    "description": "Modern WordPress Framework",
    "type": "wordpress-core",
    "authors": [
        {
            "name": "Name",
            "email": "name@gmail.com"
        }
    ],
    "config": {
      "preferred-install": "dist"
    },
    "repositories":[
        {
            "type":"composer",
            "url":"https://wpackagist.org"
        }
    ],
    "scripts": {
        "post-install-cmd": [
            "cp -r public/wp/wp-content public/app"
        ]
    },
    "require": {
        "php": ">=5.6",
        "composer/installers": "1.3.0",
        "johnpbloch/wordpress": "4.8.0",
        "roots/wp-password-bcrypt": "1.0.0",
        "timber/timber": "1.3.2",
        "roots/soil": "3.7.2",
        "mnsami/composer-custom-directory-installer": "1.1.1",
        "vlucas/phpdotenv": "2.4.0",
        "oscarotero/env": "^1.0"
    },
    "require-dev": {
       "squizlabs/php_codesniffer": "^2.5.1"
     },
    "extra": {
      "installer-paths": {
        "public/app/mu-plugins/{$name}/": ["type:wordpress-muplugin"],
        "public/app/plugins/{$name}/": ["type:wordpress-plugin"],
        "public/app/themes/{$name}/": ["type:wordpress-theme"]
    },
        "wordpress-install-dir": "public/wp"
}
}

配置/ application.php

<?php
/** @var string Directory containing all of the site's files */
$root_dir = dirname(__DIR__);
/** @var string Document Root */
$webroot_dir = $root_dir . '/public';

/*
|------------------------------------------------------------------
| Expose global ENV
|------------------------------------------------------------------
|
| Expose global env() function from oscarotero/env
|
*/

Env::init();

/*
|------------------------------------------------------------------
| Dotenv Settings
|------------------------------------------------------------------
|
| Use Dotenv to set required environment variables and load .env file in root
|
*/

$dotenv = new Dotenv\Dotenv($root_dir);
if (file_exists($root_dir . '/.env')) {
    $dotenv->load();
    $dotenv->required(['DB_NAME', 'DB_USER', 'DB_PASSWORD', 'WP_HOME', 'WP_SITEURL']);
}

/*
|------------------------------------------------------------------
| ENV Settings
|------------------------------------------------------------------
|
| Set up our global environment constant and load its config first
| Default: Development
|
*/

define('WP_ENV', env('WP_ENV') ?: 'production');
$env_config = __DIR__ . '/environments/' . WP_ENV . '.php';
if (file_exists($env_config)) {
    require_once $env_config;
}

/*
|------------------------------------------------------------------
| URL
|------------------------------------------------------------------
|
| Env's for the URL
|
*/

define('WP_HOME', env('WP_HOME'));
define('WP_SITEURL', env('WP_SITEURL'));

/*
|------------------------------------------------------------------
| Custom Content Directory
|------------------------------------------------------------------
|
| Changes where the content is stored.
|
*/

define('CONTENT_DIR', '/app');
define('WP_CONTENT_DIR', $webroot_dir . CONTENT_DIR);
define('WP_CONTENT_URL', WP_HOME . CONTENT_DIR);

/*
|------------------------------------------------------------------
| DB Settings
|------------------------------------------------------------------
|
| Uses ENV to populate the correct DB settings.
|
*/

define('DB_NAME', env('DB_NAME'));
define('DB_USER', env('DB_USER'));
define('DB_PASSWORD', env('DB_PASSWORD'));
define('DB_HOST', env('DB_HOST'));
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
$table_prefix = env('DB_PREFIX');

/*
|------------------------------------------------------------------
| Authentication Unique Keys and Salts
|------------------------------------------------------------------
|
| Automatically Generated by the init setup command
|
*/

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');

/*
|------------------------------------------------------------------
| Custom Settings
|------------------------------------------------------------------
|
| Custom Global Settings that won't be affected by the ENV
|
*/

define('AUTOMATIC_UPDATER_DISABLED', true);
define('DISABLE_WP_CRON', env('DISABLE_WP_CRON') ?: false);
define('DISALLOW_FILE_EDIT', true);
define ('WPLANG', 'en_GB');

/*
|------------------------------------------------------------------
| Roots/soil Settings
|------------------------------------------------------------------
|
| Include any number of roots/soil options here
|
*/

// add_theme_support('soil-clean-up');
// add_theme_support('soil-disable-trackbacks');
// add_theme_support('soil-relative-urls');

/*
|------------------------------------------------------------------
| Bootstrap WordPress
|------------------------------------------------------------------
|
| Bootstrap WordPress
|
*/

if (!defined('ABSPATH')) {
    define('ABSPATH', $webroot_dir . '/wp/');
}

公共/ index.php的

<?php
define('WP_USE_THEMES', true);
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );

公共/ WP-config.php中

<?php
require_once(dirname(__DIR__) . '/vendor/autoload.php');
require_once(dirname(__DIR__) . '/config/application.php');
require_once(ABSPATH . 'wp-settings.php');

WP-cli.yml

path: public/wp

2 个答案:

答案 0 :(得分:1)

http:// 添加到您的WP_HOME env变量。

答案 1 :(得分:0)

这似乎有效。

WP_HOME=http://example.dev/public
WP_SITEURL=${WP_HOME}/wp/