13个使EZ发布5.x在Homestead上工作的步骤
>本文最初将是关于如何仅几个步骤在Homestead上安装EZ发布的快速提示。但是,在我看到将其抬起并从窗户上托管的流浪汉盒子上工作花费了多少努力之后,我决定将其制作成完整的文章。我遭受了痛苦,所以您不必:)
>我希望EZ团队能够解决我在下面陈述的问题,并且(如果这样做的话)我会相应地更改此帖子。当然,我的环境非常具体:窗户上的流浪者。但是,这没关系。我试图以相同方式启动的每个CMS,应用程序和框架都可以在几分钟之内运行。在当今的现代网络世界中,没有理由不要以同样的方式在所有方面工作。
钥匙要点
>确保您在尝试安装EZ Publish 5.X之前,已改进了Laravel Homestead的设置并正确配置,以避免与环境设置相关的常见陷阱。
- >使用`composer create-project`命令下载ez Publish,因为它避免了使用准备好的tar档案时普遍存在的符号链接的问题,尤其是在Windows托管的VMS上。
- >修改`ezpublish.yml`文件以更改缓存设置,这对于防止VM环境中与缓存失败有关的错误至关重要。 >增加Nginx的超时和缓冲区设置来处理EZ发布的较大请求响应,从而确保没有服务器超时的操作更顺畅。
- >从NGINX配置中的URL中删除“ index.php”,以现代化URL结构,与当前的Web应用程序最佳实践保持一致。
- >流浪者友好的应用
能够为每个团队成员提供相同的开发环境,以避免“它在我的机器上工作”借口>
因此,我们使用Vagrant具有专门针对单个项目的VM的相同副本,该副本可以轻松地破坏和重建而不会产生影响,以便于更容易,更快,更可扩展的开发,实验和部署。
>通过以下安装过程进行实验,我发现EZ Publish Do
>
重要说明:如果您不在Windows上,则步骤5可能不会发生在您身上。如果您在Windows上,则可以通过在“高架” Gitbash /命令提示符中运行整个过程(通过作为管理员运行)来避免步骤5。管理用户是唯一有权在Windows 8上创建符号链接的人。有传言说这是可以解决的,但它们都没有可靠地工作。管理您的开发环境会打开一个全新的蠕虫罐,因此您自己冒险。如果有人成功地授予了常规的Windows 8用户通过Gitbash创建符号链接的权限,请让我知道。
>>有一个Laravel Homestead改进的盒子准备和工作。如果您确实流浪查看它是否有效,请进行流浪销毁,以便我们可以配置它。步骤1:宅基地改进
>步骤2:添加站点
>打开homestead.yaml文件,添加一个新站点:
>使用Vagrant启动VM,并使用Vagrant SSH输入VM。
步骤3:安装先决条件
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
>
步骤4:获取代码
>以上将创建一个EZ项目,而不是用于开发。要获取开发版本,请参阅其github页面。
请注意,EZ发布非常荒谬,需要一段时间才能做到这一点。几乎可以保证,您将达到“每小时60条请求”,未经身份验证的GitHub API率限制,因此您可能必须在安装过程中输入用户名和密码以贯穿该障碍。
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
由于超时以及需要下载的大量数据,该过程可能会失败几次。如果发生这种情况,只需使用RM -RF EZPUB删除整个EZPUB文件夹,然后重新运行上述create-prodject命令 - 每次都会更快,因为每次下载软件包时,都会在后续请求中从本地缓存提供。 ,而不是重新下载。
>>安装程序将要求您在末端附近提供一些数据(秘密,后备语言环境等)。填写它或只点击每个输入以使用默认值。
>我们之所以不使用从EZ Publish网站下载的准备好的TAR存档的原因是因为准备好的档案包含符号链接 - 如果您的VM托管在Windows机器上,则这些档案不起作用。为了使事情保持多平台友好,我选择了作曲家Create-Project方法。
>就目前而言,EZ Publish并没有真正针对VM或Edge Case进行了微调,并且团队没有考虑过很多 - 例如,在Windows盒上的VM中运行它。有了所有依赖项,它可以保证在安装过程中会闯入某个地方。对我来说,也许对您来说,这也是安装资产的后安装脚本。安装资产实际上是Symfony的一部分,在该类中,它实际上确实警告了Windows和Symlinks,但是如果父母项目强制symlink(例如EZ Publish),则不考虑它。
如果发生这种情况(您会收到有关Symlinks等的错误),请打开Composer.json并删除行:
这将迫使安装程序
复制<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
symlink 他们。
然后,通过执行:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
步骤6:创建一个数据库
创建一个数据库,我们将稍后再提供给EZ。使用MySQL -U homestead -pecret登录VM中的MySQL实例。然后,运行:
>步骤7:设置文件夹权限
可以在Homestead上跳过此步骤,因为服务器已经在“ Vagrant”用户下运行,该用户拥有EZPUB文件夹中的所有子文件夹。
<span>cd Code </span><span>composer create-project ezsystems/ezpublish-community ezpub</span>
编辑:有关一种可以自动处理步骤8和步骤9的部分的方法,请参见下面的杰罗姆评论。
>
>访问ez.app:8000并查看以下屏幕。
这是它变得非常奇怪的地方。无缘无故,这会发生。是的,这是一个已经没有解决的问题已经两年了 - 严重的是,这是一个PHP项目中的两年未解决的虫子。将其修复在核心中需要七秒钟的工作,包括提交和推动(请参阅8.2)。在我们的情况下,有两种方法可以解决。没有一个令人愉快的人,所以要选择一个。
>>步骤8.1:hilarity随之而来
为了解决它,我很认真,这不是一个笑话 - 您需要打开开发工具,并将EZSETUP放在表格的操作属性结束时,因为默认情况下它只会说索引.php。令人困惑的是,这种问题在2014年仍然存在,但是我们在这里:
如果您不喜欢更改框架的源文件,请选择此方法。
>步骤8.2:黑客胆量
第二种,也许更简单的方法正在修改向导本身的形式,并改变其动作属性。
进入ezpubezpublish_legacykernelsetupezsetup.php,找到该行:
上方,放:
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
之后,操作属性将被修复。
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
>我不建议您尝试通过跳过向导来手动设置EZ发布,因为您会发疯。客观上,他们的安装程序及其文档是我见过的最糟糕的一些。如果您试图遵循他们的指示,您将失去所有愿望。我希望EZ团队很快能够完全消除所有依赖性和对其遗产系统的参考,仅留下了新的核心 - 我也希望他们很快将其文档更新为更可读性,更像2014年的东西:人们在专用方面发展了VMS现在越来越多,一个简短的安装过程以及易于入境是任何想要脱颖而出的CMS的最关键属性。
>
>步骤9:忽略向导错误
EZ发布设置已经过时了,足以仅知道一台服务器(Apache),因此认为它不是在VHOST模式下运行的:
>
>忽略此警告。继续进入下一个屏幕(如果您使用8.1。,请不要忘记再次更改表单操作,否则您将重新开始)。
在设置向导的末尾,您将获得NGINX超时错误。这是因为众所周知,EZ发布速度很慢,因为它必须处理可怕的旧版本和新版本,并且由于在VM上运行,因此,当发生这种情况时,只需从URL中删除与Ezsetup有关的任何内容。然后,您将受到这个美的欢迎:
>步骤10:禁用缓存
在EZ试图创建PHP文件的缓存时,上述屏幕中发生的错误发生了,例如: /home/vagrant/code/ezpub/ezpublish/cache/stash/stash/0fea6a13c52b4d47/25368f24b045ca84/a1e4f17491919d0404040406d06113d67777c9e0/a1e4f174919d040677c9e0/4aa1c6be6be6be6be6be177 996F9E/03934AE1C1C02FFC/9A0364B9E9BB480/DD25E1F0284C8555/CAF9B6 B99962BF5C/2264824231D7A40C/D3D9446802A44259/755D38E6D163E820.PHP (U,不要问…)。
这个缓存引擎不足以使其自身失败,因此我们必须手动进行。
> 在ezpubezpublishconfigezpublish.yml中,>
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
>现在,您可能会因又一次的警告和503的错误而受到欢迎:
>
>
步骤11:bootstrap.php.cache and Response limits实际上,引起所有这些警告的文件实际上是对EZ加载的所有必需的PHP文件的汇编。它们已合并为一个(!!!!),并放入Ezpublish文件夹中,从那里提供。该文件是一堆代码,不容易调试毕竟,这是没有可读性的),毕竟是“只是一个缓存文件”。但是,当您的整个应用程序取决于缓存文件时,很高兴能够轻松调试。 除了可怕的缓存实践,我们可以通过更改环境变量来禁用整个混乱,并在调试模式下加载EZ。您可以在homestead.yaml中更改此操作,以使其在启动过程中通过将其添加到“变量”块中:
>或,您只需在ezpub/web下编辑index.php文件,然后放入$ emoveruct ='dev';在$环境下= getEnv(“环境”);在第8行。
在这一点上,如果您遵循的话,第二种方法会更容易,因为否则,如果您再次销毁,则必须重新开始整个设置过程。
>完成此操作,您应该能够将其呈现:<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
由于EZ发布请求响应非常荒谬,我们需要提高NGINX的限制:
在根指令下,粘贴以下内容:
保存,退出,使用sudo Service nginx重新启动nginx。
有些页面将起作用(博客,发现),其他页面也不那么多。但是,调试他们的演示捆绑包已超出已经太长的文章的范围。
>>步骤12:从url
中删除index.php默认情况下,由于某种原因,所有Symfony应用程序在其URL中都具有“ app.php”或EZ Publish的案例“ index.php”。我猜某人必须支持2001年以来的托管提供商和开发商。让我们通过删除这两个项目。
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
保存,退出和重新启动nginx with sudo service nginx restart。
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
经过艰巨的过程,我们终于完成了。是什么花了我一天以上,希望您不到10分钟(不包括下载时间)。现在,您也可以在自己的宅基实例上尝试这种功能强大的,尽管过度过多,过于复杂和过时的CMS。让我知道它是如何工作的!
结论
在我看来,任何需要这么多工作才能在流浪盒上启动和运行的CMS不是值得关注的CMS。当然,您可能可以轻松地将其安装到主机机器上并以这种方式运行,但这不是专业的方法 - 开发环境需要封装和隔离,并且开发人员需要能够在一时兴起销毁和重建实例。 CMS应具有自动执行的脚本,检测所有可能的问题(例如,不可用的符号链接并自动切换到硬拷贝模式)并设置所有内容(从数据库到文件夹权限,仅在必要时),只要求Sudo一路上。
这个过程已经安装了EZ发布,但是值得吗?这取决于您决定。尽管EZ肯定是一个强大的CMS,但进入它的困难充其量是有害的。现在,您有一个共同的起点来对其进行测试,我一定会从PHP夏令营和其他地方的EZ People中找到有关这些问题的更多信息。在此之前,让我们在此盒子上进行一些EZ教程,我们可以吗?
>在下面的评论中提出反馈,我渴望听到不同的方法,尤其是如果您试图在非窗口主持人上进行此操作并使演示捆绑包工作!编辑:此Github储备金引起了我的注意。它是EZ Publish的准备的Vagrant配置。但是有两个警告:
- >逐步的目的是向您展示在任何计算机上启动并运行的用于开发目的的相同的EZ实例(事实证明并不简单的事实)是多么简单完全)。这很重要,因为例如,并非每个人都使用相同的操作系统 - 上面链接的回购是在CentOS上,而Homestead是Ubuntu。安装过程在任何操作系统上都应同样简单。 >
- EZ发布该VM内部的EZ发布文件实际上位于其中 - 外部世界没有共享文件夹(主机机器),Ergo没有符号链接问题的机会,但也没有机会在已安装的IDE中打开应用程序文件在主机上,以侵入它们。这样可以防止有效的开发工作流程。
经常询问有关EZ的问题,在Homestead上发布5.x
>在Homestead上使用EZ Publish 5.x的主要好处是什么?它提供了强大而灵活的内容管理系统(CMS),可让您在网站上创建,管理和发布内容。它也是开源的,这意味着它可以免费使用,并且可以自定义以满足您的特定需求。另一方面,Homestead是一个虚拟开发环境,可简化设置和管理EZ发布网站的过程。它提供了不同机器之间一致的环境,减少了本地开发环境中差异可能引起的潜在问题。
ez发布5.x与其他CMS平台相比如何?
>在Homestead上安装EZ Publish 5.x是否难以在Homestead上进行?在Homestead上很简单,尤其是如果您遵循文章中提供的分步指南。它涉及设置宅基地,配置系统,安装EZ发布以及设置您的网站。虽然您是新手,但该指南会详细介绍每个步骤,从而更容易遵循。
我可以将现有网站迁移到EZ Publish 5.x?
是的,可以将您现有网站迁移到EZ Publish 5.x。但是,根据您的网站上的当前平台以及您拥有的内容量,该过程可能很复杂。建议在尝试移民之前寻求专业帮助或彻底研究该过程。EZ Publish 5.x用户可以提供哪种支持?,EZ Publish 5.X拥有大量的用户和开发人员可以提供支持的用户和开发人员。还有许多在线资源,教程和论坛,您可以在其中找到帮助。此外,EZ Systems提供了专业支持服务,EZ Publish。
> EZ Publish 5.x?
ez Publish 5.x设计有多么安全。它包括基于角色的权限,安全密码存储以及防止常见Web攻击的功能。但是,像任何软件一样,保持更新并遵循Web安全性的最佳实践,以确保您的网站保持安全。 🎜>是的,EZ Publish 5.X可用于电子商务网站。它支持一系列电子商务功能,包括产品管理,购物车功能和支付网关集成。但是,您可能需要使用其他插件或扩展名来提供您对电子商务网站所需的所有功能。
>> ez发布5.x?发布5.x需要Web服务器,例如Apache或Nginx,PHP 5.4或更高版本,以及MySQL或PostgreSQL之类的数据库。它还需要某些PHP扩展和设置。可以在EZ发布文档中找到详细的系统要求。
>如何优化我的EZ Publish 5.x网站的性能?
>有几种方法可以优化EZ的性能发布5.x网站。这包括使用缓存来减少服务器负载,优化数据库以及使用内容交付网络(CDN)来加快内容交付。定期更新您的软件和插件也可以帮助提高性能。>我可以扩展EZ Publish 5.x?
的功能,是的,EZ Publish 5.x是高度扩展的。您可以使用插件和扩展名添加新功能和功能,并且由于其开源性质,也可以自定义核心代码。但是,重要的是要注意,修改核心代码可能会使应用更新更加困难,并可能引入安全风险。
,EZ Publish 5.X拥有大量的用户和开发人员可以提供支持的用户和开发人员。还有许多在线资源,教程和论坛,您可以在其中找到帮助。此外,EZ Systems提供了专业支持服务,EZ Publish。
> EZ Publish 5.x?
ez Publish 5.x设计有多么安全。它包括基于角色的权限,安全密码存储以及防止常见Web攻击的功能。但是,像任何软件一样,保持更新并遵循Web安全性的最佳实践,以确保您的网站保持安全。 🎜>是的,EZ Publish 5.X可用于电子商务网站。它支持一系列电子商务功能,包括产品管理,购物车功能和支付网关集成。但是,您可能需要使用其他插件或扩展名来提供您对电子商务网站所需的所有功能。
>> ez发布5.x?发布5.x需要Web服务器,例如Apache或Nginx,PHP 5.4或更高版本,以及MySQL或PostgreSQL之类的数据库。它还需要某些PHP扩展和设置。可以在EZ发布文档中找到详细的系统要求。
>如何优化我的EZ Publish 5.x网站的性能?
的功能,是的,EZ Publish 5.x是高度扩展的。您可以使用插件和扩展名添加新功能和功能,并且由于其开源性质,也可以自定义核心代码。但是,重要的是要注意,修改核心代码可能会使应用更新更加困难,并可能引入安全风险。以上是13个使EZ发布5.x在Homestead上工作的步骤的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

PHP8.1中的枚举功能通过定义命名常量增强了代码的清晰度和类型安全性。1)枚举可以是整数、字符串或对象,提高了代码可读性和类型安全性。2)枚举基于类,支持面向对象特性,如遍历和反射。3)枚举可用于比较和赋值,确保类型安全。4)枚举支持添加方法,实现复杂逻辑。5)严格类型检查和错误处理可避免常见错误。6)枚举减少魔法值,提升可维护性,但需注意性能优化。

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

RESTAPI设计原则包括资源定义、URI设计、HTTP方法使用、状态码使用、版本控制和HATEOAS。1.资源应使用名词表示并保持层次结构。2.HTTP方法应符合其语义,如GET用于获取资源。3.状态码应正确使用,如404表示资源不存在。4.版本控制可通过URI或头部实现。5.HATEOAS通过响应中的链接引导客户端操作。

在PHP中,异常处理通过try,catch,finally,和throw关键字实现。1)try块包围可能抛出异常的代码;2)catch块处理异常;3)finally块确保代码始终执行;4)throw用于手动抛出异常。这些机制帮助提升代码的健壮性和可维护性。

匿名类在PHP中的主要作用是创建一次性使用的对象。1.匿名类允许在代码中直接定义没有名字的类,适用于临时需求。2.它们可以继承类或实现接口,增加灵活性。3.使用时需注意性能和代码可读性,避免重复定义相同的匿名类。
