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 でのポータルとエラー境界処理の実装

推薦する

mysqld_multi を使用して単一のマシンに複数のインスタンスをデプロイする方法に関する MySQL チュートリアル

目次1. MySQLのコンパイルとインストール: 2. 最初のマルチインスタンス3307を準備する3...

MySQL はデータベースを動的に更新します スクリプト例の説明

具体的なupgradeスクリプトは次のとおりです。インデックスを動的に削除する アップグレードが存在...

1つのSQL文でMySQLの重複排除が完了し、1つが保持されます。

数日前、ある要件に取り組んでいたとき、MySQL で重複レコードをクリーンアップする必要がありました...

Vue でのルーティングガードの具体的な使用法

目次1. グローバルガード1.1 グローバルフロントガード1.2 グローバルポストルートガード1.3...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...

ファイルのアップロードの進行状況を示す React の例

目次React アップロードファイル表示の進行状況デモフロントエンドにReactアプリケーションを素...

MySQL でタイムスタンプを日付に変換する例

序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...

Vueでブラウザ共有機能を呼び出す方法

序文Vue(発音は /vjuː/、view に似ています)は、ユーザーインターフェイスを構築するため...

クラウドサーバーを購入し、Alibaba Cloud に Pagoda Panel をインストールする手順

アリババクラウドがサーバーを購入クラウドサーバーを購入し、サーバーバージョンとしてcentos 7....

つまり、フィルターコレクション

IE は開発の初期段階では頭を悩ませましたが、他のブラウザとは異なります。他のブラウザがサポートして...

この記事では、MySQLのマスタースレーブ同期の原理を説明します。

目次MySQL マスタースレーブ同期原理の簡単な分析1. マスタースレーブとは何ですか? 2. 主従...

DockerでRedisをデプロイして起動する方法

DockerでRedisをデプロイするまずLinuxにDockerをインストールし、次にDocker...

MySQLがサブクエリと結合の使用を推奨しない理由

ページ分割されたクエリを実行するには: 1. MySQL の場合、サブクエリと結合の使用は推奨されま...

トラフィックの多いウェブサイト向けのソリューション

まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...

初心者のためのMySQL外部キーの設定方法

目次外部キーの役割mysql 外部キー設定方法要約する外部キーの役割データの一貫性、整合性を維持し、...