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

What should I do if laradock fails to install swoole?

藏色散人
Release: 2020-04-09 09:42:52
Original
3073 people have browsed it

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`
Copy after login

After rebuilding, start

docker-compose restart workspace
Copy after login

Enter the virtual machine and check whether the installation is successful

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

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;
         }
     }
Copy after login

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
Copy after login

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
Copy after login

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
Copy after login

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
Copy after login
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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template