私はWordPressサイトをローカルで開発していましたが、すべてうまくいきました。私がコントロールするVPS上にプレビューサイトを設定しました。アカウントには最終ドメインがあり、サブドメインを追加してそのサブドメインにサイトを設定しました。
この時点で、ほとんどの機能が動作します。私はサイトの正面をナビゲートすることができます。バックエンドでは、状況は不安定になります。管理者のいくつかのアクションはサイトのフロントページへのリダイレクトを強制します。たとえば、 "Plain"以外のものでパーマリンクを保存しようとしたとします。パーマリンクの設定に関係なく、Appearance-> Menusに移動して保存しようとすると、ホームページにリダイレクトされます。私が(ajaxを介して)きれいなアップデートを使用してプラグインをアップデートしようとするならば、それはそれがエラーであると言って、作り出される出力はフロントページのためのマークアップです。
これはローカルコピー上の問題ではありませんでした(そしてまだ問題ではありません)。私はすべてのプラグインを無効にし、テーマを2017に切り替えました。サイコロはありません。 WP-CLIはデータベース上で検索/置換を行い、すべて成功しました。最後の注意点は、コアファイルをサブディレクトリ(wp
)に保存していることです。これは、私のサイトルートのindex.php
がこれを行うことを意味します。
require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );
そしてwp-config.php
では、私は明示的に定義しなければなりません:
define('WP_CONTENT_DIR', dirname(__FILE__).'/wp-content'); define('WP_CONTENT_URL', 'http://preview.mysite.com'.'/wp-content');
これにより、コアファイルと同じディレクトリでwp-content
が検索されなくなります。私は何度もこの設定を問題なく使用しました。私は同じセットアップを使ってこのVPS上にもう一つのWordPressサイトを持っていますが、サブドメインはありません。私は全部を廃棄して無駄になった。
誰もがこのようなものを見たことがありますか?
wp-config.php:
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the
* installation. You don't have to use the web site, you can
* copy this file to "wp-config.php" and fill in the values.
*
* This file contains the following configurations:
*
* * MySQL settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://codex.wordpress.org/Editing_wp-config.php
*
* @package WordPress
*/
// ** MySQL settings - You can get this info from your web Host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'databasehere');
/** MySQL database username */
define('DB_USER', 'userhere');
/** MySQL database password */
define('DB_PASSWORD', 'passwordhere');
/** MySQL hostname */
define('DB_Host', 'localhost');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
/**#@+
* Authentication Unique Keys and Salts.
*
* Change these to different unique phrases!
* You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
* You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
*
* @since 2.6.0
*/
// salts defined properly here
/**#@-*/
/**
* WordPress Database Table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
define('WP_CONTENT_DIR', dirname(__FILE__).'/wp-content');
define('WP_CONTENT_URL', 'http://preview.url.com'.'/wp-content');
define( 'WP_HOME', 'http://' . $_SERVER['SERVER_NAME'] );
define( 'WP_SITEURL', WP_HOME . '/wp' );
/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
そしてディレクトリ構造:
- preview
- .git
- .gitignore
- .htaccess
- composer.json
- composer.lock
- index.php
- readme.md
- vendor/
- wp/
- license.txt
- readme.html
- wp-activate.php
- wp-admin
- wp-includes
- and all the other usual root files
- wp-config.php
- wp-content/ <-- has what you would expect: plugins, themes, uploads...
問題は、サーバーで有効になっているOWASP ModSecurityルールが原因で、誤検知が発生していました。無効、解決しました。 新しい問題ではありません 。またここで答えました。