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

推薦する

React+TypeScriptプロジェクト構築事例解説

React プロジェクトの構築は非常に簡単ですが、Typescript と組み合わせると、実際にはそ...

Vueは時間カウントダウン機能を実装する

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。必要:...

HTML 名、ID、クラス (フォーマット/アプリケーション シナリオ/機能) などの違いの紹介。

ページには多くのコントロール (要素またはタグ) があります。これらのタグをより便利に操作するには、...

Pycharmとsshリモートアクセスサーバーdockerの詳細なチュートリアル

背景: 一部の実験はサーバー上で完了する必要があります。したがって、リモート サーバー上のコードをロ...

MySQL マスター スレーブ データが矛盾しています。プロンプト: Slave_SQL_Running: 解決策はありません

この記事では、MySQL マスターとスレーブ データ間の不一致の解決方法と、プロンプト「Slave_...

JavaScriptカスタムオブジェクトメソッドの概要

目次1. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...

Ubuntu インストール cuda10.1 ドライバ実装手順

1. cuda10.1をダウンロードします。 NVIDIA 公式ウェブサイト リンク: https:...

モバイル Web WAP には Bootstrap と jQuery Mobile のどちらを使用すべきか

問題を解決するBootstrap は、次の問題を解決する CSS フレームワークです。デバイス間での...

CocosCreator MVCアーキテクチャの詳細な説明

概要この記事では、ゲームクライアントでよく使用される MVC アーキテクチャについて紹介します。ゲー...

HTMLからReactを実装する方法を教えます

ReactとはReact は、効率的で高速なユーザー インターフェイスを構築するためのシンプルな J...

ページ切り替え効果を実現するJSコード

この記事の例では、ページ切り替え効果を実現するためのJSコードの具体的なコードを参考までに共有してい...

CSS3 ボタン境界アニメーションの実装

まず効果を見てみましょう: html <a href="#"> &l...

Dockerコンテナのログ処理の詳細な説明

Docker には多くのログ プラグインがあります。デフォルトでは json-file を使用します...

MySQL データベースのインストールと Navicat for MySQL の使用に関するチュートリアル

MySQL は、スウェーデンの会社 MySQL AB によって開発され、現在は Oracle が所有...

MySQL 外部キー (FOREIGN KEY) の使用例の詳細な説明

はじめに: すべてのデータを 1 つのテーブルに保存することのデメリット表の構成構造は複雑で不明瞭で...