首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wordpress管理员在迁移到新服务器后不能发布新的帖子

wordpress管理员在迁移到新服务器后不能发布新的帖子
EN

Stack Overflow用户
提问于 2014-12-11 12:40:46
回答 3查看 3K关注 0票数 1

读了很多书来解决这个问题,但我被困住了.

将WP站点从共享移动到linode VPS。

Configs

WordPress 3.6.1

mysql Ver 14.14远端5.7.5-m15,使用EditLine包装器(x86_64)

PHP5.18-1+deb.sury.org~+1 (cli) (建于2014年10月17日15:11:34)

apache

服务器版本: Apache/2.4.10 (Ubuntu)

服务器构建日期:2014年7月22日22:57:50

DB是ut8

虚拟主机conf文件:

代码语言:javascript
复制
DocumentRoot /home/userName/webSite

<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    <Directory /var/www/>
        Options FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Require all granted
    </Directory>

.htaccess:

代码语言:javascript
复制
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

在wp_usermeta表中的管理:

代码语言:javascript
复制
wp_capabilities
a:1:{s:13:"administrator";s:1:"1";}

所以登录是可以的。

编辑职位正在工作

PROBELM:

新发布有“提交审查”按钮,安装了“发布”!

单击“submit for review”将显示“您没有编辑文章的适当权限”

我似乎找不到问题了。

我尝试过修复文件和文件夹权限。

向WP_HOME添加定义(‘WP_HOME’和define('WP_SITEURL‘)

我甚至不知道从哪里开始..。

wp_posts表在ID上有A_I。wp_posts转储显示:

代码语言:javascript
复制
--
-- AUTO_INCREMENT for table `wp_posts`
--
ALTER TABLE `wp_posts`
MODIFY `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7633;

7633是下一个职位ID。

我怎么解决这个问题??请问任何问题,因为我已经通过大多数修复建议在网上。

ThanX :-)

EN

回答 3

Stack Overflow用户

发布于 2018-01-11 20:00:16

迁移意味着环境变化

你的环境是什么?一个是Mysql!

考虑到涉及到迁移,我打赌这与你的数据库有关.您可以检查日志,找出哪些查询失败了。对我来说,它是sql,特别是在日期不被接受的时候与0相关的。(在新发布的草稿中出现)。

继续阅读,以解决sql_mode,如果这是你的问题。

检查您的sql_mode

要检查当前的sql_mode是什么,可以在mysql (可能是根mysql用户)中这样做:SELECT @@sql_mode;

Wordpress使用0表示“空”日期时间,一些sql模式设置不允许这样做。我相信有一些插件试图解决应用层( wordpress)的日期问题,但我认为这可能有点麻烦……

我选择了切换我的sql_mode,并将我的NO_ENGINE_SUBSTITUTION模式变成了NO_ENGINE_SUBSTITUTION,因为wordpress是使用我的数据库的唯一工具,而且我也可以在我的项目中使用这个sql_mode。您可能需要保留sql_mode设置中的大多数设置,但只需删除“无零在日期”选项,因此在重置当前sql_mode之前,应该检查当前的sql_mode是什么。

默认情况下,sql_modes是什么?

MySQL 5.7中的默认SQL模式包括以下模式: ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER和NO_ENGINE_SUBSTITUTION。

因此,如果您发现NO_ZERO_IN_DATE, NO_ZERO_DATE存在,您可能希望从它中删除它,并保存其余的。

在哪里更改sql模式?

若要在服务器启动时设置SQL模式,请在命令行上使用--sql- mode =“mode”选项,或在选项文件(如my.cnf (Unix操作系统)或my.ini (Windows) )中使用sql-mode=“mode”。模式是由逗号分隔的不同模式的列表。若要显式清除SQL模式,请使用命令行上的- sql- mode ="“或选项文件中的sql-mode=”“将其设置为空字符串。

我在服务器上为mysql程序设置了options.cnfmy.cnf

票数 3
EN

Stack Overflow用户

发布于 2014-12-11 13:07:14

解决方案

定义一个新的管理用户

与管理用户登录

将您以前的管理员降为贡献者

将其增加到管理员

使用原始管理员登录

现在起作用了。

删除新管理员

现在又恢复正常了。

票数 0
EN

Stack Overflow用户

发布于 2014-12-17 16:40:22

在许多不同的解决方案之后,我能找到的唯一解决方案就是安装WordPress4.0.1的新副本,并修复所有问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27423160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档