Docker で hyperf を開発する完全な使用例の詳細な説明

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイト
Hyperf 公式ドキュメントのインストール

1. Dockerの使用

  • docker search は hyperf イメージをリストします
  • Docker pullはイメージをローカルにダウンロードします
  • イメージを実行して、ディレクトリを現在のディレクトリの下のフォルダにマウントし、/bin/shと同じように実行します。
  • ローカルにマウントされているhyperf-skeletonディレクトリに入る
$ docker 検索 hyperf 
$ docker pull hyperf/hyperf 
$ docker run -v $PWD/:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh hyperf/hyperf
$ cd ハイパースケルトン

2. イメージコンテナが起動したら、コンテナにComposerをインストールします。

まず、DockerコンテナにComposerをダウンロードします

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

3. 実行権限を変更する

この操作は、Composerがルート権限の実行を許可しないという制限を解決するためのものです。

同時に、ユーザーを切り替える際に直接操作することができます

777認証は本番環境では推奨されません

$ chmod -R 777 ./composer.phar

4. composerをbinディレクトリに移動し、名前をcomposerに変更します。

777認証は本番環境では推奨されません

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

5. ルートパスワードを変更する

同時に、ルートパスワードがわからないため、パスワードを変更するには2回入力する必要があり、表示されません。注意してください

$ パスワード ルート

6. Linuxディストリビューションのバージョンを確認できます(コマンドは異なります)

公式イメージはLinux alpineです

$ cat /etc/os-release

7. 指定したGIDでグループを作成する

公式イメージは Linux alpine です。コマンドは多くの友人が使用する Centos コマンドとは異なります。独自のイメージを作成した場合は、ディストリビューション バージョンのコマンドに従ってください。

$ グループを追加 -g 10001 -S www

8. 指定したUIDでユーザーを作成する

指定されたユーザー グループに属するようにシェルを指定します。

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

9. 新しく作成したユーザーがsu -を使用してrootユーザーになることを許可します。

$ chmod 4755 /bin/busybox

10. wwwユーザーに切り替えてcomposerを実行する

su www ユーザーを切り替える
whoami 現在のユーザーを表示

$ ス www
$ だれだ

11. ComposerイメージをAlibaba Cloudイメージに設定して国内ダウンロードを高速化する

もちろん、Alibaba Cloud の画像を使用するかどうかは個人のニーズによります (広告の疑いはありません)

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

12. Composer経由でhyperfスケルトンをインストールする

インストールするときは、個人的なニーズに応じて選択してください。

$ composer でプロジェクト hyperf/hyperf-skeleton を作成します

13. 設定やその他の情報を確認する

一般的に、hyperfの公式ソースイメージは構成されています。以下はswooleを表示するためのコマンドです。

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

14. php.iniに次の情報を記入します。

Off の大文字の O に特に注意してください。

拡張子="grpc.so"
拡張子="redis.so"
拡張子="swoole.so"
swoole.use_shortname = 'オフ'

15. 互換性の問題がある拡張機能

  • HyperfはSwooleコルーチン実装に基づいているため
  • Swoole 4 で導入されたコルーチン機能は PHP では前例のないものなので、多くの拡張機能との互換性の問題が残っています。
  • 以下の拡張機能 (これらに限定されません) は、特定の互換性の問題を引き起こすため、使用したり共存したりすることはできません。
  • xhprof
  • xデバッグ
  • ブラックファイア
  • トレース
  • uopz

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • PhpStorm で Hyperf をエレガントにデバッグする方法
  • PHPフレームワークの知識ポイントの整理と補足
  • PHP での Workerman フレームワークの例の説明
  • 一般的に使用されている7つのPHPフレームワークの長所と短所について簡単に説明します。
  • PHPフレームワークCI(codeigniter)の自動読み込みと自律オブジェクト作成操作例の分析
  • ThinkPHP5フレームワークでJWTを使用する例
  • Thinkphp5フレームワーク例外処理操作例の分析
  • Thinkphp5フレームワークにMarkdownエディタを導入する例
  • Hyperfフレームワークのスキャン時間を短縮することについての簡単な説明

<<:  MySQLステートメントを監視する方法の詳細な説明

>>:  React でのポータルとエラー境界処理の実装

推薦する

Win10 での MySQL 8.0.20 のインストールと設定のチュートリアル

Win10 システムでの MySQL 8.0.20 のインストールと設定の超詳細なチュートリアルMy...

Tomcat が設定ファイルを外部に配置するためのソリューション

質問通常の開発では、プロジェクトを Tomcat にデプロイする場合、プロジェクトを war パッケ...

myBatis で条件を削除する際のスプライシング問題を解決する

私は今日、mybatis を学び、データベースに対していくつかの簡単な追加、削除、変更、クエリを実行...

Reactのコンテキストとプロパティの説明

目次1. 文脈1. 使用シナリオ2. 使用手順3. 結論2. 小道具の詳細1. 子供の財産2. 小道...

Linux での JDK のインストール (OpenJDK のアンインストールを含む) の概要

1. openjdkを表示する rpm -qa|grep jdk 2. openjdk を削除します...

Mariadb リモート ログイン構成と問題解決

序文:インストール プロセスについては詳しく説明しません。問題に直接触れましょう。MySQL のリモ...

Webpackを使用して複数ページのプログラムを構築するための実装手順

webpack を使用してシングルページのプログラムを構築することは非常に一般的ですが、実際の開発で...

VueのID認証管理とテナント管理の詳細な説明

目次概要ボタンレベルの権限アイデンティティ認証管理R/U 権限権限の更新テナント管理テナント切り替え...

MySQLトリガートリガー例の詳細な説明

目次トリガーとは何かトリガーを作成する表は次のようになります。さらにいくつかの単語を挙げます。制限と...

Linux のタイムドログ削除を実装する簡単な方法

導入Linux は、ファイル、ログ、電子メール、バックアップなどを自動的に生成できるシステムです。ハ...

Linux 上の MariaDB は root ユーザーで起動します (推奨)

最近、セキュリティ製品をテストする必要があったため、mariadb の起動ユーザーを root に調...

MySQL セレクトキャッシュメカニズムの使用に関する詳細な説明

MySQL クエリ キャッシュはデフォルトでオンになっています。ある程度、クエリの効果は向上しますが...

scss で mixin が動作しない問題の解決方法 (ブラウザでコンパイルできない)

ミックスインメソッド: ブラウザはコンパイルできません: 以前のバージョンのsassでは上記の記述方...

MySQL の高可用性アーキテクチャの完全な説明: MHA アーキテクチャ

目次1. はじめに2. 構成3. 作業プロセス4. 建築5. 表示例MHA (Master HA) ...