wordpress更改过页面固定连接以后为啥新建页面会出现404错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wordpress更改过页面固定连接以后为啥新建页面会出现404错误?相关的知识,希望对你有一定的参考价值。

参考技术A

最大的可能性就是 apache(php 服务器)的配置出现了问题。如果你不是 Apache 服务器,而是用的 IIS 调试的话,那就得去安装一个 “ISAPI_Rewrite3_0069_Lite.msi”筛选器,然后在站点设置里面将 PHP 置为优 先级。

解决方法:先找到 Apache 安装的路径,在其根目录下“conf 文件夹”中有一个文件叫 “httpd.conf”,用记事本将它打开,按“ctrl+F”键,弹出查找窗口,输入 “#LoadModule rewrite_module modules/mod_rewrite.so”,如果能找到的话, 把前面的#删除,这个#号表示注释,也就是没有开启,我们去掉之后也就开启了重启 apache 服务器,再去后台保存一下“固定链接”,重新打开页面。

这是在浏览这些站点时遇到各种不同的连接错误。这种错误一般是由于网站发生故障或者你没有浏览权限所引起。最常见的就是404 NOT FOUND错误信息。主要是因为IE不能找到要求的网页文件,该文件可能根本不存在或者已经被转移到其他地方。

常见问题如下:
404-未找到。
404.0-(无)_没有找到文件或目录。
404.1-无法在所请求的端口上访问Web站点。
404.2-Web服务扩展锁定策略阻止本请求。
404.3-MIME映射策略阻止本请求。

为啥 mysql CLI 可以连接,而 WordPress 却不能?

【中文标题】为啥 mysql CLI 可以连接,而 WordPress 却不能?【英文标题】:Why can mysql CLI connect, but not WordPress?为什么 mysql CLI 可以连接,而 WordPress 却不能? 【发布时间】:2017-11-24 22:35:26 【问题描述】:

我有一个全新的 Wordpress (php-fpm/nginx) 服务器。在 CentOS 上运行。我还有一个 docker 容器,由 vanilla mysql-server 映像构建。

MySQL 配置

它运行在3306端口上,所有MySQL用户都在MySQL中注册,主机为172.17.0.1(例如root@172.17.0.1),这是docker的网关IP。 docker 容器是使用 ansible playbook 安装的。所有配置设置都是参数化的,并且这些参数在适当的地方使用,包括 WordPress 配置文件和在 MySQL docker 安装期间填写 root 密码等内容的环境变量。这里是我配置相关数据库的地方:

WordPress 配置:

这分为两部分,我将包括其中相关的部分。在我的 ansible playbook 中,这段代码设置了 WordPress 表和用户(成功):

- name:             Create WordPress database
  mysql_db:
    name:           ' wp_db_name '
    state:          present
    login_user:     root
    login_password: ' mysql_root_password '
    login_host:     ' docker_mysql_ip '

- name:             Create WordPress database user
  mysql_user:
    name:           ' wp_db_user '
    password:       ' wp_db_password '
    priv:           ' wp_db_name .*:ALL'
    state:          present
    login_user:     root
    host:           ' docker_gateway_ip '
    login_password: ' mysql_root_password '
    login_host:     ' docker_mysql_ip '

相关的 wp-config.php:

define('DB_NAME', 'wordpress');
define('DB_USER', ' wp_db_user ');
define('DB_PASSWORD', ' wp_db_password ');
define('DB_HOST', ' docker_mysql_ip ');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

当我导航到 wp-admin 时,具体问题是“Warning: mysql_connect(): Permission denied in /srv/wordpress/wp-includes/wp-db.php on line 1473”,标题为“建立数据库连接时出错”,状态码 500。

令人困惑的部分

当我检查 wp-config.php 文件时,用户名、密码和数据库名称都与它们应有的完全一样。当我将主机、用户和密码从wp-config.php 复制/粘贴到命令行上的相应位置(例如mysql -u wordpress -p -h 172.17.0.2)时,我可以连接并查看 Wordpress 数据库。

总结一下

使用命令行时 MySQL 可以正常连接,但 Wordpress 不能。我对 Wordpress 或 PHP 也不是很熟悉,因此对于与问题相关的日志可以位于何处的任何想法将不胜感激。

【问题讨论】:

这不应该指向本地主机:define('DB_HOST', '127.0.0.1: mysql_port '); 对不起。我在 3 个会话中写了这个,忘记更新我对 wp-config.php 的更改。已编辑。 CentOS 主机是否运行 SELinux?默认情况下,可能不允许与 MySQL 建立 TCP 连接。检查getenforce 另见***.com/questions/8139451/… 【参考方案1】:

我刚刚在使用 MariaDB 的 Debian 9.1 上遇到了这个问题,但这在 Oracle MySQL 中应该是一样的。我可以从命令行轻松登录,但 PHP 无法访问数据库。

我花了几分钟才弄明白,但我记得当我以前在旧服务器上使用 Arch Linux 时(顺便说一句,这是一个愚蠢的想法),需要命令 mysql_secure_installation 来让它接受连接.

试试看,这对我有用。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

【讨论】:

以上是关于wordpress更改过页面固定连接以后为啥新建页面会出现404错误?的主要内容,如果未能解决你的问题,请参考以下文章

wordpress固定链接,/%post_id%,和/%post_id%.html有啥区别

Wordpress中的固定链接 - 找不到页面

wordpress中文目录出现“有点尴尬诶!该页无法显示"

wordpress博客文章作者信息页面显示不了

如何在 WordPress 中创建登录页面

Wrapper 100% 高度,固定页脚和固定菜单