PHP服务器相关技术
整体思路:

git提交本地代码-----码云----自动部署到测试服务器,这样就可以即时看到项目演示效果。

第一步:

测试服务器检查git版本

centos自带得git版本是1.7.*的,在克隆的时候有bug,如果是1.7.0请升级至2.7.0+。
点击在新窗口中浏览此图片

近期window 10家庭版更新后,远程桌面连不到服务器了

网上有卸载补丁,修改组策略什么的,对不起我没看到这个补丁,家庭版没有组策略

常规方法也就是三种,1.卸载更新补丁,2.修改组策略安全机制,3.修改注册表

本人只介绍修改注册表,简单方便快捷

开始-->运行-->regedit  打开注册表

进入这个目录\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\

发现里面只有Audit、UIPI,没有CredSSP,所以新建项,重命名为CredSSP,在CredSSP目录下再新建项,重命名为Parameters,目录有了,接着就该新建具体数值了

点击在新窗口中浏览此图片

新建DWORD(32位)值,重命名为AllowEncryptionOracle

点击在新窗口中浏览此图片

基数选择十六进制,数值数据修改为2

点击在新窗口中浏览此图片
码云(Gitee)的WebHooks功能,可以在我们每次提交代码后,向我们设定的地址post一个更新的json信息,这样我们就可以根据该信息,来自动拉去我们的代码,实现自动同步功能.

第一步 配置WebHooks


在[码云](https://gitee.com/)上,自己的项目中,选择"管理" --> "WebHooks",这个时候你能看到下图界面.
注:1 URL填写为自己接收端的地址,配置后,每次代码更新后会通过该地址发送更新的消息.
   2 密码:可以不填写.


点击在新窗口中浏览此图片

第二步 服务器脚本配置


在保存好脚本文件后,注意一下事项:
1 该脚本必须在PHP环境中运行,其他环境根据情况修改.
2 需要将该文件访问地址,替换到第一步的URL中.
3 根据实际情况,修改脚本中的参数:savePath,gitPath,email ,name.
4 isClone 变量,第一次clone的时候,需要设置成false,已经clone过后,需要设置成true.



<?php

//git webhook 自动部署脚本
//项目存放物理路径,第一次clone时,必须保证该目录为空
$savePath = "/www/wwwroot/eia/server/";
$gitPath  = "https://gitee.com/jerry_hui/tools.git";//代码仓库
$email = "your email";//用户仓库邮箱
$name  = "your name";//仓库用户名,一般和邮箱一致即可

$isClone = false;//设置是否已经Clone到本地,true:已经clone,直接pull,false:先clone.

//如果已经clone过,则直接拉去代码
if ($isClone) {
    $requestBody = file_get_contents("php://input");
    if (empty($requestBody)) {
        die('send fail');
    }

    //解析Git服务器通知过来的JSON信息
    $content = json_decode($requestBody, true);
    //若是主分支且提交数大于0
    if ($content['ref']=='refs/heads/master' && $content['total_commits_count']>0) {

        $res = PHP_EOL."pull start --------".PHP_EOL;
        $res .= shell_exec("cd {$savePath} && git pull {$gitPath}");//拉去代码
        $res_log = '-------------------------'.PHP_EOL;
        $res_log .= $content['user_name'] . ' 在' . date('Y-m-d H:i:s') . '向' . $content['repository']['name'] . '项目的' . $content['ref'] . '分支push了' . $content['total_commits_count'] . '个commit:';
        $res_log .= $res.PHP_EOL;
        $res_log .= "pull end --------".PHP_EOL;
        file_put_contents("git-webhook_log.txt", $res_log, FILE_APPEND);//写入日志到log文件中
    }
}else {
    $res = "clone start --------".PHP_EOL;
    //注:在这里需要设置用户邮箱和用户名,不然后面无法拉去代码
    $res .= shell_exec("git config --global user.email {$email}}").PHP_EOL;
    $res .= shell_exec("git config --global user.name {$name}}").PHP_EOL;
    $res .= shell_exec("git clone {$gitPath} {$savePath}").PHP_EOL;
    $res .= "clone end --------".PHP_EOL;
    file_put_contents("git-webhook_log.txt", $res, FILE_APPEND);//写入日志到log文件中
}


注意事项
如果仓库是公开的,那么上述配置则不需要修改,因为公开的仓库,在pull的时候,不需要账户和密码.
如果仓库是私有的,那么还需要做一下配置:
Windows配置:
1 进入 C:\Documents and Settings\xxx.,找到.git-credentials文件,
touch .git-credentials

2 用记事本修改.git-credentials.格式如下:
https://{ username }:{ password }@ xxx .com
eg:https://zhangsan:123456@gitee.com

3 在任意目录 打开git-bash,输入:
git config –global credential.helper store

4 执行完后去查看 C:\Documents and Settings\Administrator.gitconfig 这个文件,发现多了一项:
[credential] helper = store

5 重新使用git pull.此时便不再需要输入密码.

Linux配置:
1 进入 /home/chinaestone(有些在root下面),找到.git-credentials文件,

2 输入内容如下:
https://{username}:{password}@github.com
eg:https://zhangsan:123456@gitee.com

3 保存文件退出后,输入以下指令:
git config –global credential.helper store

4 此时在/home/chinaestone/.gitconfig 会新增一项
helper = store

5 重新使用git pull.此时便不再需要输入密码.
Tags:

apache安全配置 不指定

jed , 2018-3-14 15:45 , 服务器技术 , 评论(0) , 阅读(31630) , Via 本站原创
下载文件 (已下载 107 次)

PHP+Crontab执行定时任务 不指定

jed , 2018-3-14 10:40 , 服务器技术 , 评论(0) , 阅读(8362) , Via 本站原创
我们做web项目开发的,经常会需要定时备份数据,定时执行重启某个服务或者定时执行某个PHP程序等等,一般在Linux下使用Crontab,在Windows下使用计划任务。本文主要介绍Linux下使用Crontab基础知识以及执行PHP任务。

Crontab是一个Unix/Linux系统下的常用的定时执行工具,可以在无需人工干预的情况下运行指定作业。
IP相关统计
统计IP访问量(独立ip访问数量)

awk '{print $1}' access.log | sort -n | uniq | wc -l

查看某一时间段的IP访问量(4-5点)

grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l  

查看访问最频繁的前100个IP
Tags:
在centos 6上面,curl模块的ssl 支持默认为NSS,涉及到的程序里有https,是需要双向认证的,这时使用NSS会报错,所以需要更换为openssl.

一、查看系统自带的curl的版本

[root@localhost local]# curl -V
curl 7.19.7

二、得到curl当前版本是7.19.7,我们去官方下载http://curl.haxx.se/download/archeology/ 同样版本,然后解压、编译。
一、 L2TP/IPSec vpn一键安装脚本

运行下面的命令

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
chmod +x l2tp.sh
./l2tp.sh

全默认回车就行,全自动安装,如果没有问题,那就成功安装了L2TP/IPSec

二、pptp vpn一键安装脚本

运行下面命令

wget http://mirrors.linuxeye.com/scripts/vpn_centos.sh
chmod +x ./vpn_centos.sh
./vpn_centos.sh

这里这个脚本我在CentOS 6中安装完全没问题。

三、添加vpn登陆账号

在/etc/ppp/chap-secrets里添加和删除vpn账号,比如我添加一个账号:

veaxen * 123 *

这样就可以使用veaxen这个账号进行登陆了,密码是123,可选用pptp登陆也可以选用用L2TP/IPSec登陆。第二中登陆方式可能还需要与共享秘钥(PSK),这个可以在/etc/ipsec.secrets里增加或者修改。

下载文件 (已下载 286 次)

linux下显示dd命令的进度 不指定

jed , 2017-7-11 17:11 , 服务器技术 , 评论(0) , 阅读(57239) , Via 本站原创
Linux下显示dd命令的进度:

dd if=/dev/zero of=/tmp/zero.img bs=10M count=100000

想要查看上面的dd命令的执行进度,可以使用下面几种方法:

比如:每5秒输出dd的进度

方法一:

watch -n 5 pkill -USR1 ^dd$


方法二:

watch -n 5 killall -USR1 dd

方法三:

while killall -USR1 dd; do sleep 5; done

方法四:

while (ps auxww |grep " dd " |grep -v grep |awk '{print $2}' |while read pid; do kill -USR1 $pid; done) ; do sleep 5; done

上述四种方法中使用三个命令:pkill、killall、kill向dd命令发送SIGUSR1信息,dd命令进程接收到信号之后就打印出自己当前的进度。
一、内容介绍

1、问题描述

1)、问题一
CentOS 6.x 在格式化大于16TB的ext4分区时,会提示如下错误:
分页: 1/34 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]