首页 后端开发 php教程 使用 Docker 在本地运行 WordPress!

使用 Docker 在本地运行 WordPress!

Sep 10, 2024 pm 08:32 PM

在本地系统上安装 WordPress 有很多步骤。您需要安装 PHP、MySQL、服务器等。值得庆幸的是,有了 Docker 的帮助,本地安装 WordPress 有了更简单的方法!方法如下!

步骤

⚠️ 在继续之前,请确保您已安装 Docker。

第1步:创建一个新目录

首先,我们需要为您的项目创建一个新的文件夹/目录。在您想要的任何地方创建它并从您的终端打开它/指向它。

mkdir my-wordpress-blog
cd my-wordpress-blog

第 2 步:打开代码编辑器

接下来我们将创建一些文件和文件夹。最简单的方法是打开您最喜欢的代码编辑器。我的是 Visual Studio Code,可以像这样从终端打开:

code .

第 3 步:创建 Dockerfile

使用代码编辑器创建第一个名为 Dockerfile 的文件。在文件内,粘贴以下行:

FROM php:7.4-apache

RUN docker-php-ext-install mysqli

但这有什么作用呢?

嗯,Dockerfile 基本上是一个文件,它提供了如何创建“图像”(基本上是一个蓝图)的说明,该“图像”将用于创建容器,在本例中,该容器将容纳我们的 WordPress 网站。

这个特定的 Dockerfile 的作用基本上是:

  • 使用 Apache 和 PHP 映像作为基础。这意味着我们的容器将安装 Apache 服务器和 PHP。

  • 安装 PHP 扩展 mysqli。这是 WordPress 连接到 MySQL 数据库所需的扩展。

步骤 4:创建 Docker Compose 文件

接下来,我们将创建一个名为 docker-compose.yml 的新文件。将以下内容粘贴到此文件中:

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./wordpress:/var/www/html
    ports:
      - "8080:80"

  db:
    image: mysql
    container_name: my-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password1
      MYSQL_DATABASE: wordpress

那么,这是做什么的?

docker-compose 文件是一个向 Docker 提供有关如何同时创建和运行多个容器的说明的文件。

在我们的例子中,我们的文件将创建并运行 2 个容器:

  1. “网络”容器:这将是我们的 WordPress 网站所在的位置。它将根据我们之前创建的 Dockerfile 创建一个容器。它还会复制我们网站的内容,我们将在下一步中下载这些内容。

  2. MySQL 服务器。这就是我们的数据所在的地方。如果您想使用 MariaDB,请将 image: mysql 替换为 image: mariadb。

第5步:下载WordPress

现在我们已经有了完整堆栈的蓝图,是时候添加一些内容了。我们将前往 WordPress 官方网站并下载 WordPress 文件。

下载应该需要几秒钟,然后它将下载一个 ZIP 文件。

zip 文件应包含一个名为“wordpress”的文件夹。继续将其提取到您的驱动器上。

第 6 步:将 Wordpress 目录移至您的项目

从 ZIP 文件中提取 WordPress 文件夹后,继续将该文件夹移至您的项目。

完成此操作后,项目根目录下的文件应如下所示:

? wordpress
? docker-compose.yml
? Dockerfile

如果 WordPress 文件夹不是“wordpress”,您可以继续重命名它。

第 7 步:构建容器

现在一切准备就绪,我们可以运行我们的网站了。首先,我们需要从 Dockerfile 构建“web”容器的镜像。为此,请从 Docker Compose 运行构建命令:

docker compose build

这应该需要几秒钟才能完成,并且在您的终端中应如下所示:

Run WordPress locally using Docker!

第 8 步:运行容器

构建成功完成后,您现在可以运行该网站。为此,我们使用 Docker Compose 中的 up 命令:

docker compose up -d

运行时,你的终端应该看起来像这样:

Run WordPress locally using Docker!

所以刚才发生了什么?让我们来讨论一些技术细节:

我们刚刚所做的是运行两个容器:一个名为“web”,用于我们的 WordPress 网站,另一个名为“db”,其中包含我们的 MySQL 数据库。然后我们使用 Docker Compose 中的命令来方便地同时运行两个容器。

因为这两个容器运行在同一个 Compose 文件下,所以它们运行在同一个“网络”下。这意味着它们是相互连接的。因此,例如,当您需要从Web容器连接到数据库时,执行此操作的URL是http://db:3306(因为数据库容器的名称是db)。我们在设置网站时需要这个。

第 9 步:设置您的网站

几秒钟后,您的网站应该启动并运行。您可以通过在浏览器中打开此 URL 来访问它:

http://localhost:8080

Once opened, you should see this screen:

Run WordPress locally using Docker!

Select a language and click Continue.

You'll be asked for the database credentials. Add these:

  • Database name: wordpress
  • Username: root
  • Password: password1
  • Database host: db

After adding these, you can go ahead and run the installation:

Run WordPress locally using Docker!

Now add your site details. Here you'll be asked about your site details, like the site name, a username, password etc. Add whatever you like here:

Run WordPress locally using Docker!

Click Install Wordpress.

After that's done, you're pretty much good to go! ?

Run WordPress locally using Docker!

Click Log In. You'll be presented with a log in screen:

Run WordPress locally using Docker!

Add the credentials you specified during the set up.

Tada! That's it! ?

Once you log in, you'll be shown the dashboard:

Run WordPress locally using Docker!

Here's where you can write articles, create new pages, customise your website to your liking and many many more. This is what makes WordPress so great!

Click on your site's name on the top right to go to the actual site:

Run WordPress locally using Docker!

This is your website up and running locally complete with a handy Dashboard which can be accessed here:

http://localhost:8080/wp-admin/

Success!

Enjoy editing your new WordPress blog!

以上是使用 Docker 在本地运行 WordPress!的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

在Linux上配置PHP开发环境的步骤 在Linux上配置PHP开发环境的步骤 Jun 30, 2025 am 01:57 AM

TosetupaPHPdevelopmentenvironmentonLinux,installPHPandrequiredextensions,setupawebserverlikeApacheorNginx,testwithaPHPfile,andoptionallyinstallMySQLandComposer.1.InstallPHPandextensionsviapackagemanager(e.g.,sudoaptinstallphpphp-mysqlphp-curlphp-mbst

如何将两个PHP阵列组合独特的值? 如何将两个PHP阵列组合独特的值? Jul 02, 2025 pm 05:18 PM

要合并两个PHP数组并保留唯一值,有两种主要方法。1.对于索引数组或仅需值去重的情况,使用array_merge和array_unique组合:先用array_merge($array1,$array2)合并数组,再用array_unique()去重,最终得到包含所有唯一值的新数组;2.对于关联数组且希望保留第一个数组中的键值对时,使用 运算符:$result=$array1 $array2,这将确保第一个数组中的键不会被第二个数组覆盖。这两种方法分别适用于不同场景,根据是否需要保留键名或只关注

PHP正则密码强度 PHP正则密码强度 Jul 03, 2025 am 10:33 AM

判断密码强度需结合正则与逻辑处理,基础要求包括:1.长度不少于8位;2.至少含小写字母、大写字母、数字;3.可加入特殊字符限制;进阶方面需避免连续重复字符及递增/递减序列,这需PHP函数检测;同时应引入黑名单过滤常见弱密码如password、123456;最终建议结合zxcvbn库提升评估精度。

如何在PHP中牢固地处理文件上传? 如何在PHP中牢固地处理文件上传? Jul 08, 2025 am 02:37 AM

要安全处理PHP文件上传需验证来源与类型、控制文件名与路径、设置服务器限制并二次处理媒体文件。1.验证上传来源通过token防止CSRF并通过finfo_file检测真实MIME类型使用白名单控制;2.重命名文件为随机字符串并根据检测类型决定扩展名存储至非Web目录;3.PHP配置限制上传大小及临时目录Nginx/Apache禁止访问上传目录;4.GD库重新保存图片清除潜在恶意数据。

PHP变量范围解释了 PHP变量范围解释了 Jul 17, 2025 am 04:16 AM

PHP变量作用域常见问题及解决方法包括:1.函数内部无法访问全局变量,需使用global关键字或参数传入;2.静态变量用static声明,只初始化一次并在多次调用间保持值;3.超全局变量如$_GET、$_POST可在任何作用域直接使用,但需注意安全过滤;4.匿名函数需通过use关键字引入父作用域变量,修改外部变量则需传递引用。掌握这些规则有助于避免错误并提升代码稳定性。

在PHP中评论代码 在PHP中评论代码 Jul 18, 2025 am 04:57 AM

PHP注释代码常用方法有三种:1.单行注释用//或#屏蔽一行代码,推荐使用//;2.多行注释用/.../包裹代码块,不可嵌套但可跨行;3.组合技巧注释如用/if(){}/控制逻辑块,或配合编辑器快捷键提升效率,使用时需注意闭合符号和避免嵌套。

撰写PHP评论的提示 撰写PHP评论的提示 Jul 18, 2025 am 04:51 AM

写好PHP注释的关键在于明确目的与规范,注释应解释“为什么”而非“做了什么”,避免冗余或过于简单。1.使用统一格式,如docblock(/*/)用于类、方法说明,提升可读性与工具兼容性;2.强调逻辑背后的原因,如说明为何需手动输出JS跳转;3.在复杂代码前添加总览性说明,分步骤描述流程,帮助理解整体思路;4.合理使用TODO和FIXME标记待办事项与问题,便于后续追踪与协作。好的注释能降低沟通成本,提升代码维护效率。

发电机如何在PHP中工作? 发电机如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

See all articles