Ошибки базы данных при запуске Wordpress в Google App Engine

Я пытаюсь запустить Wordpress в моем приложении Google App Engine, внесенном в белый список среды выполнения PHP. Я создал модуль с именем «wordpress» и установил Wordpress 3.6.1 (на голландском языке) в соответствии с инструкциями, приведенными в эта статья. (Обновление: я попробовал Wordpress 2.5.1 English, 2.6 Dutch и 2.6.1 Dutch. Я получил одинаковые сообщения об ошибках во всех версиях.)

Это работало без проблем в моей локальной среде разработки, но не в рабочей среде Google App Engine. Когда я захожу на http://www.mydomain.com/wordpress/, он перенаправляется на http://www.mydomain.com/wordpress/wp-admin/install.php. В журналах App Engine модуля Wordpress я получаю эти сообщения («databasefout» означает «ошибка базы данных»):

E 2013-10-02 09:23:33.030
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query SELECT option_value FROM wp_options WHERE option_name = 'siteurl' LIMIT 1 gemaakt door require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), wp_plugin_directory_constants, get_option
...
E 2013-10-02 09:23:33.506
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query SELECT option_value FROM wp_options WHERE option_name = 'cron' LIMIT 1 gemaakt door require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_schedule_update_checks, wp_next_scheduled, _get_cron_array, get_option
E 2013-10-02 09:23:33.511
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query INSERT INTO `wp_options` (`option_name`, `option_value`, `autoload`) VALUES ('cron', 'a:2:{i:1380698613;a:1:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}s:7:\"version\";i:2;}', 'yes') ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`) gemaakt door require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_schedule_update_checks, wp_schedule_event, _set_cron_array, update_option, add_option
E 2013-10-02 09:23:33.513
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query UPDATE `wp_options` SET `option_value` = 'a:2:{i:1380698613;a:2:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}s:7:\"version\";i:2;}' WHERE `option_name` = 'cron' gemaakt door require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_schedule_update_checks, wp_schedule_event, _set_cron_array, update_option
E 2013-10-02 09:23:33.515
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query UPDATE `wp_options` SET `option_value` = 'a:2:{i:1380698613;a:3:{s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}s:7:\"version\";i:2;}' WHERE `option_name` = 'cron' gemaakt door require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, wp_schedule_update_checks, wp_schedule_event, _set_cron_array, update_option
E 2013-10-02 09:23:33.516
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query SELECT option_value FROM wp_options WHERE option_name = 'theme_switched' LIMIT 1 gemaakt door require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), call_user_func_array, check_theme_switched, get_option
E 2013-10-02 09:23:33.518
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query SELECT option_value FROM wp_options WHERE option_name = 'rewrite_rules' LIMIT 1 gemaakt door require('wp-blog-header.php'), wp, WP->main, WP->parse_request, WP_Rewrite->wp_rewrite_rules, get_option
...
E 2013-10-02 09:23:33.530
WordPress databasefout Table 'wordpress_db.wp_options' doesn't exist bij query SELECT option_value FROM wp_options WHERE option_name = 'sticky_posts' LIMIT 1 gemaakt door require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, get_option

Моя база данных wordpress_db в моем экземпляре Google Cloud SQL все еще пуста (нет таблиц). Мой пользователь MySQL имеет следующие привилегии:

GRANTEE
TABLE_CATALOG
TABLE_SCHEMA
PRIVILEGE_TYPE
IS_GRANTABLE
'wp_user'@'localhost'
def
wordpress_db
SELECT
NO
'wp_user'@'localhost'
def
wordpress_db
INSERT
NO
'wp_user'@'localhost'
def
wordpress_db
UPDATE
NO
'wp_user'@'localhost'
def
wordpress_db
DELETE
NO
'wp_user'@'localhost'
def
wordpress_db
CREATE
NO
'wp_user'@'localhost'
def
wordpress_db
DROP
NO
'wp_user'@'localhost'
def
wordpress_db
REFERENCES
NO
'wp_user'@'localhost'
def
wordpress_db
INDEX
NO
'wp_user'@'localhost'
def
wordpress_db
ALTER
NO
'wp_user'@'localhost'
def
wordpress_db
CREATE TEMPORARY TABLES
NO
'wp_user'@'localhost'
def
wordpress_db
LOCK TABLES
NO
'wp_user'@'localhost'
def
wordpress_db
EXECUTE
NO
'wp_user'@'localhost'
def
wordpress_db
CREATE VIEW
NO
'wp_user'@'localhost'
def
wordpress_db
SHOW VIEW
NO
'wp_user'@'localhost'
def
wordpress_db
CREATE ROUTINE
NO
'wp_user'@'localhost'
def
wordpress_db
ALTER ROUTINE
NO
'wp_user'@'localhost'
def
wordpress_db
EVENT
NO
'wp_user'@'localhost'
def
wordpress_db
TRIGGER
NO

В чем может быть проблема? Мне кажется, Wordpress пытается получить доступ к таблице wordpress_db.wp_options перед ее созданием.

Обновление: если я создам таблицы базы данных вручную в экземпляре Google Cloud SQL, а затем перейду к http://www.mydomain.com/wordpress/, я получу сообщение:

ошибка WordPress при установлении соединения с базой данных


person Korneel    schedule 02.10.2013    source источник
comment
Включите WP_DEBUG, ведение журнала с помощью WP, максимальное ведение журнала с помощью PHP, а затем посмотрите, какая дополнительная информация о вашей проблеме отображается и регистрируется.   -  person hakre    schedule 10.10.2013


Ответы (2)


У меня была такая же проблема, мой сайт нормально работал на локальном хосте, а на сервере - нет.

Когда я углубился в свой код, я обнаружил, что в CREATE [TEMPORARY] TABLE [IF NOT EXISTS] "tbl_name отсутствует какой-то код.

в файле wordpress для создания db, не могу вспомнить, как он называется

С Уважением

person Jan M.    schedule 06.10.2013

По-видимому, установка Wordpress будет успешной только в том случае, если вы получите к ней доступ через URL-адрес wordpress-dot-myapp.appspot.com. Установка не будет успешной, если вы получите к ней доступ через www.mydomain.com/wordpress. Обратите внимание, что в моем случае Wordpress был установлен как модуль существующего Приложение Python.

person Korneel    schedule 07.10.2013