开发实践(第二集): 工作环境
本系列关于开发实践的第二篇文章,讨论在Joomla!开发中的工作环境。请参阅三月份的介绍以了解预期内容。
配置您的开发环境和工具。
通过“项目文件夹”来定义文件结构,这样您可以在工作流中拥有多个项目/站点。项目文件夹将是所有与项目相关的数据的中心位置,便于归档或转移到另一个系统。
使用符号链接(也在Windows !中)来引用文件和文件夹,使得在“项目”文件夹外部创建的文件可在其中使用。链接允许多个位置访问相同的文件。
最终,您应该能够创建一个开发配置,其中包括一个或多个XAMPP并行安装和多个独立的项目。每个项目都可以通过其在浏览器中的唯一名称进行本地访问。
我们需要
- 配置项目文件夹(文件夹结构),
- 安装XAMPP以获得Apache、PHP和MySQL的堆栈
- 配置系统和Apache Web服务器以进行基于域名(虚拟主机)的虚拟托管
- 通过“链接”修改配置
项目文件夹
我们项目组织围绕项目目录进行,以管理不同的项目。一个定义的结构使我们能够将所有项目数据存储在一个地方,并且有命名约定,这使得我们(以及所有我们的工具)能够轻松找到它们。使用相对引用,我们可以在任何操作系统(Windows、Linux、Mac)上使用它。这样,您可以通过移动项目的基本目录及其相关数据来“传输”项目到不同的系统并进行归档。
为了描述项目目录的结构,我们将使用命名约定。所有在##之间的名称都是您可以使用的变量 - 您可以按需“替换”它们。
建议的基本配置是
##PROJETS##/[apps] /[archive] /local.##DOMAINE##/www | /logs | /backup | /patches /local.##DOMAINE##/www /logs /backup
对于XAMPP
##XAMPP_INSTALL##/apache/conf
/php
/mysql
##XAMPP_INSTALL##是XAMPP的安装目录。
##PROJETS##是用于存储所有项目的项目目录树的基础或“根”。
我已经将“d:/virtualhosts/”配置为我的项目目录,您将在下面的内容中看到。
##DOMAINE##是各个项目的域名(稍后详细解释),然后我们有项目的基本目录,命名为#PROJETS##/local.##DOMAINE##。
我们将在这个系列的文章中扩展这个结构,并在需要时添加详细信息。最终,您应该能够构建一个满足您需求的结构。
XAMPP
XAMPP是可用于在Windows以及其他许多操作系统(Mac、Linux等)上启动本地Web服务器、MySQL和PHP的软件之一。其基本功能和安装过程在网上的许多教程中都有详细描述,我们在这里不做过多介绍。
并行安装XAMPP
通常建议使用最新版本,但如果您正在使用Joomla!(或任何有特定要求的平台),您可能希望自行定义要使用的版本。
实际上,您可以在同一台计算机上运行不同的XAMPP版本。选择您想要的XAMPP版本,包括特定的Apache、MySQL和PHP版本或对您有意义的版本,并并行安装它们。
例如,如果我们考虑PHP,您可以考虑使用XAMPP
v1.7.7 dernière version XAMPP avec PHP 5.3 (5.3.8) v1.8.2-1 dernière version XAMPP avec PHP 5.4.x (5.4.16) v1.8.3-0 première version XAMPP avec PHP 5.5 (5.5.1)
这样您就可以/可以安装任何组合并行,但任何时候只有一个版本是活动的!
在我的当前配置中,我有两个安装,一个是PHP 5.4(默认),另一个是PHP最新版本的5.3,用于与Joomla 1.5一起使用。您还可以使用PHP 5.5进行某些测试,并确保您的开发能够适应托管商的新发展。
XAMPP的安装位置
您可以在任何您知道的地方安装XAMPP。例如,我分别将PHP 5.4和5.3安装在这两个位置:
C:\Portable\XAMPP
C:\Portable\XAMPP-php53
为了便于以后引用,我将XAMPP解压/安装在C:\Portable\XAMPP或C:\Portable\XAMPP-php53。这些目录将在本文的后续内容中标识为##XAMPP_INSTALL##。
基于托管名称的配置
我们希望能够同时在多个开发站点上工作,这些站点可以并行配置。因此,这些站点中的每一个都将在其自己的虚拟主机中运行,并且“表现”得像一个拥有自己域名真实站点。这不仅是一种良好的方法,而且在后面的系列中我们将看到的调试中是必要的。
为了做到这一点,我们需要设置基于域名的托管,并且我们需要设置一个 主机 文件(主机文件),一个 Apache 的虚拟主机 配置 (虚拟主机)配置,最后为每个项目设置 虚拟主机配置 文件。
主机文件
为了理解 主机 文件的作用,想象它就像一本电话簿。当您的浏览器需要连接到网站时,它必须通过它的名字在电话簿中查找“电话号码”(它的IP地址)。
在您的电脑和测试目的上,您的本地主机文件将充当这本电话簿。
在您的电脑上运行的服务器可以通过IP地址127.0.0.1(localhost)访问。现在,我们可以将这个IP地址与不同的网站名称关联起来,通过将它们添加到 主机 文件中。现在,浏览器可以使用网站名称来连接,例如在地址栏中输入http://local.viryagroup.com。
(翻译者注:实际上,您的浏览器会从主机文件中读取这个地址与IP 127.0.0.1(您的电脑)相关联,并且会连接到那里。XAMPP将响应并提供您请求的页面,就像您连接到互联网上的真实服务器一样。您甚至可以在不连接到网络的情况下工作。)
在Linux机器上,主机文件位于 /etc/hosts。在Windows上,它稍微隐蔽一些。(翻译者注:您需要去%SystemRoot%\system32\drivers\etc\)中查找。我建议您阅读维基百科上的主机文章,以了解更多关于每个操作系统上主机文件位置的详细信息。
我个人使用一个名为 Windows主机文件编辑器 的简单实用程序,它必须以管理员身份运行才能修改和保存主机文件。
网站命名和添加主机文件条目
为了在长期内使您的生活更加轻松,我建议您为您的开发网站使用一种命名约定,最好是与生产网站相关。因此,我建议使用正在建设中的网站的 域名(生产网站),去掉www.,并用作命名基础。
在您电脑上运行的网站将会有以 local 开头的名称(例如local.viryagroup.com),而共享的外部开发网站将会有以 dev 开头的名称(dev.viryagroup.com)。使用这种命名约定还可以使用像 KeePass 或 LastPass 这样的密码管理工具。
我们将通过 ##DOMAINE## 来引用您的生产网站域名,而本地或dev版本将是 ##SUB##。
例如,生产网站 viryagroup.com 将有其对应的本地版本 local.viryagroup.com(local.##DOMAINE##),而主机文件中的条目将是:
127.0.0.1 local.viryagroup.com
127.0.0.1 www.local.viryagroup.com
为了进行共享的协作开发,我们选择了 dev.viryagroup.com(dev.##DOMAINE##)。此网站将托管在外部服务器上(而不是您的计算机上)。要访问“开发服务器”,您可以将它添加到您的本地 hosts 文件中,或者更倾向于将记录添加到 DOMAINE 的 DNS 中,类似于 hosts 文件中的条目,在 区域文件 中添加。
修改区域文件的方法不止一种,但大多数托管提供商都提供 cPanel 或其他允许轻松添加记录的 Web 界面。
在 DNS 中设置“dev”网站可以方便地与客户分享。在实验中,请先设置记录的生存时间(TTL)为一个较低的值,以确保您的更改快速传播。
配置 Apache
现在,您的计算机支持域名。我们还需要配置 XAMPP 中的 Web 服务器 Apache,以告诉它如何处理网站以及其内容的存储位置。
位置
##XAMPP_INSTALL##/apache/conf
将包含 Apache 使用的配置文件。要修改的文件是 extra/httpd-vhosts.conf 和 httpd.conf。
文件:extra/httpd-vhosts.conf
##XAMPP_INSTALL##/apache/conf/extra/httpd-vhosts.conf
我们首先需要在 Apache 服务器(XAMPP)中启用“基于名称的虚拟主机”。
取消注释(删除第一个“#”)以下行
##NameVirtualHost *:80
NameVirtualHost *:80
这就是访问 XAMPP 的全部内容,其中文档根目录为 ##XAMPP_INSTALL##/htdocs。您还可以将以下行添加到 httpd-vhosts.conf 的末尾(将 ##XAMPP_INSTALL## 替换为您的位置)
<VirtualHost *:80>
ServerName XAMPP
DocumentRoot « ##XAMPP_INSTALL##/htdocs »
</VirtualHost>
在 sites-available 和 sites-enabled 中定义 vhosts
接下来,我们将创建 Web 服务器中实际使用的 vhosts,每个虚拟服务器/域的文件将定义该网站的特定配置。我们本可以将所有 vhosts 的配置添加到 httpd-vhosts.conf 文件中,但我们希望采用更基于结构的(如“Debian”服务器)方法,将每个域名分别保存在一个单独的文件中。这种方法简化了虚拟服务器的管理。因此,我们将为每个网站(vhosts/domaines)创建 ## DOMAINE##.conf 文件。
这些配置文件将从 sites-available(可用站点)和 sites-enabled(已启用站点)目录进行存储和控制。
sites-available
##XAMPP_INSTALL##/apache/conf/sites-available
“sites-available”目录将包含我们可能需要工作的所有 ##DOMAINE##.conf 文件。该目录必须首先创建。请注意,vhosts 的实际激活将在稍后进行。
如“工作结构”部分所述,我们希望在名为 ##PROJETS## 的位置组织我们的 vhosts。因此,对于单个网站,我们将有
##PROJETS##/##SUB##.##DOMAINE##
作为基础。例如,我们可能会有
D:\VirtualHost\local.viryagroup.com\www
| \logs
\local.joomla3\www
\logs
现在,我们需要为每个项目创建所需的 vhost.conf 文件,它们必须引用工作目录
<VirtualHost *:80>
ServerName ##SUB##.##DOMAINE##
ServerAlias www##SUB##.##DOMAINE##
DocumentRoot « ##PROJETS##/##SUB##.##DOMAINE##/www »
ErrorLog « ##PROJETS##/##SUB##.##DOMAINE##/logs/error.log »
CustomLog « ##PROJETS##/##SUB##.##DOMAINE##/logs/access.log » combined
<Directory « ##PROJETS##/##SUB##.##DOMAINE##/www »>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
# Order allow,deny
# Allow from all
Require all granted
</Directory>
</VirtualHost>
在这个配置中,www 和 logs 目录是必需的。您必须将它们作为子目录创建在 ##PROJETS## / ##DOMAINE## 中。省略它们将阻止 XAMPP 启动。
完成后,vhost.conf 文件将类似于
<VirtualHost *:80> ServerName local.viryagroup.com ServerAlias www.local.viryagroup.com DocumentRoot "D:\VirtualHost\local.viryagroup.com\www" ErrorLog "D:\VirtualHost\local.viryagroup.com\logs\error.log" CustomLog "D:\VirtualHost\local.viryagroup.com\logs\access.log" combined <Directory "D:\VirtualHost\local.viryagroup.com\www"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost>
您可以根据自己的需求自定义任何 vhost.conf 文件。选项的数量是无限的,但这不是本文的范围。我邀请您在网上搜索有关配置所需的所有必要信息。
Sites-enabled
##XAMPP_INSTALL##/apache/conf/sites-enabled
现在我们已经配置了 vhosts 文件,我们需要在本地服务器上激活它们。
只需简单地从 sites-available/ 复制我们希望激活的域的 vhost 文件到 sites-enabled/。与其麻烦,最简单的方法是在原始文件(在 sites-available/ 中)和其 sites-enabled/ 中的副本之间创建一个相对链接。这样,对其中一个所做的任何修改都会影响到另一个(实际上它只是一个快捷方式)。
在 Debian 中,这由命令 a2ensite 和 a2dissite 管理。在 Windows 下,我们必须手动或用鼠标完成(参见下面的链接部分)。
通过这种方式激活一个站点(将 vhost 文件复制到 site-enabled)后,请确保使用 XAMPP 的控制面板重新启动您的 Apache 服务器,以便 Apache 可以识别它。如果您不使用 XAMPP,请查阅有关如何操作的文档。
httpd.conf
##XAMPP_INSTALL##/apache/conf/httpd.conf
所有要激活的域名/文件 vhost.conf 都位于 sites-enabled 文件夹中,但我们仍然需要告诉 Apache 它需要考虑它们。为此,您需要修改 httpd.conf 文件。
找到以下部分:
# Virtual hosts Include "conf/extra/httpd-vhosts.conf"
并添加以下行(如果尚未添加):
Include "conf/sites-enabled/*"
链接(非危险)
文件和目录的符号链接是 Linux 中众所周知的概念。这种链接允许从多个位置引用唯一的文件/目录。使用符号链接,您可以从前更合理、更容易记住的目录访问文件和目录,更重要的是,避免数据重复。
与普遍看法相反,符号链接也最近在 Windows(Vista 及以上版本)的版本中通过命令 mklink.exe 原生提供(维基百科文章)。链接的不同形式包括:
- 符号链接,通过名称对另一个文件的透明引用
- 物理链接,对另一个文件的引用(引用其内容)
- 链接,对于目录来说就像符号链接对于文件一样。
(译者注:您可以在“符号链接”的维基百科文章中找到有关符号链接的更多信息。 符号链接)
对于更深入的讨论,请参阅 http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension_fr.html。您可以从那里下载 hardlinkshellext,这是一个通过资源管理器创建各种链接的简单工具。
不幸的是,并非所有应用程序都设计并准备来处理符号链接。在这篇文章系列中,我们将尽可能使用符号链接来使生活更轻松。请注意,由于适当工具的支持水平,可能存在一些限制。
用符号链接欺骗 XAMPP
为了保持更干净的组织,例如,我们可以将 "sites-enabled" 和 "sites-available" 文件夹移动到 ##PROJETS##/[apps] 文件夹中,以便将它们保存在项目目录中。
为了避免与多个 XAMPP 安装的重叠,它们必须位于反映 XAMPP 版本的目录中。例如,##PROJETS##/[apps]/xampp173/sites-enabled
##PROJETS##/[apps]/xampp177/sites-available | /sites-enabled /xampp183/sites-available /sites-enabled
在 Windows 上完成此操作后,可以使用链接将 sites-enabled 文件夹再次“链接”到 XAMPP 的上下文中。
##PROJETS##/[apps]/xampp177/sites-available /sites-enabled =J=> ##XAMPP_INSTALL##/apache/conf/sites-enabled
请注意,在这个配置(使用链接)下,在 Windows 中,您需要将 vhost.conf 文件从 ##PROJETS##/[apps]/xampp177/sites-available 复制到 ##PROJETS##/[apps]/xampp177/sites-enabled。不幸的是,符号链接在链接中不起作用。我们将在编译文章中解决这个问题。
完成后,我们将有不同的 vhost.conf 文件放在更容易访问的目录中,例如用于自动化任务。
本年度连载剧第二集到此结束,下个月再见,期待续集。
《Joomla社区杂志》上发布的一些文章代表作者对特定主题的个人观点或经验,可能不代表Joomla项目的官方立场。
通过接受,您将访问https://magazine.joomla.net.cn/外部第三方提供的服务
评论