跳转到内容

环境


概览

Devilbox是一个现代化且高度可定制的 Docker 化 PHP 堆栈,支持完整的 LAMP 和 MEAN,并在所有主要平台上运行。其主要目标是轻松切换并组合本地开发所需的任何版本。它支持无限数量的项目,为这些项目自动创建虚拟主机、SSL 证书和 DNS 记录。每个项目都支持反向代理,以确保诸如 NodeJS 等监听服务器也能被访问。电子邮件捕获和流行开发工具也将为你服务。无需配置,因为一切都已预先设置。

此外,Devilbox 提供了针对不同主机操作系统的相同且可重现的开发环境。

此示例将使用phalcon从 Devilbox PHP 容器内安装 Phalcon。完成以下步骤后,你将拥有一个通过 HTTP 和 HTTPS 提供服务的 Phalcon 设置。

配置

将使用以下配置:

设置
项目名称 my-phalcon
虚拟主机目录 /shared/httpd/my-phalcon
数据库 n.a.
TLD_SUFFIX loc
项目 URL http://my-phalcon.loc, https://my-phalcon.loc

注意

  • 在 Devilbox PHP 容器内,项目始终位于/shared/httpd/.
  • 在你的主机操作系统上,默认情况下项目位于./data/www/Devilbox git 目录内。此路径可以通过HOST_PATH_HTTPD_DATADIR.

激活

你的环境将在六个简单步骤中准备就绪:

  • 进入 PHP 容器
  • 创建一个新的虚拟主机目录
  • 安装 Phalcon
  • 创建符号链接到 webroot 目录
  • 设置 DNS 记录
  • 访问http://my-phalcon.loc在你的浏览器中
  • (Nginx)创建自定义虚拟主机配置文件

进入 PHP 容器

由于 PHP 容器提供了所有必要的工具,因此所有的操作都将在 PHP 容器内进行。导航到 Devilbox git 目录并执行./shell.sh(或shell.bat在 Windows 上)以进入正在运行的 PHP 容器。

host> ./shell.sh

创建新的虚拟主机目录

虚拟主机目录定义了你的项目将以何种名称可用。(<vhost dir>.TLD_SUFFIX将是最终的 URL)。

devilbox@php-8.0 in /shared/httpd $ mkdir my-phalcon

安装 Phalcon

导航到新创建的虚拟主机目录,并使用phalconcli 安装 Phalcon。

devilbox@php-8.0 in /shared/httpd $ cd my-phalcon
devilbox@php-8.0 in /shared/httpd/my-phalcon $ phalcon project phalconphp

安装后的目录结构如下所示:

devilbox@php-8.0 in /shared/httpd/my-phalcon $ tree -L 1
.
└── phalconphp

1 directory, 0 files

将实际的 webroot 目录符号链接到htdocs是很重要的。Web 服务器期望每个项目的文档根目录都在<vhost dir>/htdocs/。这就是它将提供文件的路径。这也是你的应用程序入口点(通常是index.php)需要存在的路径。

然而,某些框架在未知级别的嵌套目录中存储文件和内容。因此,不可能将其作为环境的预设。因此,你必须手动设置一个符号链接回到你的框架所需的预期路径。

devilbox@php-8.0 in /shared/httpd/my-phalcon $ ln -s phalconphp/public/ htdocs

安装后的目录结构如下所示:

devilbox@php-8.0 in /shared/httpd/my-phalcon $ tree -L 1
.
├── phalconphp
└── htdocs -> phalconphp/public

2 directories, 0 files

如上列表所示,web 服务器所需要的htdocs文件夹现在指向你的框架的入口点。

注意

当使用Docker Toolbox时,你需要明确允许使用符号链接.

DNS 记录

如果你已经配置了自动 DNS,你可以跳过这一部分,因为由捆绑的 DNS 服务器提供的 DNS 条目将自动可用。

如果你没有配置自动 DNS,则需要将以下行添加到你的主机操作系统/etc/hosts文件中(或在 Windows 上的C:\Windows\System32\drivers\etc):

127.0.0.1 my-phalcon.loc

打开你的浏览器

打开你的浏览器并导航到http://my-phalcon.lochttps://my-phalcon.loc

创建自定义虚拟主机配置文件(仅限 Nginx)

默认情况下,如果使用 Nginx,路由将无法正常工作。要修复此问题,你需要创建一个自定义虚拟主机配置。

在你的项目文件夹中,你需要创建一个名为.devilbox的文件夹,除非你在HTTPD_TEMPLATE_DIR中更改了.env

从默认的 nginx 配置文件./cfg/vhost-gen/nginx.yml-example-vhost./data/www/my-project/.devilbox/nginx.yml

小心编辑 nginx.yml 文件并更改:

try_files $uri $uri/ /index.php$is_args$args;

try_files $uri $uri/ /index.php?_url=$uri&$args;

location ~ \.php?$ {

location ~ [^/]\.php(/|$) {

保存文件为nginx.yml并确保文件中不使用任何制表符,否则 Devilbox 不会使用自定义配置。你可以在 Devilbox shell 内使用yamllint nginx.yml检查文件后再重启 Devilbox。

参考资料

无噪 Logo
无噪文档
25 年 6 月翻译
文档源↗