阅读时间13分钟 (2673字)

开发实践(第二集): 工作环境

Pratique du développement (épisode 2) : l'environnement de travail

本系列关于开发实践的第二篇文章,讨论在Joomla!开发中的工作环境。请参阅三月份的介绍以了解预期内容。

配置您的开发环境和工具。

vg swdev 0000 setup通过“项目文件夹”来定义文件结构,这样您可以在工作流中拥有多个项目/站点。项目文件夹将是所有与项目相关的数据的中心位置,便于归档或转移到另一个系统。

使用符号链接(也在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\XAMPPC:\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)。使用这种命名约定还可以使用像 KeePassLastPass 这样的密码管理工具。

我们将通过 ##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.confhttpd.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>

在这个配置中,wwwlogs 目录是必需的。您必须将它们作为子目录创建在 ##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 中,这由命令 a2ensitea2dissite 管理。在 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 文件放在更容易访问的目录中,例如用于自动化任务。

本年度连载剧第二集到此结束,下个月再见,期待续集。

Nicolas Ogier自由翻译自原文:《实用开发2:工作环境》,作者Marco Dings

《Joomla社区杂志》上发布的一些文章代表作者对特定主题的个人观点或经验,可能不代表Joomla项目的官方立场。

0
Joomla的安全系统!
快速Joomla网站10个技巧
 

评论

已经注册?这里登录
还没有评论。成为第一个发表评论的人

通过接受,您将访问https://magazine.joomla.net.cn/外部第三方提供的服务