首頁 > 後端開發 > php教程 > 13個使EZ發布5.x在Homestead上工作的步驟

13個使EZ發布5.x在Homestead上工作的步驟

William Shakespeare
發布: 2025-02-20 12:51:11
原創
856 人瀏覽過

13個使EZ發布5.x在Homestead上工作的步驟

從那以後,我又對EZ Publish(現在的EZ平台)進行了又一次的看法,並且情況有了顯著改善。詳細信息。
>本文最初將是關於如何僅幾個步驟在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應用程序最佳實踐保持一致。
  • >流浪者友好的應用
>讓我們定義流浪者的目的。流浪者的目的是團隊團結,而生產 /開發均等,無論主機操作系統如何。換句話說,流浪者的目的是雙重的:

能夠為每個團隊成員提供相同的開發環境,以避免“它在我的機器上工作”藉口13個使EZ發布5.x在Homestead上工作的步驟>

>能夠盡可能地複制生產環境,而無需破壞主機機器或專用於同一台機器上其他客戶的環境

因此,我們使用Vagrant具有專門針對單個項目的VM的相同副本,該副本可以輕鬆地破壞和重建而不會產生影響,以便於更容易,更快,更可擴展的開發,實驗和部署。

>通過以下安裝過程進行實驗,我發現EZ Publish Do not 使此簡單簡單。在2014年,大多數具有多個客戶和/或項目的專業開發人員即使在獨奏時都使用流浪者- 在考慮到我們的這些工具,工具和版本的大量託管選項,工具和版本時,每個項目都有專門,獨立,可破壞和可重建的環境是無價的。處理。 如今,我很失望地看不到更多的應用程序採用流浪者優先的方法。就像我們需要在開發前端時首先思考移動設備一樣,我們應該在開發後端庫,框架和應用程序時首先考慮VM-局部- 否則,整個Docker / Vagrant隔離故事世界都關注世界是MOOT,而失敗的應用程序失敗了隨著世界遷移到Heroku,Gae,Amazon和其他其他人,適應。

>讓我們立即開始安裝過程。

>

重要說明:如果您不在Windows上,則步驟5可能不會發生在您身上。如果您在Windows上,則可以通過在“高架” Gitbash /命令提示符中運行整個過程(通過作為管理員運行)來避免步驟5。管理用戶是唯一有權在Windows 8上創建符號鏈接的人。有傳言說這是可以解決的,但它們都沒有可靠地工作。管理您的開發環境會打開一個全新的蠕蟲罐,因此您自己冒險。如果有人成功地授予了常規的Windows 8用戶通過Gitbash創建符號鏈接的權限,請讓我知道。

>

步驟1:宅基地改進

>有一個Laravel Homestead改進的盒子準備和工作。如果您確實流浪查看它是否有效,請進行流浪銷毀,以便我們可以配置它。 >

>步驟2:添加站點

>打開homestead.yaml文件,添加一個新站點:>

如Laravel Homestead改進的快速提示中所述,將EZ.App添加到主機機器的主機文件中。基本上,請確保您的主機文件包含127.0.0.1 ez.app。自然,還可以映射共享文件夾。

>使用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方法。 >

>步驟5:處理安裝程序錯誤[僅Windows Hosts]

>就目前而言,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 他們。 然後,通過執行:重新運行後安裝腳本 >您可能仍然會遇到有關傳統EZ版本和某種評論的錯誤,但我不確定如何解決該問題,或者是否重要。

>

<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實例。然後,運行:13個使EZ發布5.x在Homestead上工作的步驟

>步驟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年仍然存在,但是我們在這裡:>

13個使EZ發布5.x在Homestead上工作的步驟如果您不喜歡更改框架的源文件,請選擇此方法。

>

>步驟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模式下運行的:

>

13個使EZ發布5.x在Homestead上工作的步驟>忽略此警告。繼續進入下一個屏幕(如果您使用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的錯誤而受到歡迎:

>

13個使EZ發布5.x在Homestead上工作的步驟

,但至少我們獲得了渲染標題!

>

步驟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的限制:

在根指令下,粘貼以下內容:13個使EZ發布5.x在Homestead上工作的步驟

保存,退出,使用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配置。但是有兩個警告:

  1. >逐步的目的是向您展示在任何計算機上啟動並運行的用於開發目的的相同的EZ實例(事實證明並不簡單的事實)是多麼簡單完全)。這很重要,因為例如,並非每個人都使用相同的操作系統 - 上面鏈接的回購是在CentOS上,而Homestead是Ubuntu。安裝過程在任何操作系統上都應同樣簡單。
  2. >
  3. EZ發布該VM內部的EZ發布文件實際上位於其中- 外部世界沒有共享文件夾(主機機器),Ergo沒有符號鏈接問題的機會,但也沒有機會在已安裝的IDE中打開應用程序文件在主機上,以侵入它們。這樣可以防止有效的開發工作流程。

經常詢問有關EZ的問題,在Homestead上發布5.x

>在Homestead上使用EZ Publish 5.x的主要好處是什麼?它提供了強大而靈活的內容管理系統(CMS),可讓您在網站上創建,管理和發佈內容。它也是開源的,這意味著它可以免費使用,並且可以自定義以滿足您的特定需求。另一方面,Homestead是一個虛擬開發環境,可簡化設置和管理EZ發佈網站的過程。它提供了不同機器之間一致的環境,減少了本地開發環境中差異可能引起的潛在問題。

ez發布5.x與其他CMS平台相比如何?

.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是高度擴展的。您可以使用插件和擴展名添加新功能和功能,並且由於其開源性質,也可以自定義核心代碼。但是,重要的是要注意,修改核心代碼可能會使應用更新更加困難,並可能引入安全風險。

以上是13個使EZ發布5.x在Homestead上工作的步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板