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

推薦する

jQuery ツリービュー ツリー構造アプリケーション

この記事では、jQueryツリービューツリー構造のアプリケーションコードを例として紹介します。具体的...

ビューポートの基本原理と詳細な使用方法

1. ビューポートの概要モバイル ブラウザは通常、画面よりも幅の広い仮想ウィンドウにページをレンダリ...

MySQL 8.0.13 解凍版のインストールと設定方法のグラフィックチュートリアル

1. インストール1. MySQLをダウンロードするダウンロードアドレス: リンクアドレスブラウザで...

MySQL リンクを表示し、異常なリンクを削除する方法

序文:データベースの運用や保守の際には、リンクの総数がいくつあるか、アクティブなリンクがいくつあるか...

Linux ターミナルでドメイン IP アドレスを見つけるコマンド (5 つの方法)

このチュートリアルでは、Linux ターミナルでドメイン名またはコンピューター名の IP アドレスを...

MySQL で複数の主キーが定義されているエラーの解決方法

主キーを作成するには 2 つの方法があります。 テーブルテーブル名を作成( フィールド名タイプ、 フ...

燃える炎効果の英語フォント16種類をシェアする

私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...

Dockerのオンラインおよびオフラインインストールと一般的なコマンド操作

1. テスト環境名前バージョンセント7.6ドッカー18.09.06 2. オンラインインストールここ...

興味深いカウントダウン効果を実現するjs

js興味深いカウントダウンケース、参考までに、具体的な内容は次のとおりですコード: <!DO...

CentOS7 は rpm パッケージを使用して mysql 5.7.18 をインストールします

例示するこの記事は、2017 年 5 月 20 日に MySQL-5.7.18 を使用して作成されま...

mysql を解決: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードの使用: NO/YES)

1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...

JS で単一ファイルコンポーネントを実装する方法

目次概要単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...

Nginx http を https にアップグレードする手順を完了する

httpとhttpsの違いは一部のウェブサイトでは、http を開くと、安全ではないというメッセージ...

Vueはボタン切り替え画像を実装します

この記事では、ボタン切り替え画像を実現するためのVueの具体的なコードを例として紹介します。具体的な...

MySQLデータベースを操作するためのコマンドラインツールmycliの簡単な紹介

GitHub にはあらゆる種類の魔法のツールがあります。今日、私はデータベースを操作するためのコマン...