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 laradockRebuild 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
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!