Charles https 监控不了#解决方法#

是不是4.x版本的Charles https 监控不了了,方法没问题啊,到底是什么情况呢?

这个很有可能跟iOS 10的一些安全机制有一定的关系,这里安装完需要手动信任下:

设置->通用->关于本机->证书信任设置(最下面) 

将那个没有信任的证书信任了就OK了

 

 

另:

如果你是Mac 用户,恰好你的Charles 还是个免费版,免费版本的坏处我就不说了,小弟这里有个 正式版 超级便宜,你都想不到的便宜, 去看看吧 !

!!!点我点我!!!!

mysql enum vs tinyint

enum的缺点:

  • mysql 独有的定义
  • Also, ENUM is a non-standard MySql extension. You should avoid it, especially if you can achieve the same results in a standard way.

  • ENUM requires a rebuild of the table when adding a value to the middle of the set.
  • ENUM values are ordered in the order they’re added to the database
  • ENUM values do in the database what should be done in the model.

相关文章:

 

redis 怎么都启动不了的问题

由于做slb,直接复制了个镜像,复制完redis怎么都启动不了,

看了下log

[18423] 16 Nov 18:34:53.771 # Creating Server TCP listening socket 10.168.64.12:6379: bind: Cannot assign requested address

看到没  10.168.64.12:6379 bind失败了,复制过来没把bind的内网地址改成当前机器的就傻逼了。

改成自己的内我地址就OK了

PHP升级注意问题

先看下当前PHP.ini 中是否有新增加的extention  什么redis.so memcached.so 各种,在装的时候可以加上对应的组件,也可以后装。

还有就是php-fpm 的配置项 升级PHP会把这些改成默认的,假如改了的话就得再修改过来

有关xml特殊字符BS的一些问题

Input is not proper UTF-8, indicate encoding !

是不是用的chrome 换safiri 试试  没问题

其实最好的方法是 使用  xmlcopyeditor  放进去会提示有问题  invalid token

你会发现 有一个 特殊字符  bs

 

好吧  替换掉 就OK了

其实这是个ascii码

ascii

其实 是个退格键,很有可能是word什么导致的,暂不详

为没有唯一键的表设置唯一键

方案一:

create table a_cp  select * from a group by uid,pid;

//创建主键索引

ALTER TABLE `a_cp` ADD PRIMARY KEY `id`(`id`);

//创建uid_pid 唯一索引

ALTER TABLE `a_cp` ADD UNIQUE KEY `uid_pid`(`uid`,`pid`);

// 将 a rename to a_old

// 将a_cp rename to  a;

 

设置到这里感觉是不是没什么问题?

其实是有大问题的,这的确设置了唯一键,但是主键没有自增啊,后面进来的数据就傻逼了。

这时候怎么处理呢?

找到max 设置唯一键 AUTO_INCREMENT  设置 AUTO_INCREMENT的值。

 

方案二:

先创建表 a_cp 各种索引建好了,再 insert into a_cp  数据,这样就不会有上面的问题了。

 

所以当遇到这种情况时,第一种方法不可取,尽量使用第二种。

 

php curl post使用 row

function curls($url, $data_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Content-Type: text/plain’));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

 

注意 CURLOPT_POSTFIELDS 是string

设置CURLOPT_HTTPHEADER  为  array(‘Content-Type: text/plain’)

Unknown: open_basedir restriction in effect

2016/04/19 17:59:23 [error] 129616#0: *664356635 FastCGI sent in stderr: “PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/data/wwwroot/xxx.com/index.php) is not within the allowed path(s): (/home/wwwroot/xxx.com/:/tmp/) in Unknown on line 0″ while reading response header from upstream, client: 118.186.2.178, server: xxx.com, request: “GET / HTTP/1.1″, upstream: “fastcgi://unix:/tmp/php-cgi.sock:”, host: “xxx.com”

 

最终在php.ini 中有个设置 open_basedir
[HOST=cuke.vmovier.com]
open_basedir=/home/wwwroot/xxx.com/:/tmp/

 

 

官方注释:

open_basedir string

将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本指令不受安全模式打开或者关闭的影响。

当一个脚本试图用例如 fopen() 或者 gzopen() 打开一个文件时,该文件的位置将被检查。当文件在指定的目录树之外时 PHP 将拒绝打开它。所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。

特殊值 . 指明脚本的工作目录将被作为基准目录。但这有些危险,因为脚本的工作目录可以轻易被 chdir() 而改变。

httpd.conf 文件中中,open_basedir 可以像其它任何配置选项一样用“php_admin_value open_basedir none”的方法关闭(例如某些虚拟主机中)。

在 Windows 中,用分号分隔目录。在任何其它系统中用冒号分隔目录。作为 Apache 模块时,父目录中的 open_basedir 路径自动被继承。

用 open_basedir 指定的限制实际上是前缀,不是目录名。也就是说“open_basedir = /dir/incl”也会允许访问“/dir/include”和“/dir/incls”,如果它们存在的话。如果要将访问限制在仅为指定的目录,用斜线结束路径名。例如:“open_basedir = /dir/incl/”。

Note:

支持多个目录是 3.0.7 加入的。

默认是允许打开所有文件。

 

 

记录一次 特殊的 nginx No input file specified

公司建了个wp的博客,想改域名,从.com改到.cc  在nginx中将对应的配置修改了,提示 No input file specified ,改回原来的目录就没问题,不知道什么情况,从网上找了些东西,试了各种方法,没什么效果(可能对你有些帮助)

最后对比了下两个文件夹下的文件,感觉 有个叫 .user.ini 的东西有点嫌疑,最后发现就是这个东西的问题,这是个啥子东西呢?

官方文档是这么说的:

自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件

http://php.net/manual/zh/configuration.file.per-user.php

 

文件中的配置是这样的:

open_basedir=/home/wwwroot/xxx.com:/tmp/:/proc/

心想,把这个改成xxx.cc不就可以了

修改的时候出问题了,没权限,我去 ,我可是牛B的root啊(虽然用root帐号不好),最后从网上找了些东西,看了下这个文章 http://www.ha97.com/5172.html 解决了,下面是cp过来的一些详细解释,如果你想往下看的话,不想看就是这么操作的:

 

#去除锁定
chattr -i .user.ini
#修改文件
vi .user.ini
#加锁
chattr +i .user.ini

 

下面有些理论的解释,可以看看

 

PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

这两个命令是用来查看和改变文件、目录属性的,与chmod这个命令相比,chmod只是改变文件的读写、执行权限,更底层的属性控制是由chattr来改变的。

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最关键的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]这些字符组合的,这部分是用来控制文件的
属性。

+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

应用举例:

1、用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

# lsattr /etc/resolv.conf
会显示如下属性
----i-------- /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages

 

到这里了,推荐下一个自己的收藏夹站 https://top9.cc/