建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

Docker系列 WordPress系列 WordPress目录结构(WordPress在安装使用过程中出现404、403、500及502错误的原因与解决方法)

GG网络技术分享 2025-03-18 16:12 0


Docker系列 WordPress系列 WordPress目录结构

前言

经过《Docker系列 WordPress系列 安装WP Githuber MD》、《Docker系列 WordPress系列 WordPress上传或更新Markdown的最佳实践》等地方的学习,我们已经掌握了博客写作的一些提高效率的技巧。相信你这个时候已经迫不及待地想要更进一步——搞一个漂亮的WordPress主题!

是的,我其实也很想讲WordPress主题了,毕竟那是建站最有趣的部分!不过在此之前,我觉得有一些东西你需要了解一下,那就是WordPress的目录结构

通过Shell,我们可以在一定程度上洞察WordPress是如何工作的。而且你可能会发现,它在本质上和Nextcloud、Chevereto这些应用的目录是十分相似的。这可能是由于它们都是基于PHP的吧!

下面我们快速地了解一些相关知识。GO!

WordPress目录

我们可以回看《Docker系列 WordPress系列 搭建WordPress个人博客》,看看它的yml文件的内容:

app:

image: wordpress:latest

restart: unless-stopped

ports:

- 4145:80 # 按需修改。与防火墙开放端口一致。

environment:

WORDPRESS_DB_HOST: db

WORDPRESS_DB_NAME: wordpress

WORDPRESS_DB_USER: wordpress

WORDPRESS_DB_PASSWORD: yourpassword # 按需修改

volumes:

- './app:/var/www/html'

links:

- db:db

networks:

- default

我们可以看到,在用Docker搭建的时候,我们将/var/www/html目录挂载到了.app里。所以我们就进去里面看一下。

设置一下全局路径:

html=~/docker/wordpress/app && cd $html

我们可以看一下一层目录:

tree -L 1

输出为:

├── index.php

├── license.txt

├── readme.html

├── wp-activate.php

├── wp-admin # 这是个文件夹

├── wp-blog-header.php

├── wp-comments-post.php

├── wp-config-docker.php

├── wp-config.php

├── wp-config-sample.php

├── wp-content # 这是个文件夹

├── wp-cron.php

├── wp-includes # 这是个文件夹

├── wp-links-opml.php

├── wp-load.php

├── wp-login.php

├── wp-mail.php

├── wp-settings.php

├── wp-signup.php

├── wp-trackback.php

└── xmlrpc.php

下面我们选一些比较重要的文件进行说明。

wp-config文件

这是一个很重要的文件,可以更改一些默认设置。甚至和安全问题有关。

├── wp-config.php

├── wp-config-sample.php

wp-config-sample.php是一个示例文件,你可以在里面看到一些示例。实际生效的是wp-config.php。这个文件里有一些我曾经接触过的比较重要的项目。比如:

WP_DEBUG

define("WP_DEBUG", false);

define("WP_DEBUG_LOG", false);

如果这两项设置为true的话,这个日志可能会向公众发布你的网站信息。一般只有在网站调试的时候才可能用到。如果你用Wordfence的话,这一项会被定义为高危。

WP_HOME/WP_SITEURL

另外还有一个,就是可以强行设置默认站点URL:

define('WP_HOME','http://localip:port');

define('WP_SITEURL','https://exampledomain.com');

我以前在无443端口的机器上需要用到这一项;在VPS里则不需要。

Proxy

// *配置HTTP代理服务器* //

define('WP_PROXY_HOST', '192.168.1.150');

define('WP_PROXY_PORT', '7890');

define('WP_PROXY_USERNAME', '');

define('WP_PROXY_PASSWORD', '');

define('WP_PROXY_BYPASS_HOSTS', 'localhost');

我是在网上偶然发现的,自己没有试过。也没搞懂它的应用场景。有大佬知道的不?

ALLOW_UNFILTERED_UPLOADS

如果设置:

define( 'ALLOW_UNFILTERED_UPLOADS', true);

你就可以在媒体库上传各种格式的文件。

xmlrpc.php文件

这个文件你平时是不会直接操作它的。不过,它却是很多自动同步(包括我们之前用到的m2w)可以成功的核心文件。

wp-content目录

total 24K

-rw-r--r-- 1 www-data www-data 28 Jan 9 2012 index.php

drwxr-xr-x 4 www-data www-data 4.0K Apr 27 09:17 languages

drwxr-xr-x 4 www-data www-data 4.0K Apr 27 10:44 plugins

drwxr-xr-x 6 www-data www-data 4.0K Apr 27 09:17 themes

drwxr-xr-x 2 www-data www-data 4.0K Apr 27 10:44 upgrade

drwxr-xr-x 3 www-data www-data 4.0K Apr 27 09:16 uploads

uploads文件夹存放的是你平时在多媒体里上传的图片。

themes是你所下载的主题所存放的位置。

plugins是你所下载的插件的位置

我正在运行的博客,这个目录下是这样的:

total 52K

-rw-r--r-- 1 www-data www-data 1.2K Apr 21 14:01 advanced-cache.php

drwxr-xr-x 4 www-data www-data 4.0K Apr 27 14:17 cache

-rw-r--r-- 1 www-data www-data 28 Jan 8 2012 index.php

drwxr-xr-x 4 www-data www-data 4.0K Apr 10 06:13 languages

drwxr-xr-x 19 www-data www-data 4.0K Apr 26 11:36 plugins

drwxr-xr-x 7 www-data www-data 4.0K Apr 12 16:39 themes

drwxr-xr-x 2 www-data www-data 4.0K Apr 26 11:36 upgrade

drwxr-xr-x 4 www-data www-data 12K Apr 26 13:33 uploads

drwxr-xr-x 2 www-data www-data 4.0K Apr 16 05:58 w3tc-config

drwxr-xr-x 2 www-data www-data 4.0K Apr 27 13:41 wflogs

-rw------- 1 www-data www-data 3.6K Apr 27 03:33 wp-cache-config.php

内容多了好多。这主要是有一些插件会在这个文件平里托管它们的源文件。

一个典型的theme

这里我以argon主题为例,它的文件还挺多的:

total 1000K

-rw-r--r-- 1 www-data www-data 4.8K Apr 11 08:13 404.php

-rw-r--r-- 1 www-data www-data 17K Apr 11 08:13 admin.css

-rw-r--r-- 1 www-data www-data 1.1K Apr 11 08:13 archive.php

-rw-r--r-- 1 www-data www-data 86K Apr 11 08:13 argontheme.js

drwxr-xr-x 8 www-data www-data 4.0K Apr 11 08:13 assets

-rw-r--r-- 1 www-data www-data 13K Apr 11 08:13 comments.php

-rw-r--r-- 1 www-data www-data 416 Apr 11 08:13 comments-shuoshuo-preview.php

-rw-r--r-- 1 www-data www-data 7.3K Apr 11 08:13 emotions.php

-rw-r--r-- 1 www-data www-data 7.3K Apr 17 06:32 footer.php

-rw-r--r-- 1 www-data www-data 111K Apr 18 16:21 functions.php

drwxr-xr-x 4 www-data www-data 4.0K Apr 11 08:13 gutenberg

-rw-r--r-- 1 www-data www-data 26K Apr 11 08:13 header.php

-rw-r--r-- 1 www-data www-data 675 Apr 11 08:13 index.php

-rw-r--r-- 1 www-data www-data 194 Apr 11 08:13 info.json

drwxr-xr-x 2 www-data www-data 4.0K Apr 11 08:13 languages

-rw-r--r-- 1 www-data www-data 35K Apr 11 08:13 LICENSE

-rw-r--r-- 1 www-data www-data 3.4K Apr 11 08:13 login.css

-rw-r--r-- 1 www-data www-data 1.2K Apr 11 08:13 msgboard.php

-rw-r--r-- 1 www-data www-data 533 Apr 11 08:13 page.php

-rw-r--r-- 1 www-data www-data 51K Apr 11 08:13 parsedown.php

-rw-r--r-- 1 www-data www-data 4.8K Apr 11 08:13 README_en.md

-rw-r--r-- 1 www-data www-data 28K Apr 11 08:13 README.md

-rw-r--r-- 1 www-data www-data 6.6K Apr 11 08:13 README_ru.md

-rw-r--r-- 1 www-data www-data 4.7K Apr 11 08:13 README_tw.md

-rw-r--r-- 1 www-data www-data 113K Apr 11 08:13 screenshot.png

-rw-r--r-- 1 www-data www-data 687 Apr 11 08:13 searchform.php

-rw-r--r-- 1 www-data www-data 2.7K Apr 11 08:13 search.php

-rw-r--r-- 1 www-data www-data 152K Apr 11 08:13 settings.php

-rw-r--r-- 1 www-data www-data 1.2K Apr 11 08:13 shuoshuo.php

-rw-r--r-- 1 www-data www-data 14K Apr 12 02:36 sidebar.php

-rw-r--r-- 1 www-data www-data 4.0K Apr 11 08:13 single.php

-rw-r--r-- 1 www-data www-data 544 Apr 11 08:13 single-shuoshuo.php

drwxr-xr-x 4 www-data www-data 4.0K Apr 11 08:13 stickers

-rw-r--r-- 1 www-data www-data 146K Apr 12 03:28 style.css

drwxr-xr-x 2 www-data www-data 4.0K Apr 11 08:13 template-parts

drwxr-xr-x 8 www-data www-data 4.0K Apr 11 08:13 theme-update-checker

-rw-r--r-- 1 www-data www-data 594 Apr 11 08:13 timeline.php

-rw-r--r-- 1 www-data www-data 3.3K Apr 11 08:13 unsubscribe-comment-mailnotice.php

-rw-r--r-- 1 www-data www-data 59K Apr 11 08:13 useragent-parser.php

其中footer.php、functions.php文件经常可以被魔改,以实现一些特效,比如本博客的页面雪花、点击特效、看板娘(就是那个猫猫)。

小结

这一部份不是很重要,大家了解一下即可。和这部分相关的内容,在以后的具体实现时会再提起。暂时就这样!

更多WordPress配置持续关注吧!

WordPress在安装使用过程中出现404、403、500及502错误的原因与解决方法

最近在使用WordPress的时候遇到了一些错误提示,相信大家在使用wordpress建立网站的时候,都会遇到一些问题,一般来说分为2种情况。

第一种情况是程序报错:程序报错一般会直接在网站顶部或者网站其他部分显示错误或者警告提示,如error:… 、Notice:….、 warning:….

这些是程序在运行中出现的问题,一般服务器没有屏蔽php错误的话就会出现这些提示,而一般为了安全性,服务器或者虚拟主机都会屏蔽错误,那么就会白屏,或者网页显示不全(在发生错误的地方会停止往下加载),这类问题需要从程序入手,比如插件、主题是否损坏,是否兼容最新版本,等等问题,此类问题需要联系网站软件程序提供商进行解决。

这类问题在此处不做主要讲解。

第二种情况是服务器的报错:服务器报错有专门的代码进行提示,如我们标题所说的这些提示,下面我们就来分析一下,出现这些提示的一般原因和应对方法。

常见的报错状态代码提示所表示的含义、以及一般解决方式,在下文我们将详细分析,话不多说了,来一起看看详细的介绍:

网站访问显示状态404(Not Found)

网站访问出现404时,是当前访问的url无法在服务器找到相关的资源,出现无法找到的情况显示的状态,就wordpress而言,404所出现会有如下一些状态。

1.网站首页能够打开,内页全部404状态

这种状态是由于wordpress默认是一款动态的程序,如果服务器没有做好伪静态而又选择了静态链接,如文章名链接、数字连接等形式,那么没有伪静态的重写将会显示404状态,因此如果遇到这种情况,一般来说我们做好服务器的伪静态就可以了,伪静态的处理有多种方式,每种WEB引擎(常见的:IIS/Apache/Nginx)处理都不一样,你需要自己处理好或者联系你的服务器商帮助你处理好。

2.网站包括首页全部404

如果访问首页都是404的话,那么你就要去查看下你的域名解析以及主机绑定是否出现问题,如果是虚拟主机,你需要查看下你所解析和绑定的主机是否是正确的,这种情况一般是解析到了另一台没有资料的虚拟主机上,进而显示404了。

如果你是使用的服务器,那么你需要看你所绑定的目录是否和你的wordpress网站目录一致。如果不一致,绑定到了错误的目录上面,也会造成404的情况。

3.网站前台正常,后台某些页面出现404

这种情况一般发生在IIS服务器上,比如说在wordpress后台点击文章,或者点击分类目录、标签等显示404,而其他的内容则正常的。

这情况一般是IIS的伪静态不正确造成的,你可以尝试将web.cofing恢复到初始的版本,也就是伪静态之前的版本,然后所有的选项均正常了,这就要求你的伪静态文件配置有问题,需要重新配置好,才能正确的显示。

网站访问状态显示403(Forbidden)

网站访问403状态时,表示你没有权限访问该资源,这种情况一般是2个问题造成的。

1.网站目录权限设为不可读

如果你的网站根目录设置的权限为不可读不可写,那么整个目录下的文件都是没有权限访问的,这需要你去更改好你的服务器目录的权限。

2.网站没有设置首页识别文件(默认首页)

wordpress是php程序,因此默认首页应该为index.php,如果你没有设置这个默认的首页文件,那么程序是无法是别的,某些服务器上会显示403,而某些会显示404,这个问题需要检查你的默认首页是否设置正确了。

网站访问状态显示502(bad gateway)

网站502,一般在wordpress访问中是进程错误,某个进程在运行中错误,造成进程停止工作而造成的,一般来说会有几种情况:

1.wordpress安装、安装完成后台部分页面显示502

这种问题一般是CentOS 6.x系统+PHP5.2+最新版的WordPress程序 组合出现的。一般来说我们不推荐php5.3以下的版本运行wordpress,wordpress目前推荐使用5.6以上版本,更加稳定。

解决方式也很简单,升级到php5.3以上版本或者将CentOS更换为其他系统 即刻解决。

2.网站安装正常,运行正常,但时不时出现502的状态

如果是这种情况的话,相对原因较为复杂,一般是服务器环境没有搭建好导致的,这种情况频发的话,建议全站进行备份,并重新搭建服务器环境解决。

网站访问状态显示500(Internal Server Error)

网站500错误,显示的是服务器内部错误,造成这个错误的原因有很多。

1.网站程序错误造成的500

这种情况一般是其他页面正常,访问某个特定的页面或者执行某个特定的操作造成的500,一些服务器不会讲php警告、错误和提示等信息直接显示出来,而是直接显示500错误,这样会给我们造成一定的困扰,但是如果是如上所说发生的情况,那么就是程序执行造成的错误。

如果你对php程序有所了解,那么你可以首先打开php的错误提示,在你的php配置文件php.in中找到display_errors ,将off改为on,保存即可打开,打开之后即可看到是哪一个程序出现了问题,

若还是没有发现问题,你可以打开wordpress的debug模式,在wordpress的配置文件wp-confing.php中找到define(‘WP_DEBUG’, false); 将其修改为define(‘WP_DEBUG’,true);即可打开debug模式,这样就能顺利的查找到造成错误的程序文件以及代码了。

2.php版本所致

如果你在使用较低的php版本,那么可能会出现500的情况,在进行其他操作之前,你可以将php版本升级到更高的版本(推荐5.6以上版本),再查看状态,

抑或你所安装的php版本过高,而程序为兼容,如php7

在php7中弃用了大量的函数,转而使用新的函数代替,如果你的程序为兼容php7,那么也会出现问题,这样就需要让程序更新兼容php7,或者降低服务器的php版本到5.6即可正常。

3.网站目录权限

网站目录权限的不正确也会造成500的情况发生,Windows系统的主机,文件夹和文件的权限都可以是777;但是Linux系统的主机,文件夹和文件的权限设置成777,这样是错误,访问也会出现500错误。

Linux主机正确的文件权限是:文件夹:755;文件:644。但是有特殊的情况,比如baidu的xml文件通常设置成777,这个是不影响网站正常运行的。

你也可以从网站目录的方面查找问题。

4.301转向造成的500

如果你对于301转向不太懂,而且使用的是服务器而非虚拟主机(一般虚拟主机的301都有选项可以设置,不会出错),在301转向文件中添加了不正确的代码,web.confing,.htaccess等文件中加入了不正确的代码,也会造成500的情况发生了。

所以出现500,你还可以朝着这个方向去检查。

总而言之,500错误的造成有很多种,需要耐心的一条条的检查。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,

标签:

提交需求或反馈

Demand feedback