win10 快速搭建 lnmp+swoole 环境 ,部署laravel6 与 swoole框架laravel-s项目2

首先前置条件,是按照上一篇文档安装好了dnmp+swoole+laravel6.0环境
https://www.jianshu.com/p/562a2ef0b23d

参考文献
1.dnmp环境 https://github.com/yeszao/dnmp
2.laravel6.0文档 https://learnku.com/docs/laravel/6.x
3.laravels 文档 https://github.com/hhxsv5/laravel-s/blob/master/README-CN.md

在这里非常感谢laravels交流群里面帮助我一步步解决问题的各位大佬
***@遇珮 @小陈 @so what @涸泽渔人 @Mr. Xie ***
没有他们的帮助我已经放弃了哈哈

1.安装laravels 框架

在上一篇文章中已经部署好了环境和laravel6项目
接下来部署laravels,一定要多看https://github.com/hhxsv5/laravel-s/blob/master/README-CN.md
的官方文档
cmd 中进入php容器

docker exec -it php /bin/sh
image.png

进入laravel项目

cd blog/
image.png

1.下载项目

 composer require "hhxsv5/laravel-s:~3.7.19" -vvv
image.png

2.注册Service Provider(以下两步二选一)。

Laravel: 修改文件config/app.php,Laravel 5.5+支持包自动发现,我们是laravel6,跳过这步

'providers' => [
    //...
    Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class,
],

等下载运行好后根据laravels的官方文档运行以下代码,发布laravels的文件

php artisan laravels publish
# 配置文件:config/laravels.php
# 二进制文件:bin/laravels bin/fswatch bin/inotify
image.png

接下来启动laravels

php bin/laravels start -d
image.png

注意我的截图 laravels 监控地址是 http://127.0.0.1:5200,这个代表只被这台容器(容器就是单独的微型主机)内的程序可以连接,容器外的win10或者其他容器nginx是无法链接的。这个之后需要修改。先停止laravels,
php容器内进入laravel项目根目录

php bin/laravels stop #停止laraves
image.png

项目配置文件目录中找到laravels的配置文件 blog/config/laravels.php

找到
'listen_ip' => env('LARAVELS_LISTEN_IP', '127.0.0.1'),
修改为
'listen_ip' => env('LARAVELS_LISTEN_IP', '0.0.0.0'),

接着PHP容器内,在laravel项目中清除缓存,然后启动laravels

 php artisan cache:clear #清除laravels缓存 如果这个清除后不行,可以用php artisan optimize:clear。

php bin/laravels start -d #启动laravels后台进程
image.png

可以看到,此时配置已经修改好了,其他主机或者容器都可以通过容器ip访问到laraves进程

2.启动php容器的5200端口

接下来开启php容器内的5200端口。
win10中 进入dnmp目录 修改配置文件docker\dnmp\docker-compose.yml
给php配置中找到container_name: php这一行,在这行代买后增加一行增加ports:-"5200:5200"配置

    ports:
      - "5200:5200"
image.png

接着然后重新build PHP镜像。cmd 进入dnmp目录重建php后重新启动dnmp环境,查看容器的情况

docker-compose build php #重建php
docker-compose up -d #重启dnmp环境
docker ps #查看容器
image.png

以上php容器方面就配置好了

3.nginx代理laraves配置

win10系统中找到我们的站点配置文件
dnmp\services\nginx\conf.d\blog.conf
记事本打开,将配置改成以下,x相关的域名,还有文件路径根据自己的项目修改

gzip on;
gzip_min_length 1024;
gzip_comp_level 2;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml;
gzip_vary on;
gzip_disable "msie6";
upstream swoole {
    # 通过 IP:Port 连接
    server 192.168.3.58:5200 weight=5 max_fails=3 fail_timeout=30s;
    # 通过 UnixSocket Stream 连接,小诀窍:将socket文件放在/dev/shm目录下,可获得更好的性能
    #server unix:/yourpath/laravel-s-test/storage/laravels.sock weight=5 max_fails=3 fail_timeout=30s;
    #server 192.168.1.1:5200 weight=3 max_fails=3 fail_timeout=30s;
    #server 192.168.1.2:5200 backup;
    keepalive 16;
}

server {
    listen       80;
    server_name  lblog.com;
    root   /www/blog/public;
    
    autoindex off;
    index  index.php index.html index.htm;

    access_log /dev/null;
    error_log  /var/log/nginx/nginx.lar.error.log  warn;
    error_page   500 502 503 504  /50x.html;

    # Nginx处理静态资源(建议开启gzip),LaravelS处理动态资源。
    location / {
        try_files $uri @laravels;
    }
    location @laravels {
        # proxy_connect_timeout 60s;
        # proxy_send_timeout 60s;
        # proxy_read_timeout 120s;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        # “swoole”是指upstream
        proxy_pass http://swoole;
    }
}

修改好后 cmd 进入dnmp目录下重启nginx

docker-compose restart nginx
image.png

这个时候网站继续访问http://lblog.com/

image.png

这个时候已经是laravels 在处理你的项目了,之后你就可以用laraves的多进程代码了

结束语
可以转载,但需要说明出处。
我花了两天摸出来的经验,两个小时的码字,写教程不容易。
部署过程中遇到问题欢迎留言,我不定时登录回复

你可能感兴趣的:(win10 快速搭建 lnmp+swoole 环境 ,部署laravel6 与 swoole框架laravel-s项目2)