Cet article allait initialement être une astuce rapide sur la façon d'installer EZ Publier sur Homestead en quelques étapes. Cependant, après avoir vu le montant des efforts qu'il a fallu pour le monter et travailler à partir de zéro sur une boîte vagabondie hébergée sur Windows, j'ai décidé de faire un article complet. J'ai souffert, donc tu n'as pas à :)
J'espère que l'équipe EZ abordera les problèmes que j'énonce ci-dessous, et comme ils le font (s'ils le font), je modifierai ce message en conséquence. Certes, mon environnement est très spécifique: vagabond sur Windows. Cependant, cela ne devrait pas avoir d'importance. Chaque CMS, application et framework que j'ai essayé de démarrer de la même manière a été exécuté en quelques minutes. Il n'y a aucune raison dans le monde du Web moderne d'aujourd'hui que cela ne fonctionne pas de la même manière sur tout.
Définissons le but de Vagrant. Le but de Vagrant est l'unité d'équipe et la parité de production / développement quel que soit le système d'exploitation hôte. En d'autres termes, le but de Vagrant est double:
Par conséquent, nous utilisons Vagrant pour avoir des copies identiques de machines virtuelles dédiées à un seul projet, qui peut être facilement détruit et reconstruit sans répercussions pour un développement, une expérimentation et un déploiement plus faciles, plus rapides et plus évolutifs.
Grâce à l'expérimentation avec les procédures d'installation ci-dessous, j'ai constaté que EZ Publish ne fait pas faciliter cela. En 2014, la plupart des développeurs professionnels avec plusieurs clients et / ou projets utilisent un vagabond même en solo - avoir des environnements dédiés, séparés, destructibles et reconstrables pour chaque projet est inestimable si l'on considère la pléthore d'options d'hébergement, d'outils et de versions de ces outils dans notre notre élimination.
Je suis déçu de ne pas voir plus d'applications adopter une approche vague de ces jours-ci. Tout comme nous devons d'abord penser à mobile lors du développement de frontaux, nous devons penser que VM-premier lors du développement de bibliothèques, de cadres et d'applications arrière - sinon tout le Docker / Vagrant Compartmentance Story S'adapter sera laissé pour compte alors que le monde se déplace à Heroku, Gae, Amazon et autres.
Commençons maintenant la procédure d'installation.
Remarque importante: si vous n'êtes pas sous Windows, l'étape 5 ne vous arrivera probablement pas. Si vous êtes sous Windows, vous pouvez éviter l'étape 5 en exécutant toute la procédure dans une invite Gitbash / Commande «élevée» (en exécutant soit l'administrateur). Les utilisateurs d'administration sont les seuls à avoir la permission de créer des liens symboliques sur Windows 8. Il y avait des rumeurs à ce que cela soit réparable, mais aucun d'entre eux ne fonctionne de manière fiable. L'exécution de votre environnement de développement en tant qu'administrateur ouvre une toute nouvelle boîte de vers, alors faites-le à vos risques et périls. Si quelqu'un offre avec succès une autorisation régulière de Windows 8 pour créer des liens symboliques via Gitbash, veuillez me le faire savoir.
Ayez une boîte à propriété Laravel améliorée préparée et fonctionne. Si vous avez fait un vagabond pour voir si cela fonctionne, faites un détruire vagabond afin que nous puissions le configurer.
Ouvrez le fichier Homestead.yaml et ajoutez un nouveau site:
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
Ajoutez EZ.App au fichier hôte de votre machine hôte, comme décrit dans la pointe rapide améliorée de Laravel Homestead. Fondamentalement, assurez-vous que votre fichier d'hôtes contient 127.0.0.1 EZ.App. Naturellement, mappez également le dossier partagé.
Démarrez la machine virtuelle avec Vagrant Up et entrez la machine virtuelle avec Vagrant Ssh.
Le projet a besoin de PHP pour que les extensions PHP-INTL et PHP-XSL soient installées. Il vous demandera également Sendmail tout au long de l'assistant de configuration. Dans Homestead, vous pouvez installer tous ces éléments avec:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
<span>cd Code </span><span>composer create-project ezsystems/ezpublish-community ezpub</span>
Ce qui précède créera un projet EZ à utiliser, pas pour le développement. Pour obtenir la version de développement, reportez-vous à leur page GitHub.
Notez que EZ Publish est ridiculement grand et prendra un certain temps pour le faire. Il est presque garanti que vous atteindrez la limite de débit API GitHub non authentifiée «60 demandes par heure», vous devrez donc peut-être saisir votre nom d'utilisateur et votre mot de passe pendant le processus d'installation pour parcourir cette barrière.
Le processus peut échouer à quelques reprises en raison des délais d'attente et de l'énorme quantité de données qui doivent être téléchargées. Si cela se produit, supprimez simplement l'intégralité du dossier ezpub avec RM -RF EZPUB et réévaluez la commande Create-Project ci-dessus - ce sera plus rapide à chaque fois, car chaque fois qu'un package est téléchargé, il est servi à partir du cache local sur les demandes suivantes , plutôt que d'être redémarré.
Le programme d'installation vous demandera des données vers la fin (secrets, parquet, etc.). Remplissez-le ou appuyez simplement sur Entrée sur chacun pour utiliser les défauts.
La raison pour laquelle nous n'utilisons pas une archive de goudron préparée téléchargée sur le site Web d'EZ Publish est que les archives préparées sont remplies de liens symboliques - et ceux-ci ne fonctionnent pas si votre machine virtuelle est hébergée sur une machine Windows. Dans un effort pour garder les choses amicales multiplateformes, j'ai opté pour l'approche de création de compositeur.
Dans l'état actuel des choses, EZ Publish n'est pas très bien réglé pour les machines virtuelles ou les cas Edge et il y a beaucoup de choses que l'équipe n'a pas envisagée - par exemple, en l'exécutant dans une machine virtuelle sur une boîte Windows. Avec toutes les dépendances, il est garanti de se casser quelque part lors de l'installation. Pour moi, et probablement pour vous aussi, ce sera les scripts d'installation de la publication qui installent des actifs. Installer Assets fait en fait partie de Symfony qui, dans la classe qui le fait, met en garde contre Windows et Symlinks, mais ne le prend pas en considération si le projet parent oblige Symlinks, comme EZ Publish le fait.
Si cela se produit (vous obtiendrez une erreur sur SymLinks et certains), ouvrez Composer.json et supprimer la ligne:
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
Cela obligera le programme d'installation à Copier les actifs de conception plutôt que symLink eux.
Ensuite, réévaluez les scripts post-stalle en exécutant:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
Vous pourriez toujours obtenir une erreur sur la version héritée EZ et un bundle de commentaires, mais je ne sais pas encore comment résoudre ce problème, ou si cela compte ou non.
Créer une base de données que nous allons nous alimenter avec EZ plus tard. Connectez-vous à votre instance MySQL dans la machine virtuelle avec MySQL -U Homestead -Pecret. Ensuite, courez:
<span>cd Code </span><span>composer create-project ezsystems/ezpublish-community ezpub</span>
Cette étape peut être ignorée sur Homestead, car le serveur s'exécute déjà sous l'utilisateur «Vagrant», qui possède tous les sous-dossiers des dossiers Ezpub.
EDIT: Voir le commentaire de Jérôme ci-dessous pour une approche qui gère automatiquement une partie des étapes 8 et 9.
Visitez ez.app:8000 et voyez l'écran suivant.
C'est là que ça devient super bizarre. Pour aucune raison, cela se produit. Oui, c'est un problème qui est resté non fixé depuis deux ans maintenant - sérieusement, c'est un bogue non résolu de deux ans dans un projet PHP. Le réparer dans le cœur prendrait sept secondes de travail, notamment Commit and Push (voir 8.2). Il y a deux façons de contourner cela dans notre cas. Personne n'est agréable, donc c'est à vous d'en choisir un.
pour y contourner, et je suis mort sérieux, ce n'est pas une blague - vous devez ouvrir des outils de développement et mettre Ezsetup à la fin de l'attribut d'action du formulaire, car par défaut, il indique qu'indexer uniquement .php. Il est déroutant de voir comment un tel problème peut encore exister en 2014, mais nous voici:
Choisissez cette approche si vous n'aimez pas modifier les fichiers source d'un framework.
La deuxième approche, peut-être légèrement plus simple, modifie la forme de l'assistant lui-même, et modifiant son attribut d'action.
Entrez dans ezpubezpublish_legacykernelsetupezsetup.php, et trouvez la ligne:
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
au-dessus, mettez ceci:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
Après cela, l'attribut d'action sera corrigé.
Je ne vous recommande pas d'essayer de configurer manuellement EZ Publier en sautant l'assistant parce que vous deviendrez fou. Objectivement, leur procédure d'installation et leur documentation sont parmi les pires que j'ai jamais vues. Vous perdrez tout le désir de l'essayer si vous essayez de suivre leurs instructions. J'espère que l'équipe EZ supprimera bientôt complètement toutes les dépendances et références à leur système hérité, ne laissant en place que le nouveau noyau - j'espère également qu'ils mettront bientôt à jour leur documentation vers quelque chose de plus lisible et plus de type 2014: les gens se développent sur dédié Les machines virtuelles de plus en plus maintenant, et une courte procédure d'installation ainsi que la facilité d'entrée sont les attributs les plus cruciaux de tous les CM qui veulent se démarquer.
La configuration de publication EZ est suffisamment mise à jour pour ne connaître qu'un seul serveur (Apache) et en tant que tel pense qu'il ne fonctionne pas en mode VHost:
ignorer cet avertissement. Continuez vers l'écran suivant (si vous avez utilisé 8.1, n'oubliez pas de modifier à nouveau l'action du formulaire, sinon vous recommencerez).
À la fin de l'assistant de configuration, vous obtiendrez une erreur de délai d'expiration Nginx. En effet, EZ Publish est notoirement lent en raison de la façon dont il doit traiter à la fois la terrible version héritée et la nouvelle version, et en raison de la course sur une machine virtuelle, donc lorsque cela se produit, supprimez tout ce qui concerne EzSetUp de l'URL et actualiser. Vous serez alors accueilli par cette beauté:
L'erreur dans l'écran ci-dessus se produit tandis que EZ essaie de créer des caches de fichiers PHP, comme celui-ci: / Home / Vagrant / Code / ezpub / ezpublish / cache / prod / stash / 0Fea6a13c52b4d47 / 25368f24b045ca84 / a1e4f174919d040af6d06113d677c9e0 / 4a1c6be177 996F9E / 03934AE1C1C02FFC / 9A0364B9E99BB480 / DD25E1F0284C8555 / CAF9B6 B99962BF5C / 2264824231D7A40C / D3D9446802A44259 / 755D38E6D163E820.PHP (Ugh, ne demandez pas…).
Ce moteur de cache n'est pas assez intelligent pour se désactiver au cas où il échoue, nous devons donc le faire manuellement.
dans ezpubezpublishconfigezpublish.yml change le bloc de cachette à ceci:
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
"En mémoire" signifie que la mémoire sera utilisée pour le cache de cachette, au lieu du système de fichiers. Effacez le cache avec RM -RF Ezpublish / Cache / * et actualiser. Si nécessaire, remplacez le moteur de cache par quelque chose de plus décent que le cache du système de fichiers plus tard. Je ne sais pas comment atténuer l'erreur de protocole pour MKDIR - je sais que c'est lié à la machine virtuelle, mais pas beaucoup plus. Tout conseil est très apprécié.
Vous serez maintenant probablement accueilli par une autre vague d'avertissements et une erreur 503 à la fin:
mais au moins nous avons obtenu le titre de rendu!
Le fichier provoquant tous ces avertissements est, en fait, une compilation de tous les fichiers PHP requis pour le chargement EZ. Ils ont été fusionnés en un (!!!) et ont mis dans le dossier Ezpublish, d'où il est servi. Le fichier est un gâchis de code et pas facile à déboguer parce que, en plus de ne pas avoir l'extension PHP et le manque de faits saillants IDE, il ne respecte pas non plus de norme de codage (d'où des dizaines de classes dans un seul fichier, pas d'indentation et Avec cela, aucune lisibilité), il s'agit de «juste un fichier de cache», après tout. Mais lorsque l'ensemble de votre application dépend d'un fichier de cache, ce serait bien de pouvoir le déboguer facilement.
Mis à part les pratiques de mise en cache horribles, nous pouvons désactiver tout ce gâchis et charger EZ publier en mode débogage en modifiant la variable environnementale de l'environnement. Vous pouvez changer cela dans Homestead.yaml afin qu'il soit automatiquement fixe pendant le démarrage en l'ajoutant au bloc «Variables»:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
ou, vous pouvez simplement modifier le fichier index.php sous ezpub / web et mettre $ environnement = 'dev'; sous $ environnement = GETENV ("Environnement"); sur la ligne 8.
À ce stade, la deuxième approche est plus facile si vous avez suivi, car sinon vous devrez recommencer avec l'ensemble du processus de configuration si vous détruisez et augmentez.
terminer ceci, vous devriez être en mesure de faire en sorte que ce soit:
En raison de la publication des réponses de la demande EZ étant si absurdement importantes, nous devons augmenter les limites de Nginx:
<span>cd Code </span><span>composer create-project ezsystems/ezpublish-community ezpub</span>
Sous la directive racine, collez ce qui suit:
<span>"symfony-assets-install": "relative",</span>
Enregistrer, sortir, redémarrer Nginx avec le service sudo nginx redémarrer.
Certaines pages fonctionneront (blog, découvrir), d'autres, eh bien, pas tant. Le débogage de leur bundle de démonstration, cependant, est en dehors de la portée de cet article déjà trop long.
Par défaut, toutes les applications Symfony ont "app.php" ou dans le cas d'EZ Publish "index.php" dans leur URL pour une raison quelconque. Je suppose que quelqu'un doit soutenir ces fournisseurs et développeurs d'hébergement de 2001. Amenons les deux projets dans le 21e siècle en le supprimant.
<span> - map: ez.app </span><span> to: /home/vagrant/Code/ezpub/web</span>
Selon les instructions ici, au-dessus du bloc «Emplacement», ajoutez:
<span>sudo apt-get update </span><span>sudo apt-get install php5-intl php5-xsl sendmail</span>
Enregistrer, sortir et redémarrer Nginx avec le service sudo nginx redémarrer.
Après un processus ardu, nous avons enfin terminé. Ce qui m'a pris plus d'une journée, j'espère que nous vous a pris moins de 10 minutes (à l'exclusion des heures de téléchargement). Maintenant, vous pouvez également essayer ce puissant CMS puissant, quoique sur-bloqué, trop compliqué et obsolète sur votre propre instance de propriété familiale. Faites-moi savoir comment cela fonctionne!
Toute CMS qui nécessite autant de travail pour se mettre en service sur une boîte vagabonde n'est, dans mon esprit, pas un CMS qui mérite d'être prêté attention. Bien sûr, vous pouvez probablement l'installer facilement sur une machine hôte et l'exécuter de cette façon, mais ce n'est pas une approche professionnelle - les environnements de développement doivent être encapsulés et isolés, et les développeurs doivent être en mesure de détruire et de reconstruire une instance sur un coup de tête. Un CMS doit avoir des scripts qui s'exécutent automatiquement, détecter tous les problèmes possibles (comme les liens symboliques qui ne sont pas disponibles et le passage automatiquement en mode papier) et tout configurer (de la base de données aux autorisations du dossier, si nécessaire), ne demandant que Sudo En cours de route.
Ce processus a installé EZ Publish, mais cela en valait-il la peine? C’est à vous de décider. Bien que EZ soit définitivement un CMS puissant, les difficultés à y entrer sont au mieux préjudiciables. Vous avez maintenant un point de départ commun pour le tester, et je serai sûr d'en savoir plus sur ces problèmes des EZ People du PHP Summer Camp et ailleurs. Jusque-là, faisons des tutoriels EZ sur cette boîte, n'est-ce pas?
Mettez vos commentaires dans les commentaires ci-dessous, je suis impatient d'entendre différentes approches, surtout si vous avez essayé de le faire sur un hôte non Windows et que le bundle de démonstration fonctionne!
Edit: Ce repo GitHub a été porté à mon attention. Il s'agit d'une configuration vagabonde préparée d'EZ Publish qui fonctionne. Il y a cependant deux mises en garde:
EZ Publier 5.x sur Homestead offre une gamme d'avantages. Il fournit un système de gestion de contenu robuste et flexible (CMS) qui vous permet de créer, gérer et publier du contenu sur votre site Web. Il est également open-source, ce qui signifie qu'il est gratuit et peut être personnalisé pour répondre à vos besoins spécifiques. Homestead, en revanche, est un environnement de développement virtuel qui simplifie le processus de mise en place et de gestion de votre site de publication EZ. Il fournit un environnement cohérent sur différentes machines, réduisant les problèmes potentiels qui peuvent résulter des différences dans les environnements de développement locaux.
EZ Publish 5 .x se démarque des autres plates-formes CMS en raison de sa flexibilité et de sa robustesse. Il est conçu pour gérer des sites Web complexes et de grands volumes de contenu, ce qui en fait un excellent choix pour les entreprises et les organisations. Il offre également un support multilingue, qui est une caractéristique clé pour les entreprises opérant dans plusieurs pays. De plus, sa nature open source permet une personnalisation approfondie pour répondre sur Homestead est simple, surtout si vous suivez le guide étape par étape fourni dans l'article. Il s'agit de configurer Homestead, de configurer votre système, d'installer EZ Publier et de configurer votre site. Bien que cela puisse sembler complexe si vous êtes nouveau dans ce domaine, le guide décompose chaque étape en détail, ce qui le rend plus facile à suivre.
Oui, il est possible de migrer votre site Web existant vers EZ Publish 5.x. Cependant, le processus peut être complexe en fonction de la plate-forme actuelle sur laquelle vous êtes sur votre site Web et de la quantité de contenu que vous disposez. Il est recommandé de demander de l'aide professionnelle ou de rechercher en profondeur le processus avant de tenter une migration.
En tant que plate-forme open-source, EZ Publish 5.x a une grande communauté d'utilisateurs et de développeurs qui peuvent fournir un soutien. Il existe également de nombreuses ressources en ligne, tutoriels et forums où vous pouvez trouver de l'aide. De plus, des services de support professionnel sont disponibles auprès d'EZ Systems, la société derrière EZ Publish.
EZ Publish 5.x est conçu avec la sécurité à l'esprit. Il comprend des fonctionnalités telles que les autorisations basées sur des rôles, le stockage de mot de passe sécurisé et la protection contre les attaques Web courantes. Cependant, comme tout logiciel, il est important de le tenir à jour et de suivre les meilleures pratiques pour la sécurité du Web afin de garantir que votre site reste sécurisé.
Oui, EZ Publish 5.x peut être utilisé pour les sites de commerce électronique. Il prend en charge une gamme de fonctionnalités de commerce électronique, y compris la gestion des produits, la fonctionnalité des paniers d'achat et l'intégration de la passerelle de paiement. Cependant, vous devrez peut-être utiliser des plugins ou des extensions supplémentaires pour fournir toutes les fonctionnalités dont vous avez besoin pour votre site de commerce électronique.
EZ La publication 5.x nécessite un serveur Web comme Apache ou Nginx, PHP 5.4 ou supérieur, et une base de données comme MySQL ou PostgreSQL. Il nécessite également certaines extensions et paramètres de PHP. Les exigences détaillées du système peuvent être trouvées dans la documentation de publication EZ.
Il existe plusieurs façons d'optimiser les performances de votre EZ Publier le site 5.x. Cela comprend l'utilisation de la mise en cache pour réduire la charge du serveur, l'optimisation de votre base de données et l'utilisation d'un réseau de livraison de contenu (CDN) pour accélérer la livraison de contenu. La mise à jour régulière de vos logiciels et plugins peut également aider à améliorer les performances.
Oui, EZ Publish 5.x est très extensible. Vous pouvez ajouter de nouvelles fonctionnalités et fonctionnalités à l'aide de plugins et d'extensions, et vous pouvez également personnaliser le code de base en raison de sa nature open source. Cependant, il est important de noter que la modification du code central peut rendre plus difficile d'appliquer des mises à jour et peut potentiellement introduire des risques de sécurité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!