Detaillierte Erläuterung des vollständigen Anwendungsbeispiels zur Entwicklung von Hyperf unter Docker

Detaillierte Erläuterung des vollständigen Anwendungsbeispiels zur Entwicklung von Hyperf unter Docker

Offizielle Hyperf-Website
Hyperf offizielle Dokumentation Installation

1. Docker-Nutzung

  • Docker-Suche listet Hyperf-Bilder auf
  • Docker Pull lädt das Image auf den lokalen
  • Führen Sie das Image aus, mounten Sie das Verzeichnis in den Ordner unter dem aktuellen Verzeichnis und führen Sie es auf die gleiche Weise aus wie /bin/sh
  • Geben Sie das lokal gemountete Verzeichnis hyperf-skeleton ein
$ Docker-Suche Hyperf 
$ docker pull hyperf/hyperf 
$ docker run -v $PWD/:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh hyperf/hyperf
$ cd Hyperf-Skelett

2. Nachdem der Image-Container ausgeführt wird, installieren Sie Composer im Container

Laden Sie zuerst Composer in den Docker-Container herunter

$ wget https://mirrors.aliyun.com/composer/composer.phar

3. Ausführungsberechtigungen ändern

Mit diesem Vorgang wird die Einschränkung behoben, dass Composer keine Root-Berechtigungen zur Ausführung zulässt.

Gleichzeitig können Sie beim Benutzerwechsel direkt

Die Autorisierung 777 wird in Produktionsumgebungen nicht empfohlen.

$ chmod -R 777 ./composer.phar

4. Verschieben Sie Composer in das Bin-Verzeichnis und benennen Sie es in Composer um

Die Autorisierung 777 wird in Produktionsumgebungen nicht empfohlen.

$ mv composer.phar /usr/local/bin/composer

5. Ändern Sie das Root-Passwort

Da wir das Root-Passwort nicht kennen, müssen wir es zweimal eingeben, um das Passwort zu ändern, und es wird nicht angezeigt. Bitte beachten Sie

$ passwd root

6. Sie können die Linux-Distributionsversion überprüfen (der Befehl wird anders sein)

Das offizielle Image ist Linux Alpine

$ Katze /etc/os-release

7. Erstellen Sie eine Gruppe mit einer bestimmten GID

Das offizielle Image ist Linux Alpine. Die Befehle unterscheiden sich von den Centos-Befehlen, die viele Freunde verwenden. Wenn Sie Ihr eigenes Image erstellt haben, folgen Sie einfach dem Befehl der Distributionsversion.

$ addgroup -g 10001 -S www

8. Erstellen Sie einen Benutzer mit einer bestimmten UID

Geben Sie die Shell so an, dass sie zur angegebenen Benutzergruppe gehört.

$ adduser www -u 20001 -D -S -s /bin/bash -G www

9. Erlauben Sie dem neu erstellten Benutzer, su zu verwenden - für den Root-Benutzer.

$ chmod 4755 /bin/busybox

10. Wechseln Sie zum WWW-Benutzer und führen Sie Composer aus

su www Benutzer wechseln
whoami Aktuellen Benutzer anzeigen

$ su www
$ wer ich bin

11. Stellen Sie das Composer-Image auf das Alibaba Cloud-Image ein, um den Download im Inland zu beschleunigen

Ob Alibaba Cloud-Bilder verwendet werden, hängt natürlich von den persönlichen Bedürfnissen ab (kein Werbeverdacht).

$ Komponist config -g repo.packagist Komponist https://mirrors.aliyun.com/composer

12. Installieren Sie das Hyperf-Skelett über Composer

Wählen Sie bei der Installation ganz nach Ihren persönlichen Bedürfnissen!

$ Komponist erstellt Projekt Hyperf/Hyperf-Skeleton

13. Überprüfen Sie die Konfiguration und andere Informationen

Im Allgemeinen sind die offiziellen Quellbilder von Hyperf konfiguriert. Das Folgende ist nur ein Befehl zum Anzeigen von Swoole

$ php --ri swoole
$ php -i | grep ini

14. Schreiben Sie die folgenden Informationen in php.ini

Achten Sie besonders auf das große O in „Off“.

Erweiterung="grpc.so"
Erweiterung="redis.so"
Erweiterung="swoole.so"
swoole.use_shortname = "Aus"

15. Erweiterungen mit Kompatibilitätsproblemen

  • Da Hyperf auf der Swoole-Coroutine-Implementierung basiert
  • Die von Swoole 4 bereitgestellte Coroutine-Funktion ist in PHP beispiellos, daher gibt es immer noch Kompatibilitätsprobleme mit vielen Erweiterungen.
  • Die folgenden Erweiterungen (einschließlich, aber nicht beschränkt auf) verursachen bestimmte Kompatibilitätsprobleme und können nicht verwendet werden oder mit ihnen koexistieren:
  • Abonnieren
  • xdebug
  • schwarzes Feuer
  • verfolgen
  • Abonnieren

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So debuggen Sie Hyperf elegant in PhpStorm
  • Anordnung und Ergänzung von PHP-Framework-Wissenspunkten
  • Beispielerklärung des Workerman-Frameworks in PHP
  • Eine kurze Diskussion über die Vor- und Nachteile der sieben häufig verwendeten PHP-Frameworks
  • Analyse der Beispiele für automatisches Laden und autonome Objekterstellungsvorgänge des PHP-Frameworks CI (Codeigniter)
  • Beispiel für die Verwendung von JWT im ThinkPHP5-Framework
  • Beispielanalyse der Ausnahmebehandlungsoperation des Thinkphp5-Frameworks
  • Beispiel für die Einführung des Markdown-Editors im Thinkphp5-Framework
  • Eine kurze Diskussion zur Reduzierung der Scanzeit des Hyperf-Frameworks

<<:  Detaillierte Erklärung zur Überwachung von MySQL-Anweisungen

>>:  Implementierung von Portalen und Fehlergrenzbehandlung in React

Artikel empfehlen

Die Vue-Konfigurationsdatei generiert automatisch Routing- und Menüinstanzcode

Inhaltsverzeichnis Vorne geschrieben router.json ...

Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

zabbix Zabbix ([`zæbiks]) ist eine Open-Source-Lö...

Einige Vorschläge zur Gewährleistung der MySQL-Datensicherheit

Daten sind das wichtigste Kapital eines Unternehm...

So installieren Sie Docker unter Windows Server 2016

Kürzlich hat Microsoft Windows Server 2016 veröff...

Implementierungsbeispiel für die Message Board-Funktion von Node.js+Express

Inhaltsverzeichnis Nachrichtenbrett Erforderliche...

HTML-Endtag-Problem und W3C-Standard

Gemäß den Grundsätzen des W3C muss jedes Start-Tag...

So verwenden Sie den MySQL-Autorisierungsbefehl „grant“

Die Beispiele in diesem Artikel laufen auf MySQL ...

So stellen Sie Redis schnell als Docker-Container bereit

Inhaltsverzeichnis Erste Schritte Datenspeicherun...

Detaillierte Erklärung zum dynamischen Festlegen des Browsertitels in Vue

Inhaltsverzeichnis Unsinn Text Der erste router/i...