


So installieren Sie benutzerdefinierte PHP -Erweiterungen auf Heroku
In diesem Tutorial lernen wir, wie Sie benutzerdefinierte Erweiterungen auf Heroku installieren. Insbesondere installieren wir Phalcon.
Key Takeaways
- Benutzerdefinierte PHP -Erweiterungen wie Phalcon können mit dem PHP Buildpack -Tool auf Heroku installiert werden, das die Umgebung für den Ausführen von Anwendungen auf Heroku einstellt.
- Der Prozess beinhaltet das Erstellen einer benutzerdefinierten Phalcon.sh-Datei im Buildpack-Php/Bin-Verzeichnis, das Bearbeiten der Bin/Compile-Datei, um sie auszuführen Datei.
- Eine neue Anwendung muss auf Heroku mit einer leeren Composer.json -Datei erstellt werden, um anzuzeigen, dass es sich um eine PHP -Anwendung handelt. Heroku ermöglicht die entsprechenden PHP-Erweiterungen und stellt sie in den Ordner zur Unterstützung/Build/-Erweiterungen/No-Debug-non-lts-20121212 ein.
- Das Webroot muss in einer Procfile -Datei angegeben und auf der Phalcon -Website in den Repo -Ordner kloniert werden. Nachdem alle Commits in das zentrale Repository gedrückt wurden, wird ein laufender Phalconphp.com -Klon auf Heroku erstellt.
Anmelden und einrichten
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 eine neue Anwendung auf Heroku
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:
Konfigurieren Sie das Webstamm
kommt nun der knifflige Teil, der das Webroot angibt. Das Angeben des Web Root benötigt ein wenig mehr Arbeit und Hintergrundinformationen. Das Root der Phalcon-Website-Anwendung im Git-Baum ist/App/Phalcon-Website/Public. Für Heroku ist die Web-Root standardmäßig die Wurzel des Git-Tree. Dieses Verzeichnis ist intern auf /App zugeordnet. Um dies zu ändern, müssen wir ein sogenannter Procfile erstellen, das jedes Mal, wenn der Web-Node der Heroku-App startet, ein Sh-Script startet. Dieses Skript ändert dann die Serverkonfiguration und enthält Ihre eigene Konfiguration, in der das Web-Root auf/App/Phalcon-Websit/Public festgelegt wird. Erstellen Sie eine Procfile -Datei mit dem folgenden Inhalt (wenn Sie Apache verwenden):
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
Die Installation von Phalcon (oder einer anderen PHP -Erweiterung) auf Heroku ist offensichtlich weder einfach noch einfach, aber wenn Sie Buildpacks verwenden, wird es viel zugänglicher.
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
Wie kann ich benutzerdefinierte PHP -Erweiterungen auf Heroku installieren? Zunächst müssen Sie eine Datei mit dem Namen "Composer.json" in Ihrem Projektroot erstellen. Diese Datei enthält die PHP -Erweiterungen, die Sie installieren möchten. Wenn Sie beispielsweise die Erweiterung "GD" installieren möchten, sollte Ihre Datei "Composer.json" so aussehen:
{
"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.
Warum bekomme ich einen Fehler, wenn ich versuche, eine PHP -Erweiterung auf Heroku zu installieren? Ein häufiger Grund ist, dass die von Ihnen zu installierende Erweiterung nicht mit der von Ihnen verwendeten PHP -Version kompatibel ist. Sie können die PHP -Version überprüfen, indem Sie den Befehl "PHP -v" in Ihrem Terminal ausführen. Wenn die Erweiterung nicht mit Ihrer PHP -Version kompatibel ist, müssen Sie entweder Ihre PHP -Version aktualisieren oder eine Version der Erweiterung finden, die mit Ihrer PHP -Version kompatibel ist. Die Erweiterung ist im Pecl -Repository nicht verfügbar. 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. .ini Datei auf Heroku. Dazu müssen Sie eine ".user.ini" -Datei in Ihrem Projektroot erstellen. Diese Datei enthält Ihre benutzerdefinierten PHP -Einstellungen. Wenn Sie beispielsweise die maximale Datei -Upload -Größe erhöhen möchten, sollte Ihre Datei ".user.ini" so aussehen:
upload_max_filesize = 10m
post_max_size = 10m
Wie kann ich meine PHP -Version auf Heroku aktualisieren? Zunächst müssen Sie die neue PHP -Version in Ihrer Datei "Composer.json" angeben. Wenn Sie beispielsweise auf PHP 7.4 aktualisieren möchten, sollte Ihre Datei "Composer.json" so aussehen:
{
"Erforderlich": {
"PHP": "^7.4"
}
}
Nach dem Aktualisieren der Datei 'Composer.json' müssen Sie 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 wird Ihre PHP -Version automatisch aktualisieren.
Kann ich ein benutzerdefiniertes Buildpack verwenden, um PHP -Erweiterungen auf Heroku zu installieren? Ein Buildpack ist ein Drehbuch, das Heroku ausführt, wenn Sie Ihre Änderungen auf die Plattform drücken. Es ist dafür verantwortlich, die Umgebung Ihrer Anwendung einzurichten und ihre Abhängigkeiten zu installieren. Wenn Sie beispielsweise das "Heroku/Php" Buildpack verwenden möchten, sollte Ihre Datei "app.json" so aussehen:
{
"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
Wenn die Erweiterung installiert ist, sollte sie in der Liste der installierten PHP -Erweiterungen angezeigt werden.
Kann ich mehrere PHP -Erweiterungen auf Heroku installieren?
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Die Verwendung von Vorverarbeitungsanweisungen und PDO in PHP kann SQL -Injektionsangriffe effektiv verhindern. 1) Verwenden Sie PDO, um eine Verbindung zur Datenbank herzustellen und den Fehlermodus festzulegen. 2) Erstellen Sie Vorverarbeitungsanweisungen über die Vorbereitungsmethode und übergeben Sie Daten mit Platzhaltern und führen Sie Methoden aus. 3) Abfrageergebnisse verarbeiten und die Sicherheit und Leistung des Codes sicherstellen.

PHP verwendet MySQLI- und PDO-Erweiterungen, um in Datenbankvorgängen und serverseitiger Logikverarbeitung zu interagieren und die serverseitige Logik durch Funktionen wie Sitzungsverwaltung zu verarbeiten. 1) Verwenden Sie MySQLI oder PDO, um eine Verbindung zur Datenbank herzustellen und SQL -Abfragen auszuführen. 2) Behandeln Sie HTTP -Anforderungen und Benutzerstatus über Sitzungsverwaltung und andere Funktionen. 3) Verwenden Sie Transaktionen, um die Atomizität von Datenbankvorgängen sicherzustellen. 4) Verhindern Sie die SQL -Injektion, verwenden Sie Ausnahmebehandlung und Schließen von Verbindungen zum Debuggen. 5) Optimieren Sie die Leistung durch Indexierung und Cache, schreiben Sie hochlesbarer Code und führen Sie die Fehlerbehandlung durch.

PHP wird verwendet, um dynamische Websites zu erstellen. Zu den Kernfunktionen gehören: 1. Dynamische Inhalte generieren und Webseiten in Echtzeit generieren, indem Sie eine Verbindung mit der Datenbank herstellen; 2. Verarbeiten Sie Benutzerinteraktions- und Formulareinreichungen, überprüfen Sie Eingaben und reagieren Sie auf Operationen. 3. Verwalten Sie Sitzungen und Benutzerauthentifizierung, um eine personalisierte Erfahrung zu bieten. 4. Optimieren Sie die Leistung und befolgen Sie die Best Practices, um die Effizienz und Sicherheit der Website zu verbessern.

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.
