


Dans ce tutoriel, nous apprendrons à installer des extensions personnalisées sur Heroku. Plus précisément, nous installerons Phalcon.
Les plats clés
- Les extensions PHP personnalisées, telles que Phalcon, peuvent être installées sur Heroku à l'aide de l'outil PHP BuildPack, qui configure l'environnement pour exécuter des applications sur Heroku.
- Le processus implique la création d'un fichier phalcon.sh personnalisé dans le répertoire BuildPack-Php / Bin, éditant le fichier bin / compilé pour l'exécuter et l'ajout de l'extension de texte = phalcon.so à la conf / php / php.ini fichier.
- Une nouvelle application doit être créée sur Heroku, avec un fichier composer.json vide pour indiquer qu'il s'agit d'une application PHP. Heroku permettra les extensions de PHP correspondantes et les mettra dans le dossier de support / build / extensions / non-debug-non-zts-20121212.
- La racine Web doit être spécifiée dans un fichier ProCFile, et le site Web PhalCon s'est cloné dans le dossier Repo. Après avoir poussé tous les engins dans le référentiel central, un clone de phalconphp.com en cours d'exécution sur Heroku sera créé.
Inscription et configurer
Pour utiliser Heroku, vous devez vous inscrire à un compte Heroku. Heroku fonctionne généralement avec une interface de ligne de commande. Pour utiliser cette interface, vous devez installer le package de la ceinture d'outils Heroku pour votre système d'exploitation. Si vous utilisez Linux, ouvrez le terminal et tapez la commande suivante.
wget -qO- https://toolbelt.heroku.com/install.sh | sh
Après l'installation de la ceinture d'outils, vous aurez accès à la commande Heroku à partir de votre shell de commande. Authentifiez l'utilisation de l'adresse e-mail et du mot de passe que vous avez utilisé lors de la création de votre compte Heroku:
heroku login Enter your Heroku credentials. Email: fcopensuse@gmail.com Password: Could not find an existing public key. Would you like to generate one? [Yn] Generating new SSH public key. Uploading ssh public key /home/duythien/.ssh/id_rsa.pub
Appuyez sur Entrée à l'invite pour télécharger votre touche SSH existante ou en créer une nouvelle, utilisée pour pousser le code plus tard.
phalcon est une extension tierce, et donc non regroupé avec PHP. Phalcon nécessite les composants suivants:
<span>mbstring </span><span>mcrypt </span><span>openssl </span><span>PDO </span><span>PDO/Mysql </span><span>PDO/Postgresql </span><span>PDO/Sqlite </span><span>PDO/Oracle</span>
MBSTRING et MCRYPT sont les principaux - MBSTRING est utilisé par le moteur de modèles (Volt), ainsi que par certains validateurs, l'escaper et le filtre, tandis que Mcrypt est utilisé dans la composante de sécurité (générer des hachages sécurisés, etc.)
Afin d'installer les éléments ci-dessus, nous utiliserons l'outil PHP BuildPack. Expliquons ce que cela signifie.
Selon la documentation officielle d'Héroku, les buildpacks offrent la magie et la flexibilité qui facilitent l'exécution de vos applications sur Heroku. Lorsque vous poussez votre code, le BuildPack est le composant qui gère la configuration de votre environnement afin que votre application puisse s'exécuter. Le BuildPack peut installer des dépendances, personnaliser les logiciels, manipuler des actifs et faire tout ce qui est requis pour exécuter votre application. Heroku n'avait pas toujours de buildpacks, ils sont un nouveau composant qui est venu avec la pile de cèdre.
Vous pouvez obtenir plus d'informations sur ces trois étapes et plus via la documentation BuildPack.
Pour commencer, nous fourchons ce code sur github. Cliquez sur le bouton ?Fork? dans le référentiel. Pour pouvoir travailler sur le projet, vous devrez le cloner à votre machine locale.
Exécutez le code suivant:
wget -qO- https://toolbelt.heroku.com/install.sh | sh
Créez le fichier phalcon.sh dans votre répertoire $ home / buildpack-php / bin avec le contenu suivant:
heroku login Enter your Heroku credentials. Email: fcopensuse@gmail.com Password: Could not find an existing public key. Would you like to generate one? [Yn] Generating new SSH public key. Uploading ssh public key /home/duythien/.ssh/id_rsa.pub
Ce fichier installera PhalCon, mais Heroku doit être invité à l'exécuter. Pour ce faire, vous devrez modifier le fichier bac / compilation et ajouter la ligne suivante quelque part là-dedans:
<span>mbstring </span><span>mcrypt </span><span>openssl </span><span>PDO </span><span>PDO/Mysql </span><span>PDO/Postgresql </span><span>PDO/Sqlite </span><span>PDO/Oracle</span>
De plus, vous devez ajouter l'extension de texte = phalcon.so au fichier ?conf / php / php.ini?:
git clone https://github.com/duythien/heroku-buildpack-php.git buildpack-php cd buildpack-php
Maintenant, nous pouvons pousser notre nouveau buildpack:
#!/bin/bash # Build Path: /app/.heroku/php/ dep_url=git://github.com/phalcon/cphalcon.git phalcon_dir=cphalcon echo "-----> Building Phalcon..." ### Phalcon echo "[LOG] Downloading PhalconPHP" git clone $dep_url -q if [ ! -d "$phalcon_dir" ]; then echo "[ERROR] Failed to find phalconphp directory $phalcon_dir" exit fi cd $phalcon_dir/build # /app/php/bin/phpize # ./configure --enable-phalcon --with-php-config=$PHP_ROOT/bin/php-config # make # make install BUILD_DIR= ln -s $BUILD_DIR/.heroku /app/.heroku export PATH=/app/.heroku/php/bin:$PATH bash ./install cd echo "important extension phalcon into php.ini" echo "extension=phalcon.so" >> /app/.heroku/php/etc/php/php.ini
Créez une nouvelle application sur Heroku
Créez un répertoire pour votre application et modifiez-le:
[...] source $BP_DIR/bin/phalcon [...]
De plus, vous devez donner à Heroku une indication que cette application est une application PHP. Pour ce faire, créez un fichier vide appelé composer.json. Sur un système Unix, vous pouvez créer ce fichier comme SO:
[....] extension=phalcon.so ; Local Variables: ; tab-width: 4 ; End:
Ensuite, exécutez ce qui suit pour initalialiser le dép?t de notre application:
git add -A git commit -m "edit php.ini and create phalcon file" git push origin master
Pour créer une nouvelle application Heroku sur laquelle vous pouvez pousser, utilisez la commande de création du CLI:
mkdir phalcon-dev cd phalcon-dev
Cela crée l'application sur Heroku Ready et en attente de notre code, et attache également une télécommande GIT à notre base de code locale. Vous êtes maintenant prêt à déployer l'application, mais il n'y a pas encore de code. Suivez la section suivante pour ajouter du contenu à votre application.
Votre fichier composer.json doit être fait pour ressembler à ceci:
touch composer<span>.json</span>
Il installera automatiquement des extensions telles que McRypt, MbString, etc. sur Heroku. Si vous avez besoin de mongodb, memcached, etc., modifiez le fichier davantage:
git init git add -A git commit -m" first commit"
Maintenant, Heroku permettra les extensions PHP correspondantes et les mettra dans le dossier de support / build / extensions / non-debug-non-zts-20121212. Ensuite, créez un fichier test.php avec le contenu suivant:
heroku create phalcon-dev Creating phalcon-dev... done, stack is cedar http://phalcon-dev.herokuapp.com/ | git@heroku.com:phalcon-dev.git Git remote heroku added
Enfin, déployons l'installation de Phalcon:
<span>{ </span> <span>"require": { </span> <span>"php": "5.5.12" </span> <span>} </span><span>}</span>
La première commande signifie remplacer le buildpack par défaut Heroku en spécifiant un buildPack personnalisé dans la configuration de buildpack_url var. Après quelques minutes, les résultats sont les suivants:
<span>{ </span> <span>"require": { </span> <span>"php": "5.5.12", </span> <span>"ext-memcached": "*", </span> <span>"ext-mongo": "*" </span> <span>} </span><span>}</span>
Cela a pris notre code, l'a poussé à Heroku, l'a identifié et a exécuté un processus de construction contre lui, ce qui le prépare pour le déploiement. Maintenant, notre application est en direct sur Internet! Pour vérifier cela, ouvrez-le maintenant:
<span><span><?php phpinfo() ; ?></span></span>
Si tout se passe bien, vous devriez voir l'écran suivant dans votre navigateur:
Configurez la racine du web et déployez l'exemple de site
vient maintenant la partie délicate qui spécifie la racine Web. La spécification de la racine Web a besoin d'un peu plus de travail et d'informations générales. La racine de l'application du site Web Phalcon dans l'arborescence Git est / app / phalcon-website / public. Pour Heroku, par défaut, la racine Web est la racine du git-arree. Ce répertoire est mappé en interne sur / app. Pour changer cela, nous devons créer un soi-disant ProCfile qui démarre un SH-Script chaque fois que le n?ud Web de l'application Heroku démarre. Ce script modifie ensuite la configuration du serveur et inclut votre propre configuration qui définit la web root sur / app / phalcon-website / public. Créez un fichier ProCFile avec le contenu suivant (si vous utilisez Apache):
wget -qO- https://toolbelt.heroku.com/install.sh | sh
Clone le site Web Phalcon dans le dossier Repo, et quand il est terminé, la commande git push envoie tous les validations sur votre ma?tre local au référentiel central.
heroku login Enter your Heroku credentials. Email: fcopensuse@gmail.com Password: Could not find an existing public key. Would you like to generate one? [Yn] Generating new SSH public key. Uploading ssh public key /home/duythien/.ssh/id_rsa.pub
Visitez l'URL publique de l'application et le tour est joué, vous avez un clone de phalconphp.com en cours d'exécution sur Heroku ici.
en conclusion
L'installation de PhalCon (ou toute autre extension PHP) sur Heroku n'est évidemment ni facile ni simple, mais si vous utilisez BuildPacks, il devient beaucoup plus accessible.
Laissez vos commentaires dans les commentaires ci-dessous et, comme toujours, partagez cet article si vous l'avez aimé!
Les questions fréquemment posées (FAQ) sur l'installation des extensions PHP personnalisées sur Heroku
Comment puis-je installer des extensions PHP personnalisées sur Heroku?
L'installation d'extensions de PHP personnalisées sur Heroku implique quelques étapes. Tout d’abord, vous devez créer un fichier nommé ?Composer.json? dans la racine de votre projet. Ce fichier contiendra les extensions PHP que vous souhaitez installer. Par exemple, si vous souhaitez installer l'extension 'gd', votre fichier 'composer.json' devrait ressembler à ceci:
{
"require": {
"ext-gd": "*"
}
}
Après avoir créé le fichier 'Composer.json', vous devez exécuter la commande 'Composer Update' dans votre terminal. Cela créera un fichier ?composer.lock? dans la racine de votre projet. Vous devez commettre des fichiers ?Composer.json? et ?Composer.lock? dans votre référentiel GIT. Enfin, vous pouvez pousser vos modifications à Heroku en utilisant la commande ?Git Push Heroku Master?. Heroku installera automatiquement les extensions PHP spécifiées dans votre fichier ?composer.json?.
Pourquoi est-ce que je re?ois une erreur en essayant d'installer une extension PHP sur Heroku?
Il pourrait y avoir plusieurs raisons pour lesquelles vous obtenez une erreur lorsque vous essayez d'installer une extension PHP sur Heroku. L'une des raisons courantes est que l'extension que vous essayez d'installer n'est pas compatible avec la version PHP que vous utilisez. Vous pouvez vérifier la version PHP en exécutant la commande ?PHP -V? dans votre terminal. Si l'extension n'est pas compatible avec votre version PHP, vous devez soit mettre à jour votre version PHP ou trouver une version de l'extension qui est compatible avec votre version PHP.
Une autre raison courante pour obtenir une erreur est que le L'extension n'est pas disponible dans le référentiel PECL. Heroku utilise le référentiel PECL pour installer des extensions PHP. Si l'extension n'est pas disponible dans le référentiel PECL, vous ne pouvez pas l'installer sur Heroku.
Puis-je utiliser un fichier php.ini personnalisé sur Heroku?
Oui, vous pouvez utiliser un PHP personnalisé .ini dossier sur Heroku. Pour ce faire, vous devez créer un fichier ?.user.ini? dans la racine de votre projet. Ce fichier contiendra vos paramètres PHP personnalisés. Par exemple, si vous souhaitez augmenter la taille maximale de téléchargement de fichiers, votre fichier '.User.ini' devrait ressembler à ceci:
upload_max_filesize = 10m
post_max_size = 10m
après la création Le fichier '.User.ini', vous devez le valider dans votre référentiel GIT et pousser vos modifications à Heroku. Heroku appliquera automatiquement les paramètres spécifiés dans votre fichier ?.User.ini?.
Comment puis-je mettre à jour ma version PHP sur Heroku?
La mise à jour de votre version PHP sur Heroku implique quelques étapes. Tout d'abord, vous devez spécifier la nouvelle version PHP dans votre fichier ?Composer.json?. Par exemple, si vous souhaitez mettre à jour sur PHP 7.4, votre fichier 'composer.json' devrait ressembler à ceci:
{
"require": {
"php": "^ 7.4"
}
}
Après la mise à jour du fichier 'Composer.json', vous devez exécuter la commande 'Composer Update' dans votre terminal. Cela mettra à jour le fichier ?Composer.lock?. Vous devez commettre des fichiers ?Composer.json? et ?Composer.lock? dans votre référentiel GIT. Enfin, vous pouvez pousser vos modifications à Heroku en utilisant la commande ?Git Push Heroku Master?. Heroku mettra automatiquement à jour votre version PHP.
Puis-je utiliser un buildPack personnalisé pour installer des extensions PHP sur Heroku?
Oui, vous pouvez utiliser un buildPack personnalisé pour installer des extensions PHP sur Heroku. Un buildPack est un script qu'Heroku exécute lorsque vous poussez vos modifications à la plate-forme. Il est responsable de la configuration de l'environnement de votre application et de l'installation de ses dépendances.
Pour utiliser un buildPack personnalisé, vous devez le spécifier dans votre fichier ?app.json? ou dans le tableau de bord Heroku. Par exemple, si vous souhaitez utiliser le BuildPack 'Heroku / Php', votre fichier 'app.json' devrait ressembler à ceci:
{
"buildpacks": [
{
"URL": "HEROKU / PHP"
}
]
}
Après avoir précisé le buildPack, vous pouvez pousser vos modifications à Heroku. Heroku exécutera automatiquement le buildPack et installera les extensions PHP spécifiées.
Comment puis-je résoudre les problèmes lors de l'installation d'extensions de PHP sur Heroku?
Dépannage des problèmes lors de l'installation d'extensions de PHP sur Heroku peut être difficile à difficile , mais il y a quelques stratégies que vous pouvez utiliser. Tout d'abord, vous pouvez vérifier les journaux Heroku pour tous les messages d'erreur. Vous pouvez accéder aux journaux en exécutant la commande ?Heroku Logs? dans votre terminal. Les journaux peuvent vous donner des indices sur ce qui cause le problème.
Deuxièmement, vous pouvez utiliser la commande ?Heroku Run? pour exécuter les commandes directement sur votre application Heroku. Par exemple, vous pouvez exécuter la commande ?php -m? pour répertorier toutes les extensions PHP installées. Cela peut vous aider à vérifier si une extension spécifique est installée ou non.
Enfin, vous pouvez utiliser la commande ?Heroku Config? pour vérifier la configuration de votre application Heroku. Cela peut vous aider à vérifier si vos paramètres PHP.ini personnalisés sont appliqués ou non. Extensions PHP qui ne sont pas disponibles dans le référentiel PECL sur Heroku. Heroku utilise le référentiel PECL pour installer des extensions PHP. Si l'extension n'est pas disponible dans le référentiel PECL, vous ne pouvez pas l'installer sur Heroku.
Cependant, vous pouvez utiliser un buildPack personnalisé pour installer des extensions PHP qui ne sont pas disponibles dans le référentiel PECL. Un buildPack personnalisé peut inclure des scripts pour compiler et installer des extensions PHP à partir de la source. Cela nécessite une connaissance avancée de la script Shell PHP et UNIX.
Comment puis-je vérifier si une extension PHP est installée sur Heroku?
Vous pouvez vérifier si une extension PHP est installée sur Heroku en exécutant le Commande 'php -m' sur votre application Heroku. Cette commande répertorie toutes les extensions PHP installées. Vous pouvez exécuter cette commande en utilisant la commande ?Heroku Run? dans votre terminal. Par exemple, vous pouvez exécuter la commande suivante pour répertorier toutes les extensions PHP installées:
HEROKU RUN PHP -M
Si l'extension est installée, elle doit appara?tre dans la liste des extensions PHP installées.
Puis-je installer plusieurs extensions de PHP sur Heroku?
Oui, vous pouvez installer plusieurs extensions de PHP sur Heroku. Pour ce faire, vous devez spécifier toutes les extensions que vous souhaitez installer dans votre fichier ?Composer.json?. Par exemple, si vous souhaitez installer les extensions 'GD' et 'MBSTRING', votre fichier 'composer.json' devrait ressembler à ceci:
{
"require": {
"ext -gd ":" * ",
" ext-mbstring ":" * "
}
}
après la mise à jour du Fichier ?Composer.json?, vous devez exécuter la commande ?Composer Update? dans votre terminal. Cela mettra à jour le fichier ?Composer.lock?. Vous devez commettre des fichiers ?Composer.json? et ?Composer.lock? dans votre référentiel GIT. Enfin, vous pouvez pousser vos modifications à Heroku en utilisant la commande ?Git Push Heroku Master?. Heroku installera automatiquement les extensions PHP spécifiées dans votre fichier 'composer.json'.
Puis-je utiliser le fichier 'php.ini' pour installer des extensions PHP sur Heroku?
Non, vous ne pouvez pas, vous ne pouvez pas Utilisez le fichier 'php.ini' pour installer des extensions PHP sur Heroku. Heroku ne prend pas en charge le fichier ?php.ini? pour l’installation d’extensions de PHP. Au lieu de cela, vous devez utiliser le fichier ?Composer.json? pour spécifier les extensions PHP que vous souhaitez installer. Heroku installera automatiquement les extensions PHP spécifiées dans votre fichier ?composer.json? lorsque vous appuyez sur vos modifications sur la plate-forme.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les problèmes et les solutions courants pour la portée de la variable PHP incluent: 1. La variable globale ne peut pas être accessible dans la fonction, et elle doit être transmise en utilisant le mot-clé ou le paramètre global; 2. La variable statique est déclarée avec statique, et elle n'est initialisée qu'une seule fois et la valeur est maintenue entre plusieurs appels; 3. Des variables hyperglobales telles que $ _get et $ _post peuvent être utilisées directement dans n'importe quelle portée, mais vous devez faire attention au filtrage s?r; 4. Les fonctions anonymes doivent introduire des variables de portée parents via le mot clé Utiliser, et lorsque vous modifiez les variables externes, vous devez passer une référence. La ma?trise de ces règles peut aider à éviter les erreurs et à améliorer la stabilité du code.

Pour gérer en toute sécurité les téléchargements de fichiers PHP, vous devez vérifier la source et taper, contr?ler le nom et le chemin du fichier, définir les restrictions du serveur et traiter les fichiers multimédias deux fois. 1. Vérifiez la source de téléchargement pour empêcher le CSRF via le jeton et détecter le type de mime réel via FINFO_FILE en utilisant le contr?le de liste blanche; 2. Renommez le fichier à une cha?ne aléatoire et déterminez l'extension pour la stocker dans un répertoire non Web en fonction du type de détection; 3. La configuration PHP limite la taille de téléchargement et le répertoire temporaire Nginx / Apache interdit l'accès au répertoire de téléchargement; 4. La bibliothèque GD résait les images pour effacer des données malveillantes potentielles.

Il existe trois méthodes courantes pour le code de commentaire PHP: 1. Utiliser // ou # pour bloquer une ligne de code, et il est recommandé d'utiliser //; 2. Utiliser /.../ pour envelopper des blocs de code avec plusieurs lignes, qui ne peuvent pas être imbriquées mais peuvent être croisées; 3. Compétences combinées Commentaires tels que l'utilisation / if () {} / pour contr?ler les blocs logiques, ou pour améliorer l'efficacité avec les touches de raccourci de l'éditeur, vous devez prêter attention aux symboles de fermeture et éviter les nidification lorsque vous les utilisez.

AgeneratorInphpisamemory-EfficientwaytoterateOrgedatasetsByyieldingValuesonEatatimeIntedofreturningThemallAtonce.1.GeneratorsUsEtheieldKeywordToproduceValuesondemand, ReducingMemoryUsage.2.TheyAreusefulForHandlingBigloops, ReadingLargeFiles, OR OR.

La clé pour rédiger des commentaires PHP est de clarifier l'objectif et les spécifications. Les commentaires devraient expliquer "pourquoi" plut?t que "ce qui a été fait", en évitant la redondance ou trop de simplicité. 1. Utilisez un format unifié, tel que DocBlock (/ * /) pour les descriptions de classe et de méthode afin d'améliorer la lisibilité et la compatibilité des outils; 2. Soulignez les raisons de la logique, telles que pourquoi les sauts JS doivent être sortis manuellement; 3. Ajoutez une description d'une vue d'ensemble avant le code complexe, décrivez le processus dans les étapes et aidez à comprendre l'idée globale; 4. Utilisez TODO et FIXME Rationalement pour marquer des éléments et des problèmes de taches pour faciliter le suivi et la collaboration ultérieurs. De bonnes annotations peuvent réduire les co?ts de communication et améliorer l'efficacité de la maintenance du code.

Toinstallphpquickly, usexAmpPonWindowsorHomebrewonMacos.1.onwindows, downloadAndInstallxAmppp, selectComponents, startapache et placefilesInhtdocs.2.

Toléarnphpeffective, startBySettingUpAlocalServerERironmentUsingToolsLILYXAMPPANDACODEDITERLIGHILLEVSCODE.1) INSTRUSITIONXAMPFORAPACHE, MYSQL, ANDPHP.2) USACODEDEDITORFORSYNTAXSUPPORT.3)

En PHP, vous pouvez utiliser des crochets ou des accolades bouclées pour obtenir des caractères d'index spécifiques à la cha?ne, mais les crochets sont recommandés; L'index commence à partir de 0 et l'accès à l'extérieur de la plage renvoie une valeur nulle et ne peut pas se voir attribuer une valeur; MB_substr est nécessaire pour gérer les caractères multi-octets. Par exemple: $ str = "Hello"; echo $ str [0]; sortie h; et les caractères chinois tels que MB_substr ($ str, 1,1) doivent obtenir le résultat correct; Dans les applications réelles, la longueur de la cha?ne doit être vérifiée avant le boucle, les cha?nes dynamiques doivent être vérifiées pour la validité et les projets multilingues recommandent d'utiliser des fonctions de sécurité multi-octets uniformément.
