阿慕笔记

 

知道的越多,不知道的就越多。

弱小和无知不是生存的障碍,傲慢才是。

 

Questions TODO

//TODO ------------待解决问题-------------

mysql 函数 svn node.js 数据库循环添加数据,中间出问题回滚怎么控制; hadoop

python

docker打包

分布式服务器搭建

 

//已经解决问题----

http://www.cnblogs.com/zhengwk/p/5807346.html // 安装出现缺少vcruntime140dll的解决方法 http://www.cnblogs.com/zhengwk/p/5807293.html // Apache的下载安装 http://wenku.baidu.com/view/af4681bcfd0a79563c1e7289.html // 80端口被占用 http://www.jb51.net/article/95023.htm // mysql 5.7.16 安装 http://www.111cn.net/database/mysql/44142.htm //1045 MySQL数据库cmd运行时的错误 http://www.cnblogs.com/lookphp/p/b15af85f67dc7df59a970d905713262a.html //composer安装问题 http://www.viphper.com/?p=1159 //win7系统下安装yii2步奏

composer : http://blog.csdn.net/cs958903980/article/details/52023727

https://my.oschina.net/inuxor/blog/750717

https://pkg.phpcomposer.com/

数据库字段包含某一字符串:$map["concat(',',zhuanye,',')"] = array('like',"%,$zhuanye,%"); array_sum(array_column($datacount, 'num')); array_merge 合并数组并可以重置数组下标

PC操作【win】+ D 显示桌面 PC操作【win】+ L 锁屏

//小程序问题 1.tabBar 底部菜单栏不显示 :比较好的解决方法是让 tabBar 中包含 index 初始页面这一项。 2.判断是否登录:登录->request用户信息->storage到本地 未登录->获取微信用户授权->storage到本地

jsonp 跨域问题:https://www.jiangweishan.com/article/js8908093284092384.html

 

Swoole notes

netstat -apn|grep 9502

 

Docker notes

安装docker toolbox:

  1. windows 10 专业版可以直接下载docker,windows7和window其他版本需要下载docker toolbox来安装:docker toolbox 阿里云的镜像 :http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
  2. 需要卸载VM等占用虚拟化的软件
  3. 安装 docker toolbox,设置内存,centos镜像,语言,时间,root账号密码
  4. 安装完成显示,Looking for vboxmanage.exe...,此为安装后path路径没有生效,需要重启电脑即可;

切换为root权限 sudo -i 或者 sudo su root

window上安装的boot2docker的默认用户名和密码:docker/tcuser 192.168.99.100

 

docker network ls 查看docker网卡

docker network rm 网卡id 删除docker网卡

docker network inspect 网卡id 查看docker网卡的相关详细信息

docker inspect test001 |grep -w IPAddress

通过数据卷volume映射到VM虚拟主机,可以访问到容器内部的项目文件路径,用本地FTP链接到VM 虚拟机的数据卷路径 :/var/lib/docker/volumes/数据卷名称/_data,即可实现,本地更改文件自动同步到容器项目中。

 

 

 

 

 

 

Linux notes

CentOS环境
centos固定ip

image-20211022152515928

找到对应的配置文件:etc/sysconfig/network-scripts/

image-20211022152605578

image-20211022152727346

 

 

 

centos设置不休眠

 

 

Centos7 连接Serial串口记录

 

 

 

CentOS基本操作

 

普通用户和管理员权限切换

 

 

文件操作

 

vim 操作

vim是vi的升级版

命令 命令功能
/str 查找字符串
:wq 保存
:q! 不保存
:w 保存文件但不退出vi
:n 光标定位到n行
(n)h 或 (n)← 光标向左移动一位,添加n移动n位,n为数字
(n)j或 (n)↓ 或 (n) 光标向下移动一行,添加n移动n位,n为数字
(n)k 或 (n)↑ 光标向上移动一行,添加n移动n位,n为数字
(n)l 或 (n)→ 光标向右移动一位,添加n移动n位,n为数字
0 或 ^ 光标移动至当前行的行首
$ 光标移动至当前行的行尾
Ctrl + f 屏幕“向下”移动一页,相当于 [Page Down]按键
Ctrl + b 屏幕“向上”移动一页,相当于 [Page Up] 按键
Ctrl + d 屏幕“向下”移动半页
Ctrl + u 屏幕“向上”移动半页
shift+ g (G) 光标移动至文件末尾
gg 光标移动到文件开头

zip操作

 

安装nvm(node版本管理)

 

cmake升级

 

Git notes

Git基本操作流程:

 

关于 “RPC failed; curl 18 transfer closed with outstanding read data remaining”错误在使用git bash下载超大资源的时候可能会出现 ,这时候需要设置 git bash 加大缓存区 git config --global http.postBuffer 542428800

修改提交缓存大小为500M,或者更大的数字

git config --global http.postBuffer 524288000

git config --global http.postBuffer 1024288000

 

Mysql notes

mysql5.7报err 1055错误 sql_mode=only_full_group_by

 

 

centos8 卸载mysql:

centos7.2 安装mysql5.7:

PHP7.2 notes

 

https://blog.csdn.net/ltstud/article/details/78476333

当使用phpize的时候出现Can't find PHP headers in /usr/include/php The php-devel package is required for use o

 

Composer notes

 

 

 

 

Python notes

F1 打开 Python 帮助文档 Python文件窗口和Shell 均可用 Alt+/ 自动补全前面曾经出现过的单词,如果之前有多个单词具有相同前缀,可以连续按下该快捷键,在多个单词中间循环选择 Python 文件窗口和 Shell 窗口均可用 Ctrl+Z 撤销一步操作 Python 文件窗口和 Shell 窗口均可用 Ctrl+Shift+Z 恢复上—次的撤销操作 Python 文件窗口和 Shell 窗口均可用 Ctrl+S 保存文件 Python 文件窗口和 Shell 窗口均可用

Alt+P 浏览历史命令(上一条) 仅 Python Shell 窗口可用 Alt+N 浏览历史命令(下一条) 仅 Python Shell 窗口可用 Ctrl+F6 重新启动 Python Shell 仅 Python Shell 窗口可用

Alt+3 注释代码块 仅 Python 文件窗口可用 Alt+4 取消代码块注释 仅 Python 文件窗口可用 Alt+g 转到某一行 仅 Python 文件窗口可用 Ctrl+] 缩进代码块 仅 Python 文件窗口可用 Ctrl+[ 取消代码块缩进 仅 Python 文件窗口可用

============================================================= python文件读写模式 r,r+,w,w+,a,a+ 简介

模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 w 只能写 创建 w+  可读可写 创建 a   只能写 创建 否,追加写 a+ 可读可写 创建 否,追加写

f = open("poem.txt","a+")#打开文件以便写入 print('沧海月明珠有泪',file=f) print('蓝回日暖玉生烟',file=f) f.close()

============================================================= python中取余%

a=5 n=3 print(str(a)+"%"+str(n)+"的值为:", a % n)

r=a-n*(a//n) print(r)

============================================================= 位运算(32位):

原码:符号位为 0 代表正数,符号位为 1 代表负数; 反码:符号位保持不变,对原码按位取反; 补码:正数的补码和原码完全相同,负数的补码是其反码 +1;

与&:二进制码都是1,取1 或|:有1位1 异或^:相同位0,不同位1 ~取反:对补码取反 <<:对补码左移 (左边溢出的丢弃,右边以 0 来填充)

:对补码右移 (左边以符号位来填充,右侧溢出丢弃)

============================================================= Scrapy 安装 pip install scrapy 官网下载对应python 版本的Twisted (www.lfd.uci.edu/~gohlke/pythonlibs/ pip install Twisted-18.9.0-cp36-cp36m-win_amd64.whl

使用工具:scrapy、pip、 Xpath

============================================================= 爬虫 1.cmd cd 到project项目下执行新建项目 scrapy startproject NewSpider 2.爬取信息

https://www.zhipin.com/c101280100/h_101280100 3.提取节点内容 response.xpath ('//div[@class="job-primary"]/div/h3/a/div/text()').extract() 4.cd NewSpider目录下,创建蜘蛛 Spider:scrapy genspider job_position "zhipin.com" 5.启动蜘蛛 scrapy crawl job_position

=============================================================

response.xpath ('//div[@class="masonry-brick"]/img/@src').extract()

 

 

Redis notes

redis-server.exe //打开服务端窗口

redis-cli //打开一个客户端窗口

redis-cli.exe -h 127.0.0.1 -p 6379 //打开一个客户端窗口

set myKey abc get myKey

CONFIG GET * //获取所有配置项

 

 

 

 

 

VMware notes

软件安装

在windows环境中安装‘VMware Workstation Pro’并配置“CentOS”:

VMware 下载地址 :https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html VMware Workstation Pro 15 激活许可证,获取秘钥 :

 

无法联网问题

VM安装CentOS6.8正常使用了一段时间,突然无法联网问题的解决(https://blog.csdn.net/weixin_41659707/article/details/80466025)

此电脑——>右键管理——>设备管理器——>网络适配器

image-20210313134402328

image-20210313134509248

image-20210313134529437

FTP远程登录VM

使用ftp远程登录VM里的centos虚拟主机:

image-20210315141242281

 

使用ens33中的局域网ip登录FTP

image-20210315141349172

 

 

 

Vue notes

1.安装node.js(https://nodejs.org/en/) D:\nodejs 2.添加系统路径path环境变量 D:\nodejs 3.添加系统路径path环境变量 新建文件夹node_global node_cache npm config set prefix "D:\nodejs\node_global" npm config set cache "D:\nodejs\node_cache" 4.npm config set registry=http://registry.npm.taobao.org 配置镜像站 检查镜像是否可用 npm config get registry 5.安装vue :npm install vue -g 测试NPM安装vue-router:npm install vue-router -g 运行npm install vue-cli -g安装vue脚手架 6.重新打开CMD:vue-v cd到项目路径 初始化 vue init projectName 编译安装项目 npm install 运行项目 npm run 生成静态文件 npm run build

7.打开项目 :cd到项目路径

 

npm的本地仓库,输入命令npm list -global 显示所有配置信息 npm config list

 

Wokerman notes

 

Wokerman 使用步骤:

1.配置执行批处理文件所需的php环境变量; 2.开启服务器函数禁用的函数,proc_open ,proc_close 等,php.ini中disable_functions ; 3.开启php_socket扩展,php.ini中 extension=php_sockets.dll; 4.端口冲突禁用问题; 5.数据库插件; 6.心跳设置; 7.守护进程运行。

 

Linux centos下使用workerman: ( PHP>=5.3.3,并安装了pcntl、posix扩展 )

 

设置workerman开机自启动, 执行 start.php

 

 

 

 

Tars note (Centos7)

依赖环境
软件 软件要求
linux内核版本: 2.6.18及以上版本(操作系统依赖)
gcc版本: 4.8.2及以上版本、glibc-devel(c++语言框架依赖)
bison工具版本: 2.5及以上版本(c++语言框架依赖)
flex工具版本: 2.5及以上版本(c++语言框架依赖)
cmake版本: 3.2及以上版本(c++语言框架依赖) 【--------------单独cmake更新------linux note (cmake升级)------------------】
mysql版本: 4.1.17及以上版本(框架运行依赖) 【--------------------------------centos--mysql-5.7----------------------------------】
nvm版本: 0.35.1及以上版本(web管理系统依赖, 脚本安装过程中自动安装) 【--------v14.10.0---linux note (安装nvm)---nvm, pm2-----】
node版本: 12.13.0及以上版本(web管理系统依赖, 脚本安装过程中自动安装) 【--------v14.10.0---linux note (安装nvm)---nvm, pm2-----】

 

编译包依赖

 

yum安装Mysql

 

Tars C++开发环境

 

Tars框架安装
Tars服务打包

以 helloworld 为例:https://github.com/TarsCloud/TarsDocs/blob/master/hello-world/tarsphp.md#tars-registry

运维管理=>部署服务

目录结构,固定为 scripts、src 和 tars

完成代码开发后,在 src 目录下执行 composer run-script deploy 会自动进行代码打包

上传到 tars 平台,并进行发布

浏览器打开 http://{machine_ip}:9000/index/index 页面将显示 Hello Tars!

 

 

 

遇到的问题:

  1. window 下载的文件,上传到linux .sh 格式问题;(转换格式--linux note文件操作)

  2. composer 安装 出现 killed问题;(增加linux 缓存)

    free -m mkdir -p /var/swap cd /var/swap #Here, 1M * 2000 ~= 2GB of swap memory dd if=/dev/zero of=swapfile bs=1M count=2000 mkswap swapfile swapon swapfile echo “/var/swap/swapfile none swap sw 0 0” >> /etc/fstab #cat /proc/meminfo free -m

  3. 数据库问题(https://blog.csdn.net/qq_42262444/article/details/88524472

    数据库报错:显示系统的物理内存不足

    查看内存,适当增加swap(Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用)

    重启数据库 :systemctl restart mysqld

     

  4. 1

  5. 1

  6.  

  7.  

     

 

 

 

 

python搭建Web项目

环境:centos7.6 +Python2.7+Apache2.4 案例:https://www.cnblogs.com/navysummer/p/12871006.html

  1. 安装python虚拟环境

  2. 创建虚拟环境(需要安装virtualenv(可以让每一个python项目单独使用一个环境,而不会影响python系统环境,也不会影响其他项目的环境)),系统中的python模块在虚拟环境中不能直接使用

  3. 在虚拟环境里安装django()

  4. 创建django项目

  5. 安装apache

  6. 安装apache所需的mod_wsgi模块

  7. 查看apache2是否导入mod_wsgi模块

  8. 新建一个apache的虚拟主机

  9. 重启apache

  10. wsgi.py配置

    这个问题差点被搞死,我以为会自动把相关配置弄好,结果我错了,需要加一个路径 /var/www/html/django_project1/mysite/(项目路径)

  11. 配置settings.py ,设置允许访问的地址

  12. 配置urls.py

  13. 配置views.py

     

  14. 添加模板文件

  15. 图片显示空白,

     

  16. 模板内加载静态资源 static

     

  17. 语言编码

     

     

  18.  

 

 

 

 

注意事项:

  1. apache日志查看: /var/log/httpd/error_log

  2. mod_wsgi 模块 apache无法加载,可能是python版本不一致:

    下载mod_wsgi安装包:

    安装成功后配置apache加载wsgi模块,使用mod_wsgi-express install-module查询mod_wsgi.so的路径,输出如下:

    在Apache模块配置目录/etc/httpd/conf.modules.d/创建一个mod_wsgi.conf配置文件,加入上面的内容:

    重新启动apache检查是否配置成功:

    查看apache的错误日志:

     

 

 

python django 上传文件

一.html文件(文件名为upfile.html)

二、、在myApp/url.py中添加配置url

三、在myApp/views.py文件中定义视图

注:感谢大佬文章 https://blog.csdn.net/weixin_44387495/article/details/95589379

 

phpstorm

ctrl + w 选择内容。选择光标所在,数组、函数、类里的内容;

ctrl + alt + v 定义变量。选择某段字符,定义变量值为该字符

ctrl + D 复制选中的内容

ctrl + p 显示函数的参数

 

 

 

服务器执行.bat定时计划

服务器执行.bat定时计划,来完成定时任务的结果;

http://blog.csdn.net/qq1355541448/article/details/50451607

 

服务器任务计划

1.任务计划程序因服务器的系统不一样所在位置有差别,不是在控制面板里,就是是在管理工具里。W8任务计划在管理工具里。

2.原理就是通过服务器定时执行bat格式的文件来执行项目中的某段程序,以达到定时执行的目的。

3.“任务计划程序”–点击“任务计划程序库”在右则会看到操作项里有“创建基本任务”和“创建任务”如图:

img

4.任务名字:分红计划;下面运行权限选择框中的。

img

5.选择“触发器”选项,点击“新建”,开始任务就选择执行计划时;设置中选择每天,每隔一天发生一次;“重复任务间隔”这个选择后,设置1小时;持续时间选择无限;下面那个停止运行超过以下时间不要勾选;确定。

img

6.点击操作->新建->浏览文件,找到项目中admin/pre/renwu.bat文件,选择它,然后下面有个“起始于”复制刚刚浏览选择的那个/renwu.bat之前的路径;举例,比如说“程序或脚本”选择bat文件之后显示的是E:\phpstuday\WWW\renwu\admin\pre\renwu.bat,这个地方只需要复制E:\phpstuday\WWW\renwu\admin\pre就可以了。

img

7.确定,完成

 

笔记

tp3.2联合查询

时间戳改成date格式 {$v.time|date="Y-m-d",###}

js不能把变量直接传送到php中,必须通过请求,php可以直接传送变量到 js中,因为页面先加载php。var=({$a})

Php 单引号不解析,双引号可以解析变量。Js反斜杠\对代码换行。

TP3中redirect 重指向项目外地url时,直接使用redirect()。项目内用$this->redirect();

项目跳转时出现不该有的页面是因为没加exit;

Form 表单提交时要把table完全放入form中,要不然后来通过js得到的文本框值用$_post得不到;

 

Input value中的html标签,先解析标签在去除标签;

$title=strip_tags(htmlspecialchars_decode($title));

三元判断选择是否选中

$a=”input".($check_color=="red"?"checked='checked'":'')."/”;

邮件问题

 

文件夹及其子文件复制

 

删除文件

数据库导入.sql文件

JQ下的手机验证规则

 

两个指定的字符串截取

 

递归

 

 

织梦框架学习

一、织梦环境的配置
  1. Dede最新版本V5.7;
  2. Windons运行环境IIS/Apache + PHP4/PHP5 + MySQL4/5;
  3. 织梦安装gbk2312、utf8两种编码;
二、大体了解织梦框架
  1. 安装dede框架;

  2. 了解框架目录结构;

  3. 熟悉dede后台设置,操作,前台对应静态页面的生成;

  4. 织梦全局变量;

  5. 了解织梦自定义标签;

    • a.单标签{dede:field.字段} ,双表签{dede:}底层模板{/dede:};

    • b.全局标签;

    • c.列表标签;

    • d.内容页标签;

    • e.分页标签、信息标签、自定义标签等;

三、模板嵌套

1.后台自定义模板设置,模板页面选择,模块html生成,页面静态文件生成;后台设置更改默认模板风格。

2.首页、封面页的读取,动态轮播图的设定;

3.添加栏目、更新栏目、生成栏目html、更新网站;

4.后台栏目内容文章添加 生成html、更新网站,前台才能读取;

四、框架底层模板

1.查看框架思路:

入口->入口文件->公共文件->数据库操作类,模板解析类,视图绑定类;

模块config.php->include/common.inc.php公共环境配置、公共函数、公共类,定义的一些全局变量和方法,每个模板类文件所引用的不同核心类,查看核心类文件;

2.常用的数据库操作方法:

返回1个记录,$arr = $db->GetOne($sql);

执行一个非查询类型的SQL语句,$rs = $db->ExecuteNoneQuery($sql);返回true/false; ExecNoneQuery($sql='')

执行一个非查询类型的SQL语句,返回成功记录数$rs = $db->ExecuteNoneQuery2($sql);

查询语句 $db->SetQuery($dsql);

$db->Execute(); Query($id="me",$sql='')

$db->GetLastID();

GetFetchRow($id='me')

获取特定表的信息 GetTableFields($tbname,$id="me")

获取字段详细信息 GetFieldObject($id="me")

获得查询的总记录数 $db->GetTotalRow($rsid="me")

视图绑定 //dedetemplate.class.php

$a= new DedeTemplate();

$tpl= DEDEB."/templets/2.htm";

$a->LoadTemplate($tpl);

$a->display();

//arc.partview.class.php

require_once DEDEINC."/arc.partview.class.php";

$a = new PartView();

$a->SetTemplet(DEDEB.'/'.'templets/index.htm');

$a->Display();

//datalistcp.class.php

$tpl= new DataListCP();

$tpl->SetTemplate(DEDEB.'/templets/1.htm');

$tpl->Display();

//dedetag.class.php

require_once DEDEINC."/include/dedetag.class.php";

$ctp = new DedeTagParse();

$ctp->LoadTemplate(DEDEB."/templets/5.htm");

$ctp->display();

//arc.caicai.class.php

require_once DEDEINC."/arc.caicai.class.php";

$a = new Caicai();

$a->SetTemplate(DEDEB.'/templets/3.htm');

$a->Display();

//incliude,dedeinclude

3.邮件发送:

后台设定smtp服务开启->163邮箱授权码->自定义表单设计->设计字段->预览->提取源码->引入include/diy.php、mail.class.php类文件引用send_mail()方法->设置参数->接收邮件的qq邮箱也必须有smtp服务;

4.登陆:memberlogin.class.php

根据form表单的三个隐藏文本框属性值来判断状态,对应不同的php方法,传入不同的参数,经方法处理后登陆;

function Judgemember()判断会员是否到期

function IsLogin() 判断是否登陆

function CheckUserSpace()检查会员空间信息

Function UpdateUserTj()更新会员信息

function ResetUser()重置会员信息

function GetEncodePwd($pwd)登陆的密码

function CheckUser(&$loginuser, $loginpwd)检测会员合法性

5.查询

Form表单提交,判断对应不同属性的值,经php文件处理判断是否传入条件,查询数据库,输出相应的结果;

filter.helper.php 搜索字符串过滤

Infolink.lib.php 分类信息链接类

Enums.func.php 联动菜单类

五、补充

1.Loop 调用任意表数据:

{dede:loop table='dede_arctype' if='id=17' orderway='desc'}

[field:content function='cn_substr(html2text(@me),800)'/]

{/dede:loop}

2.Html2Text(@me) htm转换text Text2Html

3.自定义宏标记:{dede:mytag name='标记名称' typeid=’’ ismake=’’/}

4.会员登录跳转不同页面:

首页:if(empty($gourl) || eregi(“action|_do”,$gourl))

{

ShowMsg(“登录成功,正在转向网站首页…”,”/”,0,2000);

}

当前页:ShowMsg(“成功登录!”,”-1″,0,2000);

echo “ ”;

5.邮件发送、用户注册、邮箱验证、登录、验证码方法收集。

img

Thinkcmf模板使用

★.thinkcmf支持前端html页面中直接写php代码,这点很灵活的可以直接在view视图中直接读取数据,也可以直接调用相应页面的函数方法来读取数据;

http://www.thinkcmf.com/document/content/id/97.html

1.框架目录:mvc结构,控制器在应用模块控制器在application下,tp3.2的命名规范,控制器前后台文件写在一起,后台控制器有admin字样;view分离成前后台主题模板,分别在根目录下thems和admin下;

2.导航菜单控制,后台可以控制所有导航:

前台导航:先在后台添加前台菜单分类,然后在菜单管理里添加各分类下的东西;

在内容管理中添加前台页面;

后台导航:比较麻烦,需要在application\Admin\Menu\admin_menu.php添加对应应用 模块下的菜单;然后再后台设置相应的控制器路由;

页面设置:单页面在后台设置,可以{$post_title}、{$post_content}等参数直接获取后台 设置的单页面的数据;

3.系统常用函数的一些应用:

sp_get_current_user();获取当前登录的用户,包括users表里详细信息;

sp_update_current_user($user);更新session里当前登录用户的信息;

sp_get_menu();导航菜单生成;

img

4.公共的模板页面page list和article 其中相对应的数据写法各不相同,需要调用所在页面的函数方法来读取数据;contact 和about 静态页面

5.系统全局变量:

{$site_name} /站点名称

{$site_host} /站点域名

{$site_root} /安装目录

{$site_icp} /备案信息

{$site_admin_email} /管理员邮箱

{$site_tongji} /页面统计代码

{$site_seo_title} /SEO标题

{$site_seo_keywords} /SEO关键字

{$site_seo_description} /SEO描述

{$site_copyright} /版权信息

6.评论系统,评论溢出的控制:word-break:break-all来实现文本的换行

★.Thinkcmf 调试dubug的问题; 在\application\Common\Conf\debug.php更改

'SHOW_PAGE_TRACE' => true, 改为false,并且首页dubug保持为true;则页面调试模块隐藏