ホームページ  >  記事  >  PHPフレームワーク  >  laradock が swoole のインストールに失敗した場合はどうすればよいですか?

laradock が swoole のインストールに失敗した場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2020-04-09 09:42:523021ブラウズ

laradock が swoole のインストールに失敗した場合はどうすればよいですか?

laradock が swoole のインストールに失敗した場合はどうすればよいですか?

Laradock で swoole を使用する方法

まず、.env ファイルの下の WORKSPACE_INSTALL_SWOOLE=true

を変更する必要があります。 laradock

仮想マシンを再構築します

docker-compose build workspace`

再構築後、起動します

docker-compose restart workspace

仮想マシンに入り、インストールが成功したかどうかを確認します

docker-compose exec workspace bash
 
php -m | grep swoole,

swooleが出力されると、インストールが成功したことを証明します

次に、nginx 設定ファイルを変更する必要があります

     map $http_upgrade $connection_upgrade {
         default upgrade;
         ''      close;
     }
     upstream laravels {
         # Connect IP:Port
         server workspace:1215 weight=5 max_fails=3 fail_timeout=30s;
         keepalive 16;
     }
     server {
         listen 80;
     #    listen [::]:80 ipv6only=on;
         server_name yourdomain.com;
         root /var/www/swoole/public;
         index index.php index.html index.htm;
         error_log /var/www/swoole_error.log;
         location = /index.php {
             # Ensure that there is no such file named "not_exists"
             # in your "public" directory.
             try_files /not_exists @swoole;
         }
         location / {
              try_files $uri $uri/ @swoole;
         }
         location @swoole {
             set $suffix "";
             if ($uri = /index.php) {
                 set $suffix ?$query_string;
             }
             proxy_set_header Host $http_host;
             proxy_set_header Scheme $scheme;
             proxy_set_header SERVER_PORT $server_port;
             proxy_set_header REMOTE_ADDR $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection $connection_upgrade;
             # IF https
             # proxy_set_header HTTPS "on";
             proxy_pass http://laravels$suffix;
         }
         location ~ /\.ht {
             deny all;
         }
         location /.well-known/acme-challenge/ {
             root /var/www/letsencrypt/;
             log_not_found off;
         }
     }

この設定ファイルは公式ドキュメントを参照しています。ここに非常に重要なポイントがあります。アップストリームを変更するだけです。サーバーワークスペース:1215。 Nginx は laravel 環境とは異なるマシンで実行されるため、ここでアップストリームを変更する必要があります。変更しないと 502 が発生します。

次に、laravel プロジェクトに入り、laravel-swoole をインストールします。

composer require swooletw/laravel-swoole
php artisan vendor:publish --tag=laravel-swoole

次に、laravel の .env ファイルを変更して、laravel-swoole をガーディアンにします。プロセスを開始すると、 swoole エージェントのホストも指定されています。

SWOOLE_HTTP_HOST=workspace
SWOOLE_HTTP_DAEMONIZE=true
SWOOLE_HOT_RELOAD_ENABLE=true

ポートは変更していません。デフォルトは 1215 です。必要に応じて自分で変更できます。nginx を変更することを忘れないでください。

Start swoole

php artisan swoole:http start | stop | restart | resload

Web ページを開くときにホストを変更したため、カスタム ドメイン名を使用しました。開いた後にウェルカム ページが表示された場合は、

おめでとうございます、成功しました。また、swooleを起動した後に動作が遅くなった場合にはパラメータのチューニングが必要になりますが、詳細についてはswooleの公式ドキュメントを参照してください(ここでは割愛します)。

開発環境のホットアップデート

swoole_httpのmax_request = 1

san swoole:http start | stop | restart | resload
を調整

以上がlaradock が swoole のインストールに失敗した場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。