WordPress 开发环境

基于 trellis 搭建一个 wordpress 的开发环境,实现一键部署(其中包括在虚拟机上安装Ubuntu、Nginx 、PHP、MariaDB、HTTP/2、MailHog、Composer、WP-CLI等),更强大的可实现一键从开发环境迁移到生产环境(包括文件和数据库)。


下面我们来看下搭建一个 基于 trellis 的 wordpress 的开发环境所需 准备工作具体步骤

准备工作

安装 HomeBrew(Windows用户可以使用cmder)

HomeBrew 官网获取官网代码:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

放到终端执行。

HomeBrew 安装完成后,需要用 HomeBrew 安装一些东西。

安装 git

版本控制工具

brew install git

安装 virtualbox

虚拟机软件

brew install caskroom/cask/virtualbox

安装 vagrant

虚拟机管理工具

brew install caskroom/cask/vagrant

安装 vagrant 插件

vagrant 安装完成后,就可以使用 vagrant 命令来安装插件

1. 安装 vagrant-bindfs

vagrant-bindfs:帮我们来处理虚拟机和本地机器之间的共享目录

vagrant plugin install vagrant-bindfs

2. 安装 vagrant-hostmanager

vagrant-hostmanager:设置主机名(域名)

vagrant plugin install vagrant-hostmanager

安装 ansible

基于 playbook 配置管理的自动化部署工具

brew install ansible

创建 WordPress 项目

创建 WordPress 项目会用到 trellisbedrock

trellis:会自动帮我们创建一个本地开发环境,主要用到 ansible 的一些 playbook

bedrock:是一个 WordPress 项目的样本,提供了一套更友好的项目结构,比如:PHP的包管理工具 composer 以及 wp-cil 来管理 WordPress 项目

使用 git clone 仓库


我们需要用 gitclone 两个仓库

git clone git@github.com:roots/trellis.git
git clone git@github.com:roots/bedrock site

仓库 clone 完成后如图(旁边预览图)

配置 WordPress 开发环境

修改 trellis → group vars → development → wordpress_sites.yml 文件

wordpress_sites:
  dev.lishaoy.net:  #主机名:改成需要访问的域名
    site_hosts:
      - canonical: dev.lishaoy.net #主机名:改成需要访问的域名
    local_path: ../site # path targeting local Bedrock site directory (relative to Ansible root)
    admin_email: persilee@foxmail.com  #管理员邮件地址:设置邮箱
    multisite:
      enabled: false
    ssl:
      enabled: false
      provider: self-signed
    cache:
      enabled: false

再修改 trellis → group vars → development → vault.yml 文件

vault_mysql_root_password: admin #管理员 root 用户密码

vault_wordpress_sites:
  dev.lishaoy.net: #网站的名字:和之前设置保持一致
    admin_password: admin #管理员密码
    env:
      db_password: admin #数据库密码

再修改 trellis → group vars → all → users.yml 文件

admin_user: persilee #管理员用户名

users:
  - name: "{{ web_user }}"
    groups:
      - "{{ web_group }}"
    keys:
      - "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
      # - https://github.com/username.keys
  - name: "{{ admin_user }}"
    groups:
      - sudo
    keys:
      - "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
      # - https://github.com/username.keys

web_user: web
web_group: www-data
web_sudoers:
  - "/usr/sbin/service php7.2-fpm *"

自动化安装 WordPress 开发环境


现在这个环境里有两个目录 trellis 、 site,我们需要进到 cd trellis 目录,执行命令来完成自动化安装 WordPress 开发环境

vagrant up

执行 vagrant up 之后,会帮我们做很多的事情,如:

 

  • 根据配置创建Linux的虚拟机,然后会自动把虚假机配置好
  • 自动安装 WordPress
  • 自动配置好 WordPress 运行环境

如下,是官方列出安装的软件

  • Nginx
  • MariaDB (MySQL drop-in replacement)
  • PHP 7.2 (+ extensions)
  • Composer
  • WP-CLI
  • sSMTP
  • Memcached
  • Fail2ban
  • ferm (firewall)
  • Mailhog

如执行正常的话,我们就可以直接在浏览器里输入之前设置的域名 dev.lishaoy.net 来访问 WordPress 网站。

Tips:这一套环境其实就和生成环境是一致的的,trellis 也可以实现直接把这套环境迁移到生产环境(比如:阿里云),只要生产环境使用的操作系统和开发环境使用的版本一致,就可以确保两个环境一模一样,包括数据库和文件等,可以避免由于上线之后,环境不一致导致的各种问题出现。

 

分享
5 条评论
  • Forty
    Google ChromeGoogle Chrome MacMac

    这个主题太好看的,我找到了它的名字,但是找遍了也没找到它的资源,这个什么时候会考虑开源吗? :wink:

    Reply
    • persilee
      SafariSafari MacMac

      @Forty : 这个是我从别人那里买的,我自己优化和更改了很多地方,所以,考虑到代码乱和版权问题,暂时不会开源 :lovely:

      Reply
  • Anonymous
    Google ChromeGoogle Chrome MacMac

    :arrow: :shock: :smile: :???: :???: :???:

    Reply
  • Lambda
    Google ChromeGoogle Chrome WindowsWindows

    哥,原来的Hexo博客不用了吗,lishaoy.net域名现在指向这个WordPress,原来的hexo博客入口怎么进

    Reply