读了很多书来解决这个问题,但我卡住了......:-(
将 WP 站点从共享移动到 linode VPS。
配置:
WordPress 3.6.1
mysql Ver 14.14 Distrib 5.7.5-m15,适用于使用 EditLine 包装器的 Linux (x86_64)
PHP 5.5.18-1+deb.sury.org~precise+1 (cli)(构建时间:2014 年 10 月 17 日 15:11:34)
Apache
服务器版本:Apache/2.4.10 (Ubuntu)
服务器构建:2014 年 7 月 22 日 22:57:50
DB 是 ut8
虚拟主机配置文件:
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:
# 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 表中的管理员:
wp_capabilities
a:1:{s:13:"administrator";s:1:"1";}
这样登录就ok了。
编辑帖子有效
问题:
新帖子的“提交以供审核”按钮取代了“发布”按钮!
单击“提交以供审核”会显示“您没有合适的权限来编辑帖子”
而且我似乎找不到问题。
我尝试修复文件和文件夹权限。
将 define('WP_HOME' 和 define('WP_SITEURL' 添加到 wp-config
我什至不知道从哪里开始......
wp_posts 表在 ID 上有 A_I。 wp_posts DUMP 显示:
--
-- AUTO_INCREMENT for table `wp_posts`
--
ALTER TABLE `wp_posts`
MODIFY `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7633;
7633 是下一个帖子 ID。
我该如何解决这个问题?? 请提出任何问题,因为我已经完成了网络上建议的大部分修复。
谢谢:-)
最佳答案
迁移意味着环境的改变
您的环境中有什么? Mysql一个!
鉴于涉及迁移,我敢打赌这与您的数据库有关...您可以检查日志以找出哪些查询失败了。对我来说是sql_mode ,具体与日期时间中的 0s 不被接受有关。 (发生在新的帖子草稿上)。
如果这是您的问题,请继续阅读以解决 sql_mode。
检查你的sql_mode
要检查您当前的 sql_mode
是什么,您可以在 mysql 中执行此操作(可能作为 root mysql 用户):SELECT @@sql_mode;
Wordpress 使用 0 表示“空”日期时间,而某些 SQL 模式设置不允许这样做。我相信有一些插件试图在应用程序层(在 wordpress 中)解决日期为 0 的问题,但我认为这可能有点 hacky...
我选择切换我的 sql_mode 并使我的 sql 模式仅为 NO_ENGINE_SUBSTITUTION
因为 wordpress 是唯一使用我的数据库的东西,我对我的项目的 sql_mode 没问题。您可能需要保留 sql_mode 设置中的大部分设置,但只需删除日期选项中的无零,因此您应该在重置之前检查当前的 sql_mode 是什么。
默认的sql_modes是什么?
The default SQL mode in MySQL 5.7 includes these modes: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION.
因此,如果您发现 NO_ZERO_IN_DATE, NO_ZERO_DATE
存在,您可能希望将其删除,并保留其余部分。
我在哪里更改我的sql模式?
To set the SQL mode at server startup, use the --sql-mode="modes" option on the command line, or sql-mode="modes" in an option file such as my.cnf (Unix operating systems) or my.ini (Windows). modes is a list of different modes separated by commas. To clear the SQL mode explicitly, set it to an empty string using --sql-mode="" on the command line, or sql-mode="" in an option file.
我在服务器上为mysql程序设置了options.cnf或my.cnf。
关于php - 迁移到新服务器后,wordpress 管理员无法发布新帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27423160/