EZをホームステッドで動作させるために5.xを公開する13のステップ
この記事は、最初はほんの数ステップでHomesteadにEZ Publicをインストールする方法についての簡単なヒントになる予定でした。しかし、WindowsでホストされているVagrant Boxでゼロから作業するのにどれだけの労力がかかったかを見た後、私はそれを完全な記事にすることにしました。私は苦しんだので、あなたはそうする必要はありません:)
EZチームが以下で述べている問題に対処することを望んでいます。(もしそうなら)、それに応じてこの投稿を変更します。確かに、私の環境は非常に具体的です:Windowsの浮浪者。ただし、これは問題ではありません。私が同じ方法で起動しようとしたすべてのCMS、アプリ、およびフレームワークは、数分で実行可能でした。今日の現代のウェブ世界には、すべてが同じように機能しないという理由はありません。
キーテイクアウト- 環境セットアップに関連する一般的な落とし穴を回避するために、ezパブリッシュ5.xをインストールしようとする前に、Laravel Homesteadがセットアップを改善し、正しく構成していることを確認してください。
- `Composer Create-Project`コマンドを使用してEZ Publishをダウンロードします。これは、特にWindows-Hosted VMで準備されたTARアーカイブを使用するときに一般的なシンリンクの問題を回避するためです。 「ezpublish.yml`ファイルを変更してキャッシュ設定を変更します。これは、VM環境でのキャッシュ生成障害に関連するエラーを防ぐために重要です。
- nginxのタイムアウトとバッファー設定を増やして、EZ Publishの大規模なリクエスト応答を処理し、サーバーのタイムアウトなしでよりスムーズな操作を保証します。 nginx構成のURLから「index.php」を削除して、URL構造を近代化し、Webアプリケーションの現在のベストプラクティスと協力してください。
- Vagrant-Frendly Apps
各チームメンバーに同一の
ホストマシン、または同じマシン上の他のクライアントに専念する環境を混乱させることなく、生産環境を可能な限り密接に複製できる
-
したがって、Vagrantを使用して、単一のプロジェクトに特化したVMの同一のコピーを使用します。これは、より速く、より速く、よりスケーラブルな開発、実験、展開のために影響なしに簡単に破壊および再構築できます。
- ここでのステップバイステップのポイントは、開発目的であらゆるマシンで同一のEZインスタンスをアップして実行することがどれほど簡単かを示すことでした(単純ではないことが判明したという事実は別の話です全体的に)。これは重要です。たとえば、誰もが同じOSを使用しているわけではありません。上記のリンクリンクはCentosに、HomesteadはUbuntuです。任意のOSでは、インストール手順も同様に簡単にする必要があります。 このVM内のEZパブリッシュファイルは文字通り内部にあります。外の世界(ホストマシン)へのフォルダーの共有はありません。Symlinkの問題の可能性はありませんが、インストールされたIDEでアプリのファイルを開く可能性もありませんそれらをハッキングするためにホストマシンで。これにより、効果的な開発ワークフローが防止されます
- ezがホームステッドで5.xを公開することについてよく尋ねる質問
以下のインストール手順を実験することで、EZ Publishがこれを簡単にするではないことがわかりました。 2014年、複数のクライアントやプロジェクトを持つほとんどのプロフェッショナルな開発者は、ソロでもVagrantを使用しています。各プロジェクトに専用の、別々の、破壊可能で再構築可能な環境を持つことは、ホスティングオプション、ツール、バージョンのバージョンを考慮する際に貴重です。廃棄。
最近、より多くのアプリが浮浪者のアプローチを採用しているのを見ないことに失望しています。フロントエンドを開発するときにモバイルを最初に考える必要があるように、バックエンドライブラリ、フレームワーク、アプリを開発するときにVMファーストを考える必要があります。世界がHeroku、Gae、Amazonなどに移動するにつれて、適応することは残されます。今すぐインストール手順を開始しましょう。
重要な注意:Windowsにいない場合は、ステップ5がおそらく発生しません。 Windowsにいる場合は、「昇格した」gitbash /コマンドプロンプト(管理者として実行する)で手順全体を実行することで、ステップ5を回避できます。管理者ユーザーは、Windows 8にシンリンクを作成する許可を持つ唯一のユーザーです。これが修正可能であるという噂がありましたが、どれも確実に機能しませんでした。管理者として開発環境を実行すると、まったく新しいワームの缶が開きますので、あなた自身の責任でそれを行います。誰かがGitBashを介してSymlinksを作成するための通常のWindows8ユーザーの許可を正常に提供した場合は、私に知らせてください。
ララヴェルのホームステッドが用意されたボックスを改善し、動作させます。あなたがそれが機能するかどうかを確認するためにVagrantをした場合、私たちがそれを構成できるようにVagrantを破壊します。ステップ1:ホームステッドが改善されました
ステップ2:サイトを追加
homestead.yamlファイルを開き、新しいサイトを追加します:
Laravel Homesteadの改善されたクイックチップに記載されているように、ホストマシンのホストファイルにez.appを追加します。基本的に、ホストファイルに127.0.0.1 ez.appが含まれていることを確認してください。当然のことながら、共有フォルダーもマップします。
VMをVAGRANTで起動し、VAGRANT SSHでVMを入力します。
ステップ3:前提条件をインストール<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
PHP-INTLとPHP-XSL拡張機能をインストールするには、PHPが必要です。また、セットアップウィザード全体でsendmailを求めます。 Homesteadでは、これらすべてを:
でインストールできますステップ4:コードを取得
上記は、開発用ではなく、使用するためのEZプロジェクトを作成します。開発バージョンを取得するには、GitHubページを参照してください。
Ez Publishは途方もなく大きく、これを行うのに時間がかかることに注意してください。 「1時間あたりの60リクエスト」を確認することはほぼ保証されています。タイムアウトとダウンロードが必要な膨大な量のデータにより、プロセスは数回失敗する可能性があります。その場合は、RM -RF EZPUBでEZPUBフォルダー全体を削除し、上記の作成プロジェクトコマンドを再実行するだけです。パッケージがダウンロードされるたびに、後続のリクエストでローカルキャッシュから提供されるため、毎回より速くなります。 、再ダウンロードするのではなく
インストーラーは、端近くのデータ(秘密、フォールバックロケールなど)を求めます。入力するか、それぞれのEnterを押してデフォルトを使用します。EZ PublishのWebサイトからダウンロードされた準備されたTarアーカイブを使用していない理由は、準備されたアーカイブにSymlinksが詰め込まれているためです。VMがWindowsマシンでホストされている場合は機能しません。マルチプラットフォームに優しいものを維持するために、私は作曲家の創造プロジェクトアプローチを選択しました。
ステップ5:インストーラーのバグを処理します[Windowsホストのみ]現状では、EZパブリッシュはVMやエッジケースに合わせて調整されておらず、チームが考慮していないことが多くあります。たとえば、WindowsボックスのVMで実行します。すべての依存関係により、インストール中にどこかを壊すことが保証されています。私にとって、そしておそらくあなたにとっても、これは資産をインストールするポストインストールスクリプトになります。インストール資産は実際にはSymfonyの一部であり、それを行うクラスでは、実際にWindowsやSymlinksに対して警告しますが、Parent ProjectがSymlinksを強制するかどうかを考慮していません。
これが発生した場合(Symlinksなどについてエラーが発生します)、Open Composer.jsonを削除して削除します。
これにより、インストーラーにsymlinkではなく、設計資産をコピーするように強制されます。
次に、[インストール後のスクリプト]を実行して再実行:<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
レガシーEZバージョンと何らかのコメントバンドルに関するエラーが発生する可能性がありますが、まだ修正する方法や重要かどうかはわかりません。
ステップ6:データベースを作成後でEZに送信するデータベースを作成します。 mysql -u Homestead -pescretを使用してVMでmysqlインスタンスにログインします。次に、実行:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
ステップ7:フォルダー許可を設定します
このステップは、Ezpubフォルダーのすべてのサブフォルダーを所有する「Vagrant」ユーザーの下ですでに実行されているため、Homesteadでスキップできます。
ステップ8:セットアップウィザード
を実行します編集:ステップ8とステップ9の一部を自動的に処理するアプローチについては、以下のJeromeのコメントを参照してください。
ez.app:8000にアクセスして、次の画面を参照してください。<span>cd Code </span><span>composer create-project ezsystems/ezpublish-community ezpub</span>
これは非常に奇妙になる場所です。理由もなく、これは起こります。はい、それは2年間未確認のままである問題です。真剣に、それはPHPプロジェクトでの2年前の未解決のバグです。コアでそれを修正するには、コミットとプッシュを含む7秒の作業がかかります(8.2を参照)。私たちの場合、それを回避するには2つの方法があります。快適なものはないので、それを選ぶのはあなた次第です。
ステップ8.1:陽気が続きます
それを回避するために、そして私が真剣に死んでいるので、これは冗談ではありません。開発ツールを開き、フォームのアクション属性の最後にezsetupを配置する必要があります。 .php。 2014年にそのような問題がまだ存在する方法は困惑していますが、ここにあります:
フレームワークのソースファイルを変更したくない場合は、このアプローチを選択してください。
ステップ8.2:ガットのハッキング2番目の、おそらく少し単純なアプローチは、ウィザード自体の形式を変更し、そのアクション属性を変更することです。
ezpubezpublish_legacykernelsetupezsetup.phpに移動し、行を見つけます:
その上に、これを置いてください:
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
あなたが狂気になるので、ウィザードをスキップしてEz Publishを手動でセットアップすることをお勧めしません。客観的に、彼らのインストール手順と彼らのドキュメントは、私が今まで見た中で最悪のものです。あなたが彼らの指示に従おうとするならば、あなたはそれを試してみたいというすべての欲求を失うでしょう。 EZチームがすぐに彼らのレガシーシステムへのすべての依存関係と参照を完全に削除し、新しいコアのみを維持することを願っています。 VMはますます多く、エントリの容易さとともに短いインストール手順は、目立つことを望んでいるCMSの最も重要な属性です。
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
この警告を無視します。次の画面に進みます(8.1を使用した場合は、フォームアクションを再度変更することを忘れないでください。
セットアップウィザードの最後に、Nginxタイムアウトエラーが発生します。これは、EZパブリッシュがひどいレガシーバージョンと新しいバージョンの両方を処理する必要があるため、VMで実行されているために遅いことで有名であるためです。そのため、それが起こったら、URLからEzsetupを使用して削除してリフレッシュしてください。その後、あなたはこの美しさに迎えられます:
ステップ10:キャッシュを無効にします
上記の画面のエラーは、EZがこのようなPHPファイルのキャッシュを作成しようとしているときに発生します。 /home/vagrant/code/ezpub/ezpublish/cache/prod/stash/0FEA6A13C52B4D47/25368F24B045CA84/A1E4F174919D040AF6D06113D6777C9E0/4A1C6BE177 996F9E/03934AE1C02FFC/9A0364B9E99BB480/DD25E1F0284C8555/CAF9B6 B99962BF5C/2264824231D7A40C/D3D9446802A44259/755D38E6D163E820.PHP (うーん、聞かないで…)。このキャッシュエンジンは、失敗した場合に無効にするほど賢くないため、手動で行う必要があります。
in ezpubezpublishconfigezpublish.ymlは、これに隠しブロックを変更します
「メモリ内」とは、ファイルシステムの代わりに、メモリがスタッシュキャッシュに使用されることを意味します。 RM -RF ezpublish/cache/*でキャッシュをクリアし、更新します。必要に応じて、キャッシュエンジンを後でファイルシステムキャッシュよりもまともなものに交換してください。 MKDIRのプロトコルエラーを他にどのように軽減するかはわかりません。VM関連であることは知っていますが、それ以上ではありません。どんなアドバイスでも大歓迎です。
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
しかし、少なくともレンダリングするタイトルを手に入れました!
これらすべての警告を引き起こすファイルは、実際、EZがロードするために必要なすべてのPHPファイルを編集することです。それらは1つ(!!!)に統合され、エズパブリッシュフォルダーに入れられました。ファイルはコードの混乱であり、デバッグは簡単ではありません。なぜなら、PHP拡張機能がなく、IDEのハイライトがないことを除いて、それはいかなる種類のコーディング標準も尊重しないためです(したがって、1つのファイルに数十のクラス、インデント、およびインデントなし、結局のところ、読みやすさはありません)、それは「単なるキャッシュファイル」です。ただし、アプリケーション全体がキャッシュファイルに依存している場合、簡単にデバッグできると便利です。
恐ろしいキャッシングの実践はさておき、この混乱全体を無効にし、環境環境変数を変更することでEZパブリッシュをデバッグモードにロードすることができます。 Homestead.yamlでこれを変更できます。これにより、「変数」ブロックに追加することで、ブート中にAutoConfigureを取得できます。
または、ezpub/webでindex.phpファイルを編集し、$環境= 'dev'を編集することができます。 $環境= getEnv( "環境"); 8行目。
この時点で、2番目のアプローチが続いている場合は簡単になります。それ以外これを終了すると、これをレンダリングすることができるはずです:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
EZの公開リクエスト応答が非常に大きいため、Nginxの制限を上げる必要があります:
ルート指令の下で、次のことを貼り付けます
sudo service nginx restartでnginxを保存、終了、再起動します。
いくつかのページは機能します(ブログ、発見)、他のページ、まあ、それほどではありません。ただし、デモバンドルをデバッグすることは、このすでに長すぎる記事の範囲外です。
ステップ12:urlからindex.phpを削除します
デフォルトでは、すべてのSymfonyアプリには、「App.php」またはEZ Publishのケース「index.php」には、何らかの理由であります。誰かが2001年からホスティングプロバイダーや開発者をサポートしなければならないと思います。削除することで両方のプロジェクトを21世紀に持ち込みましょう。 ここの指示に従って、「場所」ブロックの上に、追加:
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
sudo service nginx restartを使用してnginxを保存、終了、再起動します。
ステップ13:喜ぶ<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
骨の折れるプロセスの後、最終的に完了しました。 1日以上かかったのは、できれば10分以内にかかったことを願っています(ダウンロード時間を除く)。今、あなたも、あなた自身のホームステッドインスタンスで、過剰に複製され、複雑で時代遅れのCMSを試すことができます。それがどのように機能するかを教えてください!
結論
浮浪者ボックスで起きて実行するためにこの多くの作業を必要とするCMSは、私の考えでは、注意を払う価値のあるCMSではありません。確かに、おそらくそれをホストマシンに簡単にインストールしてそのように実行できますが、それは専門的なアプローチではありません。開発環境はカプセル化され孤立する必要があり、開発者は気まぐれでインスタンスを破壊して再構築できる必要があります。 CMSには、自動実行のスクリプトがあり、すべての可能な問題を検出し(Symlinksが使用できない、ハードコピーモードに自動的に切り替えるなど)、すべてをセットアップします(データベースからフォルダー許可まで、必要に応じて)。途中。
このプロセスはEZ Publishをインストールしましたが、それだけの価値がありましたか?それはあなた次第です。 EZは間違いなく強力なCMSですが、それに入ることの難しさはせいぜい有害です。これで、それをテストするための共通の出発点があります。PHPサマーキャンプや他の場所でのEZの人々からこれらの問題についてもっと知ることができます。それまでは、このボックスにあるEZチュートリアルをいくつか取得しましょう。
以下のコメントにフィードバックを入れてください。特に、ウィンドウ以外のホストでこれを行い、デモのバンドルを機能させようとした場合は、さまざまなアプローチを聞きたいと思っています!
編集:このgithubリポジトリは私の注意を喚起しました。これは、機能するEZパブリッシュの準備されたVagrant構成です。ただし、2つの注意事項があります
Ez Publish 5.xは、さまざまな利点を提供します。 Webサイトでコンテンツを作成、管理、公開できる堅牢で柔軟なコンテンツ管理システム(CMS)を提供します。また、オープンソースです。つまり、自由に使用できることを意味し、特定のニーズに合わせてカスタマイズできます。一方、Homesteadは、EZパブリッシュサイトのセットアップと管理プロセスを簡素化する仮想開発環境です。さまざまなマシン間で一貫した環境を提供し、ローカル開発環境の違いから生じる可能性のある潜在的な問題を軽減します。 .xは、柔軟性と堅牢性のために、他のCMSプラットフォームから際立っています。複雑なWebサイトと大量のコンテンツを処理するように設計されており、企業や組織に最適な選択肢となっています。また、複数の国で事業を展開している企業にとって重要な機能である多言語サポートも提供しています。さらに、そのオープンソースの性質により、特定のニーズを満たすための広範なカスタマイズが可能になります。Homesteadに5.xをパブリッシュすることは困難ですか?ホームステッドでは、特に記事で提供されている段階的なガイドに従えば、簡単です。ホームステッドのセットアップ、システムの構成、EZパブリッシュのインストール、サイトのセットアップが含まれます。これに慣れていない場合は複雑に思えるかもしれませんが、ガイドは各ステップを詳細に分割し、既存のWebサイトをEZの公開に移行できます。はい、既存のウェブサイトをEZ Publish 5.xに移行することが可能です。ただし、ウェブサイトがオンになっている現在のプラットフォームとコンテンツの量に応じて、プロセスは複雑になる場合があります。移行を試みる前に、専門家の助けを求めたり、プロセスを徹底的に調査したりすることをお勧めします。
オープンソースプラットフォームとして、EZ Publish 5.Xには、サポートを提供できるユーザーと開発者の大規模なコミュニティがあります。また、多くのオンラインリソース、チュートリアル、フォーラムがあり、ヘルプを見つけることができます。さらに、EZ Publicsの背後にある会社であるEZ Systemsからの専門的なサポートサービスは、EZ Publish 5.x?EZ Publish 5.xはセキュリティを念頭に置いて設計されています。ロールベースのアクセス許可、安全なパスワードストレージ、一般的なWeb攻撃に対する保護などの機能が含まれます。ただし、他のソフトウェアと同様に、サイトを更新し続け、Webセキュリティのベストプラクティスに従って、サイトを安全に保つことを保証することが重要です。 🎜>はい、EZパブリッシュ5.xはeコマースサイトに使用できます。製品管理、ショッピングカート機能、支払いゲートウェイの統合など、さまざまなeコマース機能をサポートしています。ただし、eコマースサイトに必要なすべての機能を提供するには、追加のプラグインまたは拡張機能を使用する必要があります。 5.xを公開するには、ApacheやNginxなどのWebサーバー、PHP 5.4以降、MySQLやPostgreSQLなどのデータベースが必要です。また、特定のPHP拡張機能と設定が必要です。詳細なシステムの要件は、EZ Publish Documentationに記載されています。 5.xサイトを公開します。これには、キャッシュを使用してサーバーの負荷を削減し、データベースの最適化、コンテンツ配信ネットワーク(CDN)を使用してコンテンツ配信を高速化することが含まれます。ソフトウェアとプラグインを定期的に更新することも、パフォーマンスの向上に役立ちます。EZパブリッシュ5.x?はい、EZパブリッシュ5.xの機能を拡張できますか?プラグインと拡張機能を使用して新しい機能と機能を追加することもできます。また、オープンソースの性質のためにコアコードをカスタマイズすることもできます。ただし、コアコードを変更すると、更新を適用することがより困難になり、セキュリティリスクを導入する可能性があることに注意することが重要です。
以上がEZをホームステッドで動作させるために5.xを公開する13のステップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...
