基于 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 项目会用到 trellis
和 bedrock
trellis:会自动帮我们创建一个本地开发环境,主要用到 ansible 的一些 playbook
bedrock:是一个 WordPress 项目的样本,提供了一套更友好的项目结构,比如:PHP的包管理工具 composer
以及 wp-cil
来管理 WordPress 项目
使用 git clone 仓库
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 也可以实现直接把这套环境迁移到生产环境(比如:阿里云),只要生产环境使用的操作系统和开发环境使用的版本一致,就可以确保两个环境一模一样,包括数据库和文件等,可以避免由于上线之后,环境不一致导致的各种问题出现。
Forty
这个主题太好看的,我找到了它的名字,但是找遍了也没找到它的资源,这个什么时候会考虑开源吗?
persilee
@Forty : 这个是我从别人那里买的,我自己优化和更改了很多地方,所以,考虑到代码乱和版权问题,暂时不会开源
Anonymous
Lambda
哥,原来的Hexo博客不用了吗,lishaoy.net域名现在指向这个WordPress,原来的hexo博客入口怎么进
Anonymous
@Lambda : 在域名前加个h.