VMware中为Fedora 23安装VMware Tools

VMware中为Fedora 23安装VMware Tools 添加163镜像源。 # cd /etc/yum.repos.d # wget http://mirrors.163.com/.help/fedora-163.repo # wget http://mirrors.163.com/.help/fedora-updates-163.repo 配置dnf自动选择最快的镜像源 # vim /etc/dnf.conf #在文件末尾添加一行 fastestmirror=true #wq保存退出 生成缓存 # dnf clean all # dnf makecache 检查更新 && 升级更新 # dnf check-update # dnf upgrade 安装编译环境 # dnf install gcc glibc-headers kernel-devel kernel-headers make perl 安装Open-vm-tools # dnf install open-vm-tools 挂载镜像 # mkdir /mnt/cdrom # mount /dev/cdrom /mnt/cdrom 解压 && 安装
Read more...

VPS上的CentOS7 Minimal配置Nginx PHP7 MariaDB开发环境

VPS上基于CentOS7 Minimal系统配置Nginx PHP7和MariaDB(LEMP)的开发环境

安装Nginx Stable Version,推荐的方法是使用Nginx官方维护的源。

  • 创建一个yum源的文件# vi /etc/yum.repos.d/nginx.repo
  • 添加如下内容 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
  • 安装 # dnf install nginx
  • 查看版本 # nginx -v

添加Remi源为安装PHP7做准备。

  • Remi源需要epel源中的一些依赖,所以首先添加Epel源。 # dnf install epel-release
Read more...

XShell SSH到虚拟机提示信息变为中文的解决方案

XShell SSH到虚拟机提示信息变为中文的解决方案 在VMware中安装了Fedora 23,使用XShell连接到目标机器之后发现所有的提示都变成了中文。 [symo@bogon ~]$ vima -bash: vima: 未找到命令 甚至软件包的名字也以中文显示了。 [symo@bogon ~]$ dnf grouplist 上次元数据过期检查在 0:46:17 前执行于 Tue Feb 2 21:48:49 2016。 可用环境组: 最小化安装 Fedora Server Fedora Workstation Fedora Cloud Server KDE Plasma Workspaces Xfce Desktop LXDE 桌面环境 LXQt Desktop Cinnamon 桌面环境 MATE 桌面环境 Sugar 桌面环境 开发和创意工作站 Web 服务器 基础设施服务器 Basic Desktop 可用组: 管理工具 Audio Production 写作和出版 书籍和指南 C Development Tools and Libraries 云计算基础 Cloud Management Tools Container Management D Development Tools and Libraries 设计套件 开发工具 Domain Membership Fedora Eclipse 编辑器 教育软件 电子实验室 工程和科学 FreeIPA Server 游戏和娱乐 Headless Management LibreOffice MATE Applications MATE Compiz 医疗程序 Milkymist 网络服务器 办公/办公效率 机器人学 RPM Development Tools 安全实验室 声音和视频 系统工具 基于文本的互联网 3D Printing 窗口管理器 这样虽然看起来更加直观但是不利于出了问题之后的搜索,所以还是得改回英文。
Read more...

主从同步原理

主从同步原理 主服务器验证连接 主服务器为从服务器开启一个线程 从服务器将主服务器日志的偏移位告诉主服务器 主服务器检查该值是否小于当前二进制日志偏移位 如果小于,则通知服务器来取数据 从服务器持续从主服务器取数据,直至取完,这时,从服务器线程进入睡眠,主服务器线程同时进入睡眠 当主服务器有更新时,主服务器线程被激活,并将二进制日志推送给从服务器,并通知从服务器进入工作状态 从服务器SQL线程执行二进制日志,随后进入睡眠状态 配置实验环境 下载mysql安装包 # wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-server-5.5.38-1.rhel5.i386.rpm # wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-client-5.5.38-1.rhel5.i386.rpm 执行安装 # rpm -ivh MySQL-server-5.5.36-1.rhel5.i386.rpm # rpm -ivh MySQL-client-5.5.36-1.rhel5.i386.rpm 错误处理 缺少Perl包 error: Failed dependencies:/usr/bin/perl is needed by MySQL-server-5.5.36-1.rhel5.i386 安装Perl即可 # yum install -y perl 与原先版本冲突 查看系统已经安装的版本 # rpm -qa | grep mysql 卸载 # rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686 4.复制配置文件 # cp /usr/share/mysql/my-large.cnf /etc/my.cnf 启动服务 # service mysql start 设置主服务器 修改my.
Read more...

交互式的Debug工具PsySH

原文: Interactive PHP Debugging with PsySH 作者: Miguel Ibarra Romero 翻译:Symo 现在是凌晨一点,距离你的Web项目上线只有八个小时了,然而它却不能正常的工作。你不停向代码中填入var_dump()和die()试图定位程序中的bug…… 此时的你异常恼火,不得不一遍又一遍的更改源码,运行程序,查看某个函数的返回值或者检查某个变量是否被正确的赋值。最后也不确定是否要删掉代码中一大堆的var_dump()。 这样的情景是否于你似曾相识呢? PsySH来拯救你了 PsySH是一个交互式的解释环境(Read-Eval-Print Loop),如果你曾经使用浏览器的控制台调试过JavaScript,你会明白这是一个非常强大和方便的Debug方式。 谈到PHP,你也许用过PHP的交互控制台(php -a),在里面你可以直接写一些代码然后直接执行它们。 php -a Interactive shell php > $a = 'Hello world!'; php > echo $a; Hello world! php > 然而遗憾的是,这个交互式界面缺乏一个“P”(print),所以不是REPL。我必须执行一个echo语句来打印$a的值。使用真正的REPL,我们将会在给变量赋值的一瞬间看到结果。 要安装PsySH,可以使用composer g require,也可以下载PsySH的可执行文件。 Composer composer g require psy/psysh:~0.1 psysh 直接下载(Linux、Mac) wget psysh.org/psysh chmod +x psysh ./psysh 另外,你也可以使用composer为每个项目单独的引入PsySH,就像一会儿你在将在文章的后面见到的。 现在,让我们开始使用一下PsySH吧。 ./psysh Psy Shell v0.1.11 (PHP 5.5.8 — cli) by Justin Hileman >>> 它的主要帮助文件将会是你的好助手,它会告诉你所有的参数和它们的含义。
Read more...

微信接口创建按钮时的中文编码问题


在对微信订阅号接口开发的过程中,发现对微信服务器推送创建按钮的Json总是出现失败, 打印了一下JSON的输出才发现被json_encode函数转换过的数组中,原先的中文字符全部被转成了URL编码. 所以在转JSON之前需要先对数组处理一下:

public function urlencodeArray($data){
    $result = array();
    foreach ($data as $k => $v){
        $result[urlencode($k)] = is_array($v) ? $this->urlencodeArray($v) : urlencode($v);
    }
    return $result;
}

处理过后的数组就可以使用json_encode编码之后返回了,问题解决. $json = urldecode(json_encode($this->urlencodeArray($data)));

Read more...

CentOS 防火墙配置

##iptables规则 1. 规则从上向下匹配,如果匹配成功一条规则,则不向下进行匹配(重要) 2. 没有匹配的规则时,执行默认动作 3. 规则存储在内存中,不会自动存储到磁盘,因此重启之后规则就失效了,所以需要使用初始化脚本来保存规则 4. 如果远程管理服务器,比如使用SSH,那么配置规则之前首先添加允许SSH的规则,不然iptables会把你自己阻止在外 ##iptable链与处理方式 ###iptable链 * INPUT链 进站数据包的规则 * OUTPUT链 出站数据包的规则 ###处理方式 * ACCEPT 数据包允许通过其到达目的地 * DROP 数据包被拒绝不返回任何信息 查看防火墙 iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 清空防火墙 iptables -F ##实例: ###禁止192.168.1.100通过SSH的22端口了解服务器 iptables -A INPUT -s 192.168.1.100 -p TCP--dport 22 -j DROP |参数|(参数区分大小写)| |:–:|:–:| |-A|追加规则链到底部| |-I|插入规则链到头部| |-s|来源IP| |-d|目的地址(即服务器的IP)| |-D|删除规则| |-p|通信协议(TCP,UDP)| |–dport|目的端口(SSH服务默认使用22)| |–sprot|来源端口| |-j|操作方式(ACCEPT,DROP)| |-i|数据包进入的网卡| |-o|流出数据包的网卡| |-L|查看防火墙规则| |–line-number|带行号显示| |-P|默认规则| |-n|以数字形式显示
Read more...

Apache服务器

安装LAMP环境 1. 安装Apache yum -y install httpd 2. 安装MySQL yum -y install mysql mysql-server 3. 安装PHP yum -y install php php-mysql php-mbstring php-gd Apache服务启动与关闭 apachectl start apachectl stop apachectl restart 文件说明 主配置文件 /etc/httpd/conf/httpd.conf 扩展配置文件 /etc/httpd/conf.d/*.conf 当Apache启动时,会加载此目录下的所有以.conf结尾的文件,作为配置文件 主配置文件 Listen 80 监听端口 修改为8080,表示只能通过192.168.1.2:8080访问 User apache Apache子进程所有者 Group apache Apache子进程所属组 DocumentRoot “/var/www/html” 网站数据根目录 ServerName localhost 服务器的主机名 通常这个值是自动指定的,推荐显式指定它以防止启动时出错 DirectoryIndex index.html index.html.var 网站默认主页,指定多个时,以此匹配(如果修改无效,可能被php.conf扩展配置覆盖) 网站根目录权限设置 <Directory/> Options Indexes FollowSymLinks AllowOverride None </Directory> indexes 如果访问的文件不存在,显示目录文件列表
Read more...