In diesem Tutorial lernen wir, wie Sie benutzerdefinierte Erweiterungen auf Heroku installieren. Insbesondere installieren wir Phalcon.
Um Heroku zu verwenden, müssen Sie sich für ein Heroku -Konto anmelden. Heroku arbeitet im Allgemeinen mit einer Befehlszeilenschnittstelle. Um diese Benutzeroberfläche zu verwenden, müssen Sie das Heroku -Toolbelt -Paket für Ihr Betriebssystem installieren. Wenn Sie Linux verwenden, öffnen Sie Terminal und geben Sie den folgenden Befehl ein.
wget -qO- https://toolbelt.heroku.com/install.sh | sh
Nach dem Installieren des Symbollbeltes haben Sie von Ihrer Befehlsschale auf den Befehl heroku zugreifen. Authentifizieren Sie sich mit der E -Mail -Adresse und dem Passwort, die Sie beim Erstellen Ihres Heroku -Kontos verwendet haben:
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
Drücken Sie die Eingabetaste an der Eingabeaufforderung, um Ihre vorhandene SSH -Taste hochzuladen oder eine neue zu erstellen, die zum späteren Code verwendet wird.
Phalcon ist eine Erweiterung von Drittanbietern und somit nicht mit PHP gebündelt. Phalcon benötigt die folgenden Komponenten:
<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 und McRypt sind die wichtigsten - Mbstring wird von der Templating -Engine (Volt) sowie einigen Validatoren, der Escaper und dem Filter, verwendet, während McRypt in der Sicherheitskomponente verwendet wird (generieren sicherer Hashes usw.)
Um die obigen Elemente zu installieren, verwenden wir das PHP Buildpack -Tool. Lassen Sie uns erklären, was das bedeutet.
Nach der offiziellen Heroku -Dokumentation bieten Buildpacks die Magie und Flexibilität, die das Ausführen Ihrer Apps auf Heroku so einfach macht. Wenn Sie Ihren Code drücken, ist das Buildpack die Komponente, die die Einrichtung Ihrer Umgebung so abwickelt, dass Ihre Anwendung ausgeführt wird. Das Buildpack kann Abhängigkeiten installieren, Software anpassen, Vermögenswerte manipulieren und alles andere ausführen, das für die Ausführung Ihrer Anwendung erforderlich ist. Heroku hatte nicht immer Buildpacks, sie sind eine neue Komponente, die mit dem Zedernstapel geliefert wurde.
Sie können weitere Informationen zu diesen drei Schritten und mehr über die Buildpack -Dokumentation erhalten.
Um loszulegen, geben wir diesen Code auf GitHub auf. Klicken Sie im Repository auf die Schaltfläche "Fork". Um an dem Projekt arbeiten zu können, müssen Sie es an Ihre lokale Maschine klonen.
Führen Sie den folgenden Code aus:
wget -qO- https://toolbelt.heroku.com/install.sh | sh
Erstellen Sie die Datei phalcon.sh in Ihrem Verzeichnis $ home/buildpack-php/bin mit dem folgenden Inhalt:
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
Diese Datei installiert Phalcon, aber Heroku muss angewiesen werden, sie auszuführen. Dazu müssen Sie die Bin/Compile -Datei bearbeiten und die folgende Zeile irgendwo dort hinzufügen:
<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>
Zusätzlich müssen Sie der Datei "Conf/Php/Php.ini":
die Textweiterung = phalcon.so hinzufügen.git clone https://github.com/duythien/heroku-buildpack-php.git buildpack-php cd buildpack-php
Jetzt können wir unseren neuen Buildpack hochschieben:
#!/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
Erstellen Sie ein Verzeichnis für Ihre App und ändern Sie sich darauf:
[...] source $BP_DIR/bin/phalcon [...]
Zusätzlich müssen Sie Heroku einen Hinweis darauf geben, dass diese Anwendung eine PHP -Anwendung ist. Erstellen Sie dazu eine leere Datei namens Composer.json. Auf einem Unix -System können Sie diese Datei wie SO erstellen:
[....] extension=phalcon.so ; Local Variables: ; tab-width: 4 ; End:
Führen Sie dann Folgendes aus, um das Repo für unsere App zu stören:
git add -A git commit -m "edit php.ini and create phalcon file" git push origin master
Um eine neue Heroku -Anwendung zu erstellen, die Sie drücken können, verwenden Sie den Befehl creatis create:
mkdir phalcon-dev cd phalcon-dev
Dies erstellt die Anwendung auf Heroku bereit und wartet auf unseren Code und fügt unsere lokale Codebasis auch eine Git -Fernbedienung bei. Sie sind jetzt bereit, die Anwendung bereitzustellen, aber es gibt noch keinen Code. Befolgen Sie den nächsten Abschnitt, um Ihrer Anwendung einige Inhalte hinzuzufügen.
Ihre Composer.json -Datei sollte so aussehen:
touch composer<span>.json</span>
wird automatisch Erweiterungen wie McRypt, Mbstring usw. auf Heroku installiert. Wenn Sie MongoDB, Memcached usw. benötigen, ändern Sie die Datei weiter:
git init git add -A git commit -m" first commit"
Jetzt ermöglicht Heroku die entsprechenden PHP-Erweiterungen und stellt sie in den Ordner zur Unterstützung/Build/-Erweiterungen/NO-Debug-non-lts-20121212 ein. Erstellen Sie als nächstes eine test.php -Datei mit dem folgenden Inhalt:
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
setzen wir schließlich die Phalcon -Installation ein:
<span>{ </span> <span>"require": { </span> <span>"php": "5.5.12" </span> <span>} </span><span>}</span>
Der erste Befehl bedeutet, dass das Heroku -Standard -Buildpack überschreibt, indem ein benutzerdefiniertes Buildpack in der buildpack_url config var angegeben wird. Nach wenigen Minuten lauten die Ergebnisse wie folgt:
<span>{ </span> <span>"require": { </span> <span>"php": "5.5.12", </span> <span>"ext-memcached": "*", </span> <span>"ext-mongo": "*" </span> <span>} </span><span>}</span>
Dies hat unseren Code genommen, ihn nach Heroku gebracht, identifiziert und einen Build -Prozess dagegen ausgeführt, wodurch er für den Einsatz bereit ist. Jetzt ist unsere Bewerbung live im Internet! Um dies zu überprüfen, öffnen Sie es jetzt:
<span><span><?php phpinfo() ; ?></span></span>
Wenn alles gut läuft, sollten Sie den folgenden Bildschirm in Ihrem Browser sehen:
wget -qO- https://toolbelt.heroku.com/install.sh | sh
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
Hinterlassen Sie Ihr Feedback in den Kommentaren unten und wie immer teilen Sie diesen Artikel, wenn Ihnen es gefallen hat!
häufig gestellte Fragen (FAQs) zur Installation benutzerdefinierter PHP -Erweiterungen auf Heroku
"Erforderlich": {
"ext-gd": "*"
}
}
Nach dem Erstellen der Datei 'Composer.json' müssen Sie den Befehl 'Composer Update' in Ihrem Terminal ausführen. Dadurch wird in Ihrem Projektroot eine "Composer.lock" -Datei erstellt. Sie müssen sowohl "Composer.json" als auch "Composer.lock" -Dateien in Ihrem Git -Repository begehen. Schließlich können Sie Ihre Änderungen mit dem Befehl "Git Push Heroku Master" nach Heroku drücken. Heroku installiert automatisch die in Ihrer "Composer.json" -Datei angegebenen PHP -Erweiterungen.
upload_max_filesize = 10m
post_max_size = 10m
{
"Erforderlich": {
"PHP": "^7.4"
}
}
{
"Buildpacks": [
{
"URL": "Heroku/Php"
}
]
}
Nach Angabe des Buildpack Heroku. Heroku wird automatisch den Buildpack ausführen und die darin angegebenen PHP -Erweiterungen installieren. Aber es gibt einige Strategien, die Sie anwenden können. Zunächst können Sie die Heroku -Protokolle auf alle Fehlermeldungen überprüfen. Sie können auf die Protokolle zugreifen, indem Sie den Befehl "Heroku -Protokolle" in Ihrem Terminal ausführen. Die Protokolle können Ihnen Hinweise darauf geben, was das Problem verursacht. Sie können beispielsweise den Befehl "PHP -M" ausführen, um alle installierten PHP -Erweiterungen aufzulisten. Auf diese Weise können Sie überprüfen, ob eine bestimmte Erweiterung installiert ist oder nicht. Dies kann Ihnen helfen, zu überprüfen, ob Ihre benutzerdefinierten php.ini -Einstellungen angewendet werden oder nicht. PHP -Erweiterungen, die im Pecl -Repository auf Heroku nicht verfügbar sind. Heroku verwendet das PECL -Repository, um PHP -Erweiterungen zu installieren. Wenn die Erweiterung im PECL -Repository nicht verfügbar ist, können Sie sie nicht auf Heroku installieren. Ein benutzerdefiniertes Buildpack kann Skripte enthalten, um PHP -Erweiterungen aus der Quelle zu kompilieren und zu installieren. Dies erfordert erweiterte Kenntnisse über PHP- und UNIX -Shell -Skripte.
Wie kann ich überprüfen, ob eine PHP -Erweiterung auf Heroku installiert ist? Befehl 'PHP -M' in Ihrer Heroku -App. Dieser Befehl listet alle installierten PHP -Erweiterungen auf. Sie können diesen Befehl mit dem Befehl "Heroku Run" in Ihrem Terminal ausführen. Sie können beispielsweise den folgenden Befehl ausführen, um alle installierten PHP -Erweiterungen aufzulisten:
Heroku -Ausführen von PHP -M
Ja, Sie können mehrere PHP -Erweiterungen auf Heroku installieren. Dazu müssen Sie alle Erweiterungen angeben, die Sie in Ihrer Datei "Composer.json" installieren möchten. Wenn Sie beispielsweise die Erweiterungen "GD" und "Mbstring" installieren möchten, sollte Ihre Datei "Composer.json" so aussehen:
{
"Erforderlich": {
"ext -gd ":"*",
" ext-mbstring ":"*"
}
}
nach dem Aktualisieren der Aktualisierung der "Composer.json" -Datei, Sie müssen den Befehl "Composer Update" in Ihrem Terminal ausführen. Dadurch wird die Datei "Composer.lock" aktualisiert. Sie müssen sowohl "Composer.json" als auch "Composer.lock" -Dateien in Ihrem Git -Repository begehen. Schließlich können Sie Ihre Änderungen mit dem Befehl "Git Push Heroku Master" nach Heroku drücken. Heroku installiert automatisch die in Ihrer Datei 'Composer.json' angegebenen PHP -Erweiterungen. Verwenden Sie die Datei "php.ini", um PHP -Erweiterungen auf Heroku zu installieren. Heroku unterstützt die Datei "Php.ini" nicht zur Installation von PHP -Erweiterungen. Stattdessen müssen Sie die Datei "Composer.json" verwenden, um die von Ihnen installierenden PHP -Erweiterungen anzugeben. Heroku installiert automatisch die in Ihrer "Composer.json" -Datei angegebenen PHP -Erweiterungen, wenn Sie Ihre Änderungen auf die Plattform drücken.
Das obige ist der detaillierte Inhalt vonSo installieren Sie benutzerdefinierte PHP -Erweiterungen auf Heroku. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!