建站教程

建站教程

Products

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

Docker系列 WordPress系列 WordPress目录结构(使用 docker 搭建 wordpress的操作)

GG网络技术分享 2025-03-18 16:14 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配置持续关注吧!

使用 docker 搭建 wordpress的操作

这不是一篇正规搭建 wordpress 的文章,是基于上一篇的基础之上,进行的实现。最终的实现是使用 nginx 做代理,独立的 wordpress 容器,连接 laradock 的 MySQL 做存储。

修改 nginx 代理

相较于 laradock 的配置,只是修改监听的域名以及转发的端口。在 /etc/nginx/conf.d/ 目录下新建 wordpress.conf 文件,如下

server {

listen  80;

server_name  blog.you_site.com;

location / {

proxy_set_header  Host  $http_host;

proxy_set_header  X-Real-IP  $remote_addr;

proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass  http://[宿主机IP]:8001;

}

}

修改之后记得重启

搭建 wordpress 容器

1.拉取镜像 docker pull wordpress

2.因为 wordpress 要连接 MySQL 容器,正好 laradock 就有,就用这个好了。连接的方式不用 --link,用 --network,可以参考这里

3.laradock 中 MySQL 的 network 在 docker-compose.yml 文件中有写,如下

使用 docker 搭建 wordpress的操作 (https://www.wpmee.com/) WordPress使用教程 第1张

同时使用 docker network ls 查看,可以看到 laradock_backend 这个网络。显而易见使用 laradock_backend 就可以

1.搭建容器 docker run -d --name wordpress -p 8001:80 --network laradock_backend wordpress

2.最后一步,开启服务器(宿主机)8001端口

结语

打开网址,出现了配置界面。将 Database Host 设置为 mysql 就可以。其他的数据表、用户等不在讨论范围之内。

以上就是使用 docker 搭建 wordpress的详细内容,更多请关注网站的其它相关文章

标签:

提交需求或反馈

Demand feedback