Maison >cadre php >Swoole >Que dois-je faire si laradock ne parvient pas à installer swoole ?

Que dois-je faire si laradock ne parvient pas à installer swoole ?

藏色散人
藏色散人original
2020-04-09 09:42:523076parcourir

Que dois-je faire si laradock ne parvient pas à installer swoole ?

Que dois-je faire si laradock ne parvient pas à installer swoole ?

Comment utiliser swoole dans Laradock

Nous devons d'abord modifier WORKSPACE_INSTALL_SWOOLE=true sous le fichier .env de laradock

Reconstruisez la machine virtuelle

docker-compose build workspace`

Après la reconstruction, démarrez

docker-compose restart workspace

Entrez dans la machine virtuelle et vérifiez si l'installation est réussie

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

Si swoole est imprimé, il prouve que l'installation est réussie

Ensuite, nous devons modifier le fichier de configuration 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;
         }
     }

Ce fichier de configuration fait référence au document officiel Il y a un point très clé ici. espace de travail du serveur : 1215. Parce que notre Nginx fonctionne sur une machine différente de celle de l'environnement laravel, vous devez modifier le upsteam ici, sinon 502 se produira.

Ensuite, nous entrons dans notre projet laravel et installons laravel-swoole,

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

Ensuite, nous pouvons modifier le fichier .env de laravel pour faire de laravel-swoole un tuteur. Le démarrage du processus spécifie également le hôte de l'agent swoole et du port

SWOOLE_HTTP_HOST=workspace
SWOOLE_HTTP_DAEMONIZE=true
SWOOLE_HOT_RELOAD_ENABLE=true

Je ne l'ai pas modifié. La valeur par défaut est 1215. Vous pouvez le modifier vous-même si nécessaire.

Démarrez swoole

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

J'ai changé d'hébergeur lors de l'ouverture de notre page Web, j'ai donc utilisé un nom de domaine personnalisé Après l'avoir ouvert, si vous voyez la page d'accueil

Félicitations, réussi. De plus, si vous constatez qu'après le démarrage de swoole, les performances deviennent plus lentes, vous devez alors effectuer certains réglages de paramètres. Pour plus de détails, vous pouvez vous référer au document officiel de swoole, qui ne sera pas abordé ici.

Mise à jour à chaud de l'environnement de développement

Ajustez max_request = 1 dans swoole_http

san swoole:http start | stop | restart | resload

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn