Home  >  Article  >  PHP Framework  >  What should I do if laradock fails to install swoole?

What should I do if laradock fails to install swoole?

藏色散人
藏色散人Original
2020-04-09 09:42:523017browse

What should I do if laradock fails to install swoole?

What should I do if laradock fails to install swoole?

How to use swoole in Laradock

First we need to modify WORKSPACE_INSTALL_SWOOLE=true

under the .env file of laradock

Rebuild the virtual machine

docker-compose build workspace`

After rebuilding, start

docker-compose restart workspace

Enter the virtual machine and check whether the installation is successful

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

If swoole is printed , it proves that the installation is successful

Next, we need to modify the nginx configuration file

     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;
         }
     }

This configuration file refers to the official document. There is a very key point here. Just modify upsteam, server workspace:1215. Because our Nginx runs on a different machine than the laravel environment, you must modify the upsteam here, otherwise 502 will occur.

Next, we enter our laravel project and install laravel-swoole,

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

Then next, we can modify laravel’s .env file to make laravel-swoole become a guardian When starting the process, the host of the swoole agent is also specified. I have not modified the

SWOOLE_HTTP_HOST=workspace
SWOOLE_HTTP_DAEMONIZE=true
SWOOLE_HOT_RELOAD_ENABLE=true

port. The default is 1215. You can modify it yourself if necessary. Remember to modify nginx.

Start swoole

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

I changed the host when opening our webpage, so I used a custom domain name. If you see the welcome page after opening it

Congratulations , succeeded. In addition, if you find that after starting swoole, the performance becomes slower, then you need to perform some parameter tuning. For details, you can refer to the official swoole document, which will not be discussed here.

Hot update of development environment

Adjust max_request = 1

san swoole:http start | stop | restart | resload
in swoole_http

The above is the detailed content of What should I do if laradock fails to install swoole?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn