centos 7 安装配置/搭建 svn 服务器

1 安装

yum install subversion

2 查看版本

svnserve –version

3 创建版本库目录

mkdir -p /home/svn/response

4 创建版本库

svnadmin create /home/svn/response

目录下生成以下文件

 

进入 conf 目录

authz是权限控制文件

passwd是账号密码文件

svnserve.conf是 svn 服务配置文件

 

5 使用vim passwd 进入passwd 按A键进入编辑模式,在[user]模块中添加用户,按Esc键退出编辑模式,键入”:eq!” 保存退出vim。

6 使用vim  authz 编辑authz文件,为刚刚添加的用户添加权限

意思是为用户luchanglong赋予根目录的读写权限

7 最后 ,修改svn配置文件 vim svnserve.conf

打开以下项的注释并修改版本库文件位置

anon-access=read    //匿名用户可读

auth-access=write   //授权用户可写

password-db=passwd //账号密码文件

authz-db=authz    //权限文件

realm=/home/svn/response    //版本库目录

 

8 启动svn   svnserve -d -r /home/svn/response

9 停止svn  killall svnserve

10 通过windows访问svn

出现错误

 

怀疑是防火墙,查看一下防火墙状态,发现防火墙已运行,未开启3690端口,遂开放端口(fiereall)

firewall-cmd –add-port=3690/tcp –premanent  #永久开放3690端口,记得防火墙reload

之后重新尝试检出,成功!

 

 

配置多版本库

以下内容参考

http://blog.csdn.net/meic51/article/details/17284487

创建新的版本库:

svnadmin create /home/svn/mshop

现在有已经创建两个版本库

/home/svn/response

/home/svn/mshop

1.在/home/svn  下创建公共配置文件夹

mkdir /home/svn/conf

2.复制 response的配置文件到公共配置(你也可以自己创建)

cp /home/svn/response/conf/{authz,passwd} /home/svn/conf

3.删除版本库 response和mshop下各自的配置文件

rm -rf /home/svn/{mshop,response}/conf/{authz,passwd}

4.分别修改reponse和mshop两个版本库下conf/svnserve.conf 文件,将密码和权限文件都指向到公共的密码和权限配置文件

5.修改公共密码文件,

vim /home/svn/conf/passwd

6.修改公共权限配置权限(将luchanglong加入用户组admin,为用户组admin配置两个项目的读写权限)

 

停止命令
killall svnserve

重启
svnserve -d -r /home/svn

 

在window端使用 路径访问,成功

svn://ip/response

svn://ip/mshop

 

 

使用git 错误解决hint: Updates were rejected because the tip of your current branch is behind

错误

root@iZ94orvma5bZ mshop]# git push origin master
To git@github.com:DanceHill/mshop.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘git@github.com:DanceHill/mshop.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. ‘git pull’)
hint: before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.

 

这个是因为本地版本低于服务器版本,比如你在git网页上修改了文件,而又没有 pull,然后直接修改本地文件,你提交的时候就会报这个错误

解决:

[root@iZ94orvma5bZ mshop]# git push -u origin master -f
Counting objects: 98, done.
Compressing objects: 100% (57/57), done.
Writing objects: 100% (60/60), 57.39 KiB | 0 bytes/s, done.
Total 60 (delta 36), reused 0 (delta 0)
remote: Resolving deltas: 100% (36/36), completed with 31 local objects.
To git@github.asdfddff/mvshop.git
+ bb60a15...291193d master -> master (forced update)
Branch master set up to track remote branch master from origin.

 

微信对接常见问题

微信对接常见问题
一、微信支付

其中微信公众号支付,扫码支付在微信公众号管理后台申请配置,支付授权目录必须填写完整地址,例如PC微信扫码支付

http://www.xxxx.com/index.php/Home/Payent/ 微信公众号支付 http://ww.xx.com/index.php/Mobile/Payment/
而APP微信支付需要前往微信开放平台申请
APP微信支付的申请流程如下:
1, 注册开发者账号;
2, 认证开发者资质;
3, 创建APP并提交审核;
4, 提交资料申请微信支付;
5, 启动设计并开发;
6, 开户成功,并且进行验证;
7, 在线签署协议,并接入,即可完成接入。

二 微信登陆
微信公众号登陆只需要在微信公众号后台配置好获取用户信息的网页安全域名,网页安全域名、JS安全域名、业务域名如果是一级域名都需要带上WWW。
微信扫码登陆需要前去微信开发平台申请,创建应用获取APPID和AppSecret,并且要绑定微信公众号,否则扫码登陆与微信公众号登陆会产生两个账号,因为他们产生的 openid不一致,如果绑定了公众号,那么微信公众号获取用户信息里就会产生一个跟微信扫码登陆一样的unionid,这个时候通过这个unionid认证用户就可以解决同一个微信用户两边登陆产生两个平台账号的问题
微信扫码登陆所有参数配置正确时,可能点击微信快捷登陆,二维码依然出来不了,还报参数错误,这里可以看看发起微信扫码登陆的平台地址里如果是一级域名里是否有带WWW,没带WWW就会报错。

三 微信分享
附录1-JS-SDK使用权限签名算法
jsapi_ticket
生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。
1.参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):../15/54ce45d8d30b6bf6758f68d2e95bc627.html
2.用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
成功返回如下JSON:
{
“errcode”:0,
“errmsg”:”ok”,
“ticket”:”bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA”,
“expires_in”:7200
}

调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息。以下为常见错误及解决方法:
1.invalid url domain当前页面所在域名与使用的appid没有绑定,请确认正确填写绑定的域名,仅支持80(http)和443(https)两个端口,因此不需要填写端口号(一个appid可以绑定三个有效域名,见 目录1.1.1)。
2.invalid signature签名错误。建议按如下顺序检查:
1.确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。
2.确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。
3.确认url是页面完整的url(请在当前页面alert(location.href.split(‘#’)[0])确认),包括’http(s)://’部分,以及’?’后面的GET参数部分,但不包括’#’hash后面的部分。
4.确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。
5.确保一定缓存access_token和jsapi_ticket。
6.确保你获取用来签名的url是动态获取的,动态页面可参见实例代码中php的实现方式。如果是html的静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去’#’hash部分的链接(可用location.href.split(‘#’)[0]获取,而且需要encodeURIComponent),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

CentOS 7配置 默认 防火墙 Firewall

Centos7 下默认的防火墙是 Firewall,替代了之前的 iptables,Firewall 有图形界面管理和命令行管理两种方式,本文简要介绍命令 行Firewall 的使用。

进入系统之后,Centos7 默认是已安装了 Firewall,但是没有启动的,所以需要先启动下 Firewall,同时设置开机自启动

systemctl start firewalld       ##启动Firewall
systemctl enable firewalld.service  ##设置开机自启动

 

ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/basic.target.wants/firewalld.service'

常用命令

firewall-cmd --state                           ##查看防火墙状态,是否是running
firewall-cmd --reload                          ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones                       ##列出支持的zone
firewall-cmd --get-services                    ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp                 ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口 
iptables -L -n                                 ##查看规则,这个命令是和iptables的相同的
firewall-cmd --list-all                        ##列出所有已设置的规则
man firewall-cmd                               ##查看帮助

对特定ip 禁止访问shh服务  (ip  shh可以自己改别的  最后面的reject是禁止的意思也可以换成允许的英文,)
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject" 


附赠一下IP黑名单(观察服务器日志,以下IP一直在网络上暴力破解root密码)
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="180.235.231.127/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="212.83.138.11/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="101.201.209.126 /24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.76.248.208/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="31.23.35.48/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="202.65.138.134/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="54.169.123.247/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="59.110.163.87/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="123.57.67.230/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="79.41.172.12/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="115.28.157.41/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="36.83.157.222/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="118.178.194.187/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="114.55.134.103/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.77.71.96/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.27.230.111/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.25.206.153/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="112.74.78.11/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.76.153.252/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.25.221.227/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="140.205.201.37/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="125.62.17.201/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.24.229.221/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="121.42.152.49/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="122.148.47.60/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="5.42.229.145/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.26.89.112/24" service name="ssh" reject"


firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.26.126.157/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="112.126.89.5/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.24.232.16/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.25.78.221/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.77.170.203/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="140.205.225.188/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.24.0.227/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="190.152.109.253/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="47.88.77.115/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="119.23.250.71/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="47.92.82.165/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="140.205.225.187/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.27.24.207/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="47.92.92.87/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="121.40.215.91/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="115.29.246.216/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.24.157.214/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.26.12.12/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.24.251.143/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="117.203.48.108/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="112.135.49.88/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.24.190.131/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="190.214.115.3/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="121.199.46.136/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="101.200.57.200/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.77.177.190/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="112.124.19.171/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="140.205.225.188/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="114.55.32.224/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="120.24.6.133/24" service name="ssh" reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="106.14.3.80/24" service name="ssh" reject"
 使用命令查看你开了哪些系统端口:
netstat -an | grep -i listen

centos 7 查看版本信息

[root@iZ94orvma5bZ ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

[root@iZ94orvma5bZ ~]# cat /etc/os-release
NAME=”CentOS Linux”
VERSION=”7 (Core)”
ID=”centos”
ID_LIKE=”rhel fedora”
VERSION_ID=”7″
PRETTY_NAME=”CentOS Linux 7 (Core)”
ANSI_COLOR=”0;31″
CPE_NAME=”cpe:/o:centos:centos:7″
HOME_URL=”https://www.centos.org/”
BUG_REPORT_URL=”https://bugs.centos.org/”

CENTOS_MANTISBT_PROJECT=”CentOS-7″
CENTOS_MANTISBT_PROJECT_VERSION=”7″
REDHAT_SUPPORT_PRODUCT=”centos”
REDHAT_SUPPORT_PRODUCT_VERSION=”7″

php 冒泡排序

function bubbleSort($numbers) {
    $cnt = count($numbers);
    for ($i = 0; $i < $cnt; $i++) {
        for ($j = 0; $j < $cnt - $i - 1; $j++) {
            if ($numbers[$j] > $numbers[$j + 1]) {
                $temp = $numbers[$j];
                $numbers[$j] = $numbers[$j + 1];
                $numbers[$j + 1] = $temp;
            }
        }
    }
 
    return $numbers;
}
 
$num = array(20, 40, 60, 80, 30, 70, 90, 10, 50, 0);
var_dump(bubbleSort($num));
 
//输出结果如下:
//array(10) {
//  [0]=>
//  int(0)
//  [1]=>
//  int(10)
//  [2]=>
//  int(20)
//  [3]=>
//  int(30)
//  [4]=>
//  int(40)
//  [5]=>
//  int(50)
//  [6]=>
//  int(60)
//  [7]=>
//  int(70)
//  [8]=>
//  int(80)
//  [9]=>
//  int(90)
//}