ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
首先前置条件,是按照上一篇文档安装好了dnmp+swoole+laravel6.0环境 [https://www.jianshu.com/p/562a2ef0b23d](https://www.jianshu.com/p/562a2ef0b23d) ***参考文献*** 1.dnmp环境 [https://github.com/yeszao/dnmp](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fyeszao%2Fdnmp) 2.laravel6.0文档 [https://learnku.com/docs/laravel/6.x](https://links.jianshu.com/go?to=https%3A%2F%2Flearnku.com%2Fdocs%2Flaravel%2F6.x) 3.laravels 文档 [https://github.com/hhxsv5/laravel-s/blob/master/README-CN.md](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fhhxsv5%2Flaravel-s%2Fblob%2Fmaster%2FREADME-CN.md) 在这里非常感谢laravels交流群里面帮助我一步步解决问题的各位大佬 \*\*\*@遇珮 @小陈 @so what @涸泽渔人 @Mr. Xie \*\*\* 没有他们的帮助我已经放弃了哈哈 # 1.安装laravels 框架 在上一篇文章中已经部署好了环境和laravel6项目 接下来部署laravels,一定要多看[https://github.com/hhxsv5/laravel-s/blob/master/README-CN.md](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fhhxsv5%2Flaravel-s%2Fblob%2Fmaster%2FREADME-CN.md) 的官方文档 cmd 中进入php容器 ~~~bash docker exec -it php /bin/sh ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-adf82d5d953b3718.png?imageMogr2/auto-orient/strip|imageView2/2/w/431/format/webp) image.png 进入laravel项目 ~~~bash cd blog/ ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-252553f32f1eaafa.png?imageMogr2/auto-orient/strip|imageView2/2/w/822/format/webp) image.png 1.下载项目 ~~~jsx composer require "hhxsv5/laravel-s:~3.7.19" -vvv ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-bd12b7f89a444348.png?imageMogr2/auto-orient/strip|imageView2/2/w/686/format/webp) image.png 2.注册Service Provider(以下两步二选一)。 ~~~kotlin Laravel: 修改文件config/app.php,Laravel 5.5+支持包自动发现,我们是laravel6,跳过这步 'providers' => [ //... Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class, ], ~~~ 等下载运行好后根据laravels的官方文档运行以下代码,发布laravels的文件 ~~~bash php artisan laravels publish # 配置文件:config/laravels.php # 二进制文件:bin/laravels bin/fswatch bin/inotify ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-080fd0eb35222a2c.png?imageMogr2/auto-orient/strip|imageView2/2/w/764/format/webp) image.png 接下来启动laravels ~~~undefined php bin/laravels start -d ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-93412f7786980b8b.png?imageMogr2/auto-orient/strip|imageView2/2/w/785/format/webp) image.png 注意我的截图 laravels 监控地址是 http://127.0.0.1:5200,这个代表只被这台容器(容器就是单独的微型主机)内的程序可以连接,容器外的win10或者其他容器nginx是无法链接的。这个之后需要修改。先停止laravels, php容器内进入laravel项目根目录 ~~~bash php bin/laravels stop #停止laraves ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-2d68ccc5d3e7dd80.png?imageMogr2/auto-orient/strip|imageView2/2/w/750/format/webp) image.png 项目配置文件目录中找到laravels的配置文件 blog/config/laravels.php ~~~dart 找到 'listen_ip' => env('LARAVELS_LISTEN_IP', '127.0.0.1'), 修改为 'listen_ip' => env('LARAVELS_LISTEN_IP', '0.0.0.0'), ~~~ 接着PHP容器内,在laravel项目中清除缓存,然后启动laravels ~~~bash php artisan cache:clear #清除laravels缓存 如果这个清除后不行,可以用php artisan optimize:clear。 php bin/laravels start -d #启动laravels后台进程 ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-d59a5820b72e5dd8.png?imageMogr2/auto-orient/strip|imageView2/2/w/919/format/webp) image.png 可以看到,此时配置已经修改好了,其他主机或者容器都可以通过容器ip访问到laraves进程 # 2.启动php容器的5200端口 接下来开启php容器内的5200端口。 win10中 进入dnmp目录 修改配置文件docker\\dnmp\\docker-compose.yml 给php配置中找到container\_name: php这一行,在这行代买后增加一行增加ports:-"5200:5200"配置 ~~~bash ports: - "5200:5200" ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-0f9d6e6c20a91bb5.png?imageMogr2/auto-orient/strip|imageView2/2/w/803/format/webp) image.png 接着然后重新build PHP镜像。cmd 进入dnmp目录重建php后重新启动dnmp环境,查看容器的情况 ~~~bash docker-compose build php #重建php docker-compose up -d #重启dnmp环境 docker ps #查看容器 ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-7d0019078b0c6c38.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp) image.png 以上php容器方面就配置好了 # 3.nginx代理laraves配置 win10系统中找到我们的站点配置文件 dnmp\\services\\nginx\\conf.d\\blog.conf 记事本打开,将配置改成以下,x相关的域名,还有文件路径根据自己的项目修改 ~~~php 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 ~~~undefined docker-compose restart nginx ~~~ ![](//upload-images.jianshu.io/upload_images/18722725-ae1082a4633c7b84.png?imageMogr2/auto-orient/strip|imageView2/2/w/434/format/webp) image.png 这个时候网站继续访问[http://lblog.com/](https://links.jianshu.com/go?to=http%3A%2F%2Flblog.com%2F) ![](//upload-images.jianshu.io/upload_images/18722725-025d7a92da0731d9.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp) image.png 这个时候已经是laravels 在处理你的项目了,之后你就可以用laraves的多进程代码了 ***结束语*** 可以转载,但需要说明出处。 我花了两天摸出来的经验,两个小时的码字,写教程不容易。 部署过程中遇到问题欢迎留言,我不定时登录回复 作者:ITIAN\_S 链接:https://www.jianshu.com/p/05489e72ab4e 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。