composer require 拓展包时,出现内存溢出
Composer 安装包基于 php 来执行,所有当出现内存溢出时,只要调整 php 的内存限制即可。
想要突破 php 的内存限制,可以通过修改配置文件或在执行 composer 命令时动态修改。
建议在 composer require 时,临时动态调整 php 的内存限制,命令如下:
// 在 composer 命令前添加php -d memory_limit=-1 /usr/local/bin/composer require [your pakage]// 示例php -d memory_limit=-1 /usr/local/bin/composer require "overtrue/laravel-filesystem-qiniu" -vvv
宝塔使用 git + webhooks 实现服务器同步
我们在开发项目的时候,push到git服务器后,我们可能还需要同步更新到线上服务器。
但是这一步骤往往比较麻烦,算是重复工作的一部分了,这时候我们就可以利用 钩子 来实现,自动同步项目代码
【事先准备】1、git仓库,可以是 github ,gitee,也可以是自建的 gitea, gogs
2、安装好 宝塔 的服务器
3、安装好 git 的服务器,未安装的可以先安装 yum install git
已安装的,可以通过git --version查看版本
各个 git 托管仓库的 webhooks 大同小异,以下以 码云gitee 为例,进行流程讲述。
【流程】1、为当前服务器生成公钥登录到服务器,输入 ssh-keygen -t ras 命令,一路回车即可。
2、添加公钥到码云项目
3、进入服务器,web目录,首次克隆仓库cd /www/wwwroot# 方法一: 使用ssh git clone git@gitee.com:shayvmo/test-webhook.git# 方法二: 使用httpsgit clone https://gitee.com/shayvmo/test-w ...
宝塔部署 laravel 项目踩坑
宝塔部署 laravel 项目,访问出现路由失效 404
查看网站配置后,修改相应的伪静态配置文件即可。
也可以直接在设置那里选择 laravel 的重写规则。
location / { try_files $uri $uri/ /index.php?$query_string; #开启路由访问,laravel项目改为此条}
python 序列在 for 循环需要注意的点
复合语句是包含其它语句(语句组)的语句;它们会以某种方式影响或控制所包含其它语句的执行。 通常,复合语句会跨越多行,虽然在某些简单形式下整个复合语句也可能包含于一行之内。
if, while 和 for 语句用来实现传统的控制流程构造。
for 语句中执行 list 的 remove 操作时,会有一个很微妙的问题。如下:
【问题】#示例1,会打印出 1 2 a = [1,2,3,1,2,4,5]for i in a: a.remove(i) for j in a: if(i==j): print(j) #示例2,只会打印出 1a = [1,2,3,1,4,2,5]for i in a: a.remove(i) for j in a: if(i==j): print(j)
上述2个示例中,我们想要达到的预期效果是找出list a 中的重复元素。但是为什么示例1可以打印出2个重复元素,示例2只能打印出1个重复元素呢?
【分析】Python 中 for 语句用于序列或其他可迭代对象中的元素进行 ...
git-flow 在团队中的实践
文档规范在一个高效的团队里面必不可少。工作上,我们也从起初的 SVN 转到了 Git 工具上。
Git 作为出色的项目版本管理工具,究竟有什么优点,该如何使用?下面我们来一一说明。
【介绍】Git 是一个开源高效的分布式版本管理工具,相比 SVN 集中式工具,最大的特点是,Git 在每个本地都是一个完整的版本库,各自处理版本开发,开发完成后,再推送到远程的主库
不同的开发人员,再分别拉取各自的更新即可。
【常用分支】master: 主分支,也就是产品分支,这个分支保持和线上的代码完全一致。该分支最为稳定功能最为完整的随时可发布的代码
develop : 开发分支,包含所有下一个版本的开发代码,也是团队人员需要保持最新版本的分支,也是功能最新最全的分支
feature/* : 功能分支。基于 develop 分支,每个功能单独建立一个分支,例如:feature/user-add,完成时,合并到 develop 分支,合并完成后,删除或保留分支
bugfix/* : bug 修复分支,基于 develop 分支的修复不紧急的 bug 。对于一些完成的功能未上线且已经合并到了 develo ...
导入 vagrant-box 到 vagrant 里面
vagrant安装好 vagrant , 下载相应的 vagrant box
初次导入 box 到全局vagrant ,供创建 vagrant 新容器 时使用
【步骤】
1、下载安装 vagrant
https://www.virtualbox.org/
2、下载 vagrant box
参考: http://blog.shayvmo.top/2020/05/20/vagrant-box/
3、将 box 导入到 vagrant
vagrant box add 名称 box路径
vagrant box add bbc/centos65 /data/vm/commerce_b2b2c-lnmp-with-prism-0.0.2.box
4、创建新的 vagrant 容器
vagrant init bbc/centos65
启动 vagrant 容器
vagrant up
vagrant的box哪里下?找不到镜像?教你如何优雅地下载各种box资源
每当有小伙伴搭建 vagrant 环境的时候,总是苦于 box 镜像怎么下载。(其实我一开始也找不到)
各种度娘之后,终于找到了一种方式,可以优雅地下载需要的 box 镜像啦
很感谢开源中国的 cxgphper 提供的方式
话不多说进入主题
【步骤】1、进入 vagrantup 官网,点击 Find Boxes , 进入 box列表页
2、点击进入需要下载的box详情页
3、点击选择版本
4、 这时候网站地址栏会拼接上相应版本号,这时,不多说,开始拼接URLhttps://app.vagrantup.com/centos/boxes/7/versions/2004.01/providers/供应商名字.box
【示例下载链接】https://app.vagrantup.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box
【链接解析】https://app.vagrantup.com/box名称前半部分/boxes/box名称后半部分/versions/版本号/providers/供应商名字.box
基于 vue-element-admin 基础模板实现侧边栏菜单动态渲染
码云仓库地址: https://gitee.com/shayvmo/vue-element-template
该仓库已删除,可以查看新仓库:https://gitee.com/shayvmo/vue-elemnt-admin
基于 vue-admin-template 基础模板实现动态生成侧边栏菜单
【思路】获取用户信息的时候,把后端返回的路由保存在 store 里面,执行生成路由时,合并前端静态定义的路由以及后端获取回来的动态路由
【主要修改文件】src/permission.js src/store/modules/permission.js utils/_import.js utils/router.js
文件: src/permission.js
获取用户信息,存储路由
const { roles } = await store.dispatch('basic/getInfo')
合并路由,渲染路由
const accessRoutes = await store.dispatch('permission/generateRoute ...
postman 实用小技巧 - 登录设置token
日常在使用 postman 进行接口调试时,难免会先登录后,再附加 token 进行另外接口的调试。
每次请求接口后,会有相应的数据返回;在某些场景需要用到另一个接口的返回值,比如API带token进行请求地址。
在这种情况下,可以将最初请求接口返回的token数据,设置为环境变量或全局变量,便于下次直接调用,不用每次都请求一遍接口获取token
而且获取新token后也不用每次都手动输入。
【步骤】
1、把返回来的json字符串转换成json对象。
JsonData=JSON.parse(responseBody);
2、设置成变量名为token的环境变量
pm.environment.set("token", JsonData.session_key);
设置环境变量,全局变量可以自由按照项目需求进行设置。
一般情况下,有多个项目时,同一个项目的变量设置到同一个环境下,通用的变量设置到全局变量即可。
在调用变量的时候,用 方式进行变量读取即可。图中的请求地址,就是直接调用环境变量中的 url_base 。
goland 下载与安装
【原文链接】
Goland 2019下载和安装