页面返回上一级刷新与不刷新
js代码:
返回并刷新
<script>alert("恭喜您,操作成功!"); window.location.href=document.referrer; </script>
返回不刷新
<script>alert("恭喜您,操作成功!"); window.history.back(-1); </script>
js代码:
返回并刷新
<script>alert("恭喜您,操作成功!"); window.location.href=document.referrer; </script>
返回不刷新
<script>alert("恭喜您,操作成功!"); window.history.back(-1); </script>
在php的日志里我们看到了如下的告警日志:
mysql_connect(): Too many connections
查看默认参数:
mysql> show variables;
实时修改:
mysql> set global wait_timeout=10;
Query OK, 0 rows affected (0.01 sec)
mysql> set GLOBAL max_connections=1024;
Query OK, 0 rows affected (0.00 sec)
注意 interactive_timeout 和 wait_timeout,根据不同场景,修改不同的参数。
还可以修改 my.cnf , 然后 重启 mysqld 服务。
还需要关注查询慢的本质原因:
1)DB是innodb 还是myisam
2) 高频查询的表的index创建是否合理
3)业务的mysql 语句写的是否合理
如果以上还搞不定,就需要考虑 分库分表 , 加proxy 做集群来分流了。
openshift是免费的云平台,适合搞个公司网站或者个人blog。最近想把博客从openshift上迁移出去,wordpress本身有插件可以导出文章内容。但是对应的附件和图片利用导入工具,会有导入不完整的问题,简单的办法就是用ssh访问,将整个 uploads文件下载下来。要支持ssh,openshift有一套安全机制。通过 rhc 上传key,实现无密码登录。
具体参考:
https://developers.openshift.com/en/getting-started-windows.html#client-tools
如果不使用git,可以跳过 git的步骤。
ruby是从 www.rubygems.org/gems/rhc 下载的,需要自己搞定 vpn的问题,否则提示ssl失败
可能出现的问题:
no such file dl/import
http://stackoverflow.com/questions/28896733/rhc-setup-gives-error-no-such-file-dl-import
中间会提示输入openshift的账号和密码,成功后,会在本地.ssh 目录生成公私钥。并提示上传服务器。
这里要关注 .ssh的路径,后面客户端登录时要用到。
登录你的openshift账号,点击application ,进去就能看到详细的信息:
根据右侧的账号和地址 ,用ssh就可以登录了
登录时选择key:
这样就直接登录进去了,可以进行相关资料的备份了
OnePress Image Elevator,免费版基本够用
新拿到vps,基本是裸机环境,如果要搞wordpress或者php后台,就需要php环境。
本来想手动安装,结果发现lnmp的一键脚本有更新。作者已经更新了1.2版本,基本都可以选择最新的版本了。http://lnmp.org/install.html
安装成功!
如果你担心以上脚本的安全性,也可以自己亲手安装官方的版本
yum install -y mysql-server mysql mysql-deve
开机启动
chkconfig mysqld on
设置密码
mysqladmin -uroot password 'newpassword'
设置 yum源
vi /etc/yum.repos.d/nginx.repo
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=
安装
yum install nginx
如果需要添加www 用户和组
groupadd -f www useradd -g www www
安装apache 主要是因为wordpress的静态url路由需要相应的组件。
yum install httpd
chkconfig httpd on
1. 进程退到后体后,只有3-10的时间,如果没有进一步处理,处于功耗考虑,socket就会被系统关闭。 2. ios8后,允许后台,ios8之前的版本,只能通过设置后台模式 Required background modes来实现,但如果本身没有voip功能,苹果审查会遭拒。 ①打开info.plist,添加下面的键值对: Required background modes = App provides Voice over IP services ②配置XMPPStream的enableBackgroundingOnSocket属性为YES: _xmppStream.enableBackgroundingOnSocket = YES; 3. 参考 http://my.oschina.net/bankofchina/blog/281233 voip的方法,理论上定位消息也可以实现 4. 网上大段都是voip的例子,但按照苹果的审查规范,用voip实现后台keepalive 而没有实现voip是会被拒的。 综上所述,ios8以后,直接支持后台。ios8以前的,理论上gps位置信息也是可以在后台触发,从而通过策略实现长连接的,目前没有看到验证的例子,可以在这个方向下尝试下,毕竟所有的app都是需要位置服务器的,不属于伪造服务
参考:http://stackoverflow.com/questions/20423037/warning-mysql-fetch-assoc-expects-parameter-1-to-be-resource-boolean-given-i
本质就是没有对入参做异常判断。
1. gcc
yum -y install gcc automake autoconf libtool make
安装g++:
yum install gcc gcc-c++
2. protobuf
protobuf-2.4.1.tar.gz
3. google 库文件,将google的库文件路径添加到gcc 编译路径
1).加到gcc的环境变量 C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH
2).放到系统默认目录
/usr/include
/usr/local/include
我们选择直接拷贝protobuf 生成的目录 includegoogle 到 /usr/local/include 下
4. zlib
编译时提示:"/usr/bin/ld: cannot find -lz"
解决:去lib64目录下看是有libz 相关库的,根据好使的环境比对,猜测是缺少特定的连接
# ln -s libz.so.1 libz.so
编译ok...
yum install samba
systemctl enable smb
systemctl start smb
- 创建用户组
groupadd dev
- 创建用户
useradd -g dev aaa
- 设置用户的密码
passwd aaa
- 将用户添加到samba账号中
smbpasswd -a aaa
5. 配置samba
/etc/samba/smb.conf
参考配置:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
map to guest = Bad User
log file = /var/log/samba/log.%m
[homes]
comment = Home Directories
browseable = no
writable = yes
[public]
comment = Public Stuff
path = /data/share
public = yes
[dev]
comment = developer
path = /dev
valid users = @dev
参考:https://www.zybuluo.com/lanxinyuchs/note/33551
说明:以Windows系统下查看C++代码为例。因为Source Insight(以下简称SI)是收费软件,且界面丑陋,所以考虑其替代方案,发现Sublime Text3(以下简称ST3) + Ctags + Cscope 可以取得很好的效果。使用ST3基本可以实现全键盘操作,同时它又没有学习Vim的陡峭曲线。
(1) 通过 Preference -> Package Control -> Install Package安装Ctags插件
(2) 下载 Ctags.exe, 通过 Preference -> Package Settings -> Ctags -> Settings Default 中的内容拷贝到 Setting User中,将 command": ""
中的 ""
填入Ctags.exe的路径位置
(3) 在工程根目录上点击右键,选择Ctags:Rebuild tags
(1) 通过 Preference -> Package Control -> Install Package安装Cscope插件
(2) 下载 Cscope.exe, 并在工程根目录下生成cscope.out文件
(3) 打开CscopeSublime.sublime-settings文件(可能需要添加到 Package -> User 目录下),将 "executable": ""
中的""
填入Cscope.exe的路径位置,将 "database_location": ""
中的 ""
填入cscope.out的路径位置
(1) 对于symbol函数的定义查询,ST3自带此功能Go to Definition
,且搜索结果有多个时可以预览,不用跳转到另一个文件。Ctags也有此功能navigate_to_definition
,搜索结果比ST3要准确一些,但多结果时不支持预览。Csope也有此功能 Cscope: look up function defintion
,但搜索结果不支持双击点开。因此实际中多用ST3和Ctags来实现此功能
(2) 对于symbol变量的定义查询,ST3不支持,Ctags有此功能,方法同其查询symbol函数的定义一致。Cscope也可以用查询symbol函数定义的方法实现此功能,搜索结果不支持双击点开。因此实际中多用Ctags来实现此功能
(3) 对于函数caller的查询,只有Cscope有此功能Cscope: look up function calling this function
(4) 全局搜索, ST3可通过Ctrl+Shift+F
实现,但搜索耗时较长。Cscope可通过Cscope: look up symbol
实现,因为已经通过cscope.out建立了索引,所以结果很快,但结果不一定全面
注:使用Cscope的功能时,需按enter
键确定才会执行
比较:ST3 + Ctags + Cscope的方案基本可以实现Source Insight的常用有效功能(除了查看类继承关系的Relation Windows),且其速度更快,界面也更为清爽。ST3相比于SI的其他优点还包括:
(1)ST3使用Ctrl+P
搜索文件时,使用的是模糊匹配,不像SI必须顺次拼写正确才行
(2)ST3支持tab模式,可方便的在多个文件间切换
(1) Alt+O
可以实现头文件和源文件之间的快速切换
(2) 通过 View -> Side bar 可在左侧显示当前打开的文件列表
(3) ST3虽然不像notepad++可以在sidebar上显示函数列表,但是可通过Ctrl+R
查看
(3) 通过 Preference -> Key binding user 可根据个人操作习惯自定义快捷键(包括ST3自带的和插件的)
(4) 双击可选中光标所在单词,三击可选中光标所在行
(5) Ctrl+Shift+T
可以打开之前关闭的tab页,这点同chrome是一样的