>本文最初将是关于如何仅几个步骤在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>>该项目需要PHP才能安装PHP-INTL和PHP-XSL扩展。它还会要求您在整个设置向导中提供SendMail。在Homestead中,您可以将所有这些安装:
>
步骤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:运行设置向导
编辑:有关一种可以自动处理步骤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>“在内存中”意味着内存将用于存放缓存,而不是文件系统。用RM -RF EZPUBLISH/CACE/*清除缓存,然后刷新。如果需要,请用比文件类似缓存更替代缓存引擎。我不知道如何减轻MKDIR的协议错误 - 我知道这与VM有关,但没有更多。任何建议都非常感谢。
>现在,您可能会因又一次的警告和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>步骤13:欢乐
经过艰巨的过程,我们终于完成了。是什么花了我一天以上,希望您不到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中文网其他相关文章!

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。

PHP会话对应用性能有显着影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

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

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

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

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。