Centos7上搭建SVN服务器并实现自动同步至web目录

前言

由于最近跟学长一起合作完成一个小项目,然后我俩比较熟悉的版本控制是SVN,就考虑着在服务器上搭建一个SVN服务器。现在在这里给出简单的搭建过程。
(其实吧,能用Git就尽量用git吧,好处自己百度,有关搭建请参考我的另一篇博客搭建服务器上的GIT并实现自动同步到站点目录(www),这篇博客与git搭建的过程应该是基本一样的)

预期目的:

1、仓库放在 /var/svn/ 目录下,并且仓库名为 project

2、创建用户组lsgogroup,该组下添加两个成员lsgoweb1、lsgoweb2,密码直接用用户名,两用户可以checkout代码和提交代码

3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /home/www/ 下

一、搭建svn环境并创建仓库:

1、安装Subversion:

yum install -y subversion

2、检测是否安装成功(查看svn版本号)

svnserve --version

3、创建版本库

//先建目录
mkdir /var/svn
cd /var/svn
//创建版本库
svnadmin create /var/svn/project
cd project
//会看到自动生成的版本库文件
conf  db  format  hooks  locks  README.txt

至此,svn环境搭建成功。

二、创建用户组及用户:

1、 进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。

2、修改权限配置文件:vim authz

3、配置用户名命令文件:vim passwd

4、配置SVN服务综合配置文件svnserve.conf

//找到以下配置项,将前面的#号去掉,然后做相应的配置
anon-access = none  //匿名用户访问权限:无
auth-access = write     //普通用户访问权限:读、写
password-db = passwd        //密码文件
authz-db = authz        //权限配置文件
realm = /var/svn/project    //版本库所在1

注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错

5、启动svn服务:

svnserve -d -r /var/svn

如果提示:

svnserve: E000098: Can't bind server socket: Address already in use

证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务

//查看svn服务详情
ps aux | grep svn
//将svn服务强制停止  其中790为svn服务的ID号,-9是kill的参数
kill -9 790

或者用

killall svnserve

再运行 svnserve -d -r /var/svn,进行启动服务

6、测试服务器:

//我们在web目录测试(/home/www)
cd /home/www
svn co svn://localhost/project

如果提示:Checked out revision 1.  表示checkout成功

我们添加新文件来测试是否提交成功

cd /home/www
touch index.php
svn add index.php   //成功的话会显示  A index.php
svn commit index.php -m "测试提交文件"

假如最后提示:

Adding         index.php
Transmitting file data .
Committed revision 2.

则表示我们svn服务器搭建成功!文件已经能够推送了。

7、本地拉取、推送

在本地首先要安装SVN吧,具体百度。。。

填写信息:

点击ok,提示输入用户名和密码

就填刚才我们创建的lsgoweb1或lsgoweb2,和对应的密码即可。

三、实现svn更新自动同步到web目录:

1、在web目录中checkout版本库

这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:

svn co svn://localhost/project /home/www --username lsgoweb1(SVN账号) --lsgoweb1(SVN密码)

进入/var/svn/project/hooks下,建立post-commit文件:

cd /var/svn/project/hooks
vim post-commit

//在该文件里添加如下代码,保存
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn   //这里不用改
WEB_PATH=/home/www  //web目录,如果你的不同,可以改
//这里的用户随便一个就好
$SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache

保存退出。

修改post-commit用户为www目录用户

chown apache:apache post-commit     //我的 /home/www 的用户组和所有者都是apache

给post-commit 执行权限:

chmod 755 post-commit

麻蛋,终于写完了。。。。

本博客主要参考了:  1、centos7.0搭建SVN服务器  2、CentOS创建SVN 服务器,并且设置自动同步到WEB目录  感谢原作者。

CentOS中禁止用户ssh和sftp登陆

在linux中出于安全的需要,我们会禁止某些用户SSH登陆系统进行操作。我这里以centos操作系统为例记录下如何进行处理。

1、打开sshd的配置文件

  1. vi/etc/ssh/sshd_config

2、修改该配置文件,增加或修改如下行

  1. # 禁止用户user1登陆,多个空格分隔
  2. DenyUsers user1
  3. # 禁止用户组group1的所有用户登录,多个空格分隔
  4. DenyGroups group1

3、保存配置后,重启sshd

  1. /etc/rc.d/init.d/sshd restart

完成上面的配置后,就可以禁止用户或用户组的用户进行登录了,第2步中的两个是可以只填一个的,可以根据需要进行调整。配置完毕后,在其他linux机器上使用如下命令进行测试:

  1. # 使用ssh测试
  2. [root@ServerA ~]# ssh user1@192.168.1.168
  3. user1@192.168.1.168’s password:
  4. Permission denied, please try again.
  5. # 使用sftp测试
  6. [root@ServerA ~]# sftp user1@192.168.1.168
  7. user1@192.168.1.168’s password:
  8. Permission denied, please try again.

可以看到,确实被系统禁止了,从而也就完成了我们想要的控制了。但这个有一个缺陷是,无法禁止只允许sftp而不允许ssh,如果要这样做,估计只能够单独搭建ftp服务器,比如vsftp,后续再考虑这个。

给VSFTP增加用户,只能访问指定目录

1 增加组 groupadd ftpgroup
2 修改/etc/vsftpd/vsftpd.conf
将底下三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改为
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
3 增加用户 useradd -g ftpgroup -d /var/ftp/pub/ftpuser_file  -M ftpuser
4 设置用户口令 passwd ftpuser
5 编辑文件: /etc/vsftpd/chroot_list
内容为ftp用户名,每个用户占一行,如:
peter
john
6 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart

阿里云云服务器硬盘分区及挂载

云服务器环境:CentOS 6.2 64位

客户端环境:Mac OSX

远程连接方式:运行 Terminal,输入命令 ssh username@ip

硬盘分区及挂载操作步骤:

1. 查看未挂载的硬盘(名称为/dev/xvdb)

# fdisk -l 

Disk /dev/xvdb doesn’t contain a valid partition table

2. 创建分区

# fdisk /dev/xvdb

输入n

Command (m for help):n

输入p

Command action
e extended
p primary partition (1-4)
p

输入1

Partition number (1-4): 1

回车

First cylinder (1-2610, default 1): 
Using default value 1

回车

Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 
Using default value 2610

输入w

Command (m for help): w
The partition table has been altered!

3. 格式化分区

# mkfs.ext3 /dev/xvdb1

4. 建立挂载目录

# mkdir /data

5. 挂载分区

# mount /dev/xvdb1 /data

6. 设置开机自动挂载

vi /etc/fstab

在vi中输入i进入INERT模式,将光标移至文件结尾处并回车,将下面的内容复制/粘贴,然后按Esc键,输入:x保存并退出

/dev/xvdb1              /data                   ext3    defaults        0 0

7. 确认是否挂载成功

重启服务器

# reboot

查看硬盘分区

# df

/dev/xvdb1            20635700    176196  19411268   1% /data

搞定!

CentOS上安装部署LAMP环境

原文地址:http://os.51cto.com/art/201103/248774.htm

 

CentOS5.4上安装Apache2+PHP5+MySQL(LAMP)

1.注意事项:在这篇教程中,我将使用的主机IP 地址是192.168.0.100.这些设置可能与你的机器不同,因此你需要在合适的地方更换下。

2.安装MySQL5.0

我们通过执行下面的命令来安装MySQl:

  1. yum install mysql mysql-server

然后我们为MySQL创建系统启动快捷键(这样的话,MySQL就会在系统启动的时候自动启动)并且启动MySQL服务器:

  1. chkconfig –levels 235 mysqld on
  2. /etc/init.d/mysqld start

运行

  1. mysqladmin -u root password yourrootsqlpassword
  2. mysqladmin -h server1.example.com -u root password yourrootsqlpassword

来为root用户设置一个密码(否则的话任何人都可以访问你的MySQL数据库!)。

3安装Apache2

Apache2 是CentOS的一个可供选择的包,因此我们可以使用下列命令安装它:

  1. yum install httpd

现在配置你的系统使得Apache可以自动启动。。。

  1. chkconfig –levels 235 httpd on

… 并且启动Apache

  1. /etc/init.d/httpd start

现在你可以在你的浏览器中转到http://192.168.0.114,你应该看到Apache2的预留页:

CentOS/安装/LAMP

  1. apache preloadpage
  2. apache preloadpage

在CentOS里Apache的默认文档路径的位置是在/var/www/html,配置文件的路径是/etc/httpd/conf/httpd.conf。其他的配置存储在/etc/httpd/conf.d/ 文件夹里。

4 安装PHP5

我们可以使用下列命令来安装PHP5和Apache的PHP5模块:

  1. yum install php

然后我们必须重新启动Apache:

  1. /etc/init.d/httpd start

5测试PHP5

获取PHP5安装的一些信息

网站的默认文档的路径是/var/www/html.我们可以在这个目录里创建一个简单的php文件(info.php)并且在浏览器中调用。这文件将会显示很多关于PHP安装时候的有用的细节,例如PHP的安装的版本。

vi /var/www/html/info.php

  1. phpinfo();
  2. ?>

现在我们可以再浏览器中访问这个文件(例如http://192.168.0.114/info.php):

CentOS/安装/LAMP

  1. phpinfo
  2. phpinfo

正如你所看到的,PHP5现在正在工作,正如Server API这一行中显示的一样,它是工作在Apache 2.0 Handler模式下。如果你向下滑动的话,你将会看到所有的模块都可以在PHP5中使用了,MySQL并没有在这里被列出来,这也就意味着PHP5并不 支持MySQL。

6 使得PHP5支持MySQL

要使得在PHP中支持MySQL,我们可以安装 php-mysql这个包。最好的办法是安装一些其他的PHP5模块,这些模块可能其他应用程序会用到。你可以使

用search命令寻找可用的PHP5模块:

  1. yum search php

选择你所需要的包,然后通过下列命令安装他们:

  1. yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc

现在重新启动Apache2

  1. /etc/init.d/httpd restart

现在在你的浏览器中重新加载http://192.168.0.114/info.php 这个页面,并再次查看模块部分,你现在就能看到多了很多模块,包括我们刚刚安装的MySQL模块。

CentOS/安装/LAMP

  1. mysqlmodule
  2. mysql module

7 phpMyAdmin

phpMyAdmin是一款MySQL数据库web化的管理工具。

第一步我们先使我们的CentOS支持RPMforge repository,因为phpMyAdmin并不在CentOS5.3官方的依赖包里:

对于 x86_64 系统:

  1. wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
  2. rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

对于 i386系统

  1. wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
  2. rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

现在你就可以使用下列命令来安装phpMyAdmin了:

  1. yum install phpmyadmin

现在我们配置下phpMyAdmin。我们改下Apache的配置文件,使的 phpMyAdmin不单单是本机访问。

  1. vi /etc/httpd/conf.d/phpmyadmin.conf
  2. #
  3. # Web application to manage MySQL
  4. #
  5. #
  6. # Order Deny,Allow
  7. # Deny from all
  8. # Allow from 127.0.0.1
  9. #
  10. Alias /phpmyadmin /usr/share/phpmyadmin
  11. Alias /phpMyAdmin /usr/share/phpmyadmin
  12. Alias /mysqladmin /usr/share/phpmyadmin

下面我们改变下phpMyAdmin的认证方式,从cookie改成http:

  1. vi /usr/share/phpmyadmin/config.inc.php
  2. […]
  3. /* Authentication type */
  4. $cfg[‘Servers’][$i][‘auth_type’] = ‘http’;
  5. […]

最后,你就可以通过http://192.168.0.114/phpmyadmin/当问phpMyAdmin了:

CentOS/安装/LAMP

  1. phpmyadmin

php“内存位置访问无效”错误的解决办法

突然发现网页登不上去了,提示错误“内存位置访问无效”。但服务器上ASP的站点可以运行,于是猜想应该是PHP出现了错误。

配置环境如下:

Win2003SP2+IIS6+php5.26+mysql5.0.51a+zend3.3a+PhpMyAdmin2.11.7.1 PHP执行方式:isapi。Mysql为手动安装。

关于“内存位置访问无效”的错误解决办法与步骤:(前三步可忽略)

一、将IIS的错误显示打开,未发现错误原因!

二、检查IIS扩展,ISAPI、php.ini与Mysql配置以及相应的安装目录ACLs权限,均无误。

三、回收IIS进程,错误仍然出现”内存位置访问无效”….

四、将php.ini中 display_startup_errors = On 打开,重新启动IIS,问题所在终于发现了… (注:如果将php.ini的display_startup_errors打开,如果php有错误出理,就会提示,而且在事件查看器中有记录。如果设置为display_startup_errors = Off,则不会有任何提示)

五、Warning

Cannot load module ‘SQLite’ because required module ‘pdo’ is no loaded

上面这条错误信息终于被发现了。大概意思就是因为php.ini配置中开启了SQLite桌面数据库的支持,但未开启相关的pdo模式,pdo模块加载失败…..

六、解决办法也很简单了,因为加载php_sqlite.dll时未加载到php_pdo.dll文件,所以运行phpinfo()函数时提示内存 位置访问无效。找到php.ini配置文件,然后去掉”;extension=php_pdo.dll”前面的分号, extension=php_sqlite.dll

然后再回收一下IIS应用程序池进程,问题彻底解决….

hoho,希望对遇到此问题的朋友有点儿帮助…

如何开启Windows远程桌面服务 | 远程操作自己的电脑

如何开启Windows远程桌面服务?

那么,如何手动开启Windows远程桌面服务呢?
(1)Windows XP、Windows 2003 中
第一步:在桌面“我的电脑”上点鼠标右键,选择“属性”。
第二步:在弹出的“系统属性”窗口中选择“远程”标签。
第三步:在“远程”标签中找到“远程桌面”,在“允许用户远程连接到此计算机”复选框前打上对勾后确定。
第四步:注意Windows防火墙中的例外“远程桌面”要生效。
重启系统后,具有管理员权限的用户就可以远程访问远程桌面了。
clip_image001
clip_image003

最后,有几点需要注意的地方:
1)登录远程桌面的Windows用户,至少是 Remote Desktop User 用户组的成员。当然 Administrators 组也是可以的。
2)登录远程桌面的用户名,必须是带有密码的。空密码的账号是无法登录的。
3)Windows 7 比较烦人的是,防火墙策略比较复杂,它还分为家庭网络、工作网络、公共网络什么的。各个不同类型的网络防火墙设置都是独立的。所以当你的网卡被设置为不同的网络类型的时候(一般是连接到新的局域网或插入新的网线,导致IP发生变化),就是会出现连不上的情况。一般做法是,全部给他设置为家庭网络。。。。
4)如果Windows远程桌面服务以前没有启用,是刚刚才启用的,那么需要重新启动一下电脑才能进行连接。
5)注意其它第三方防火墙的拦截。像金山的、360的等等。
6)另外还有种情况,就是那种第三方定制打包的XP安装盘,如雨木林风(ymlf)XP、电脑城装机XP,GhostXP等等什么一键安装的Windows系统,基本上都以安全为由,把远程桌面服务从系统里给砍掉了,导致系统的远程桌面服务完全不可用,即使从选项上开启了,仍然用不了远程桌面。某些第三方打包的Vista、Win7也是这样的情况。

(2)Win7、Windows 2008 中
第一步:在桌面“计算机”上点鼠标右键,选择“属性”。
第二步:在弹出的窗口中,从左边,选择“远程设置”。
第三步:在“远程”标签中找到“远程桌面”,选择“允许运行任意版本远程桌面的计算机连接(较不安全)”。
第四步:注意Windows防火墙中的例外“远程桌面”要生效。
重启系统后,具有管理员权限的用户就可以远程访问远程桌面了。

Serv-U 用户配置文件的加密与解密

摘要:先看ServU密码加密存储方法 首先随机生成2位字符(从a-z小写字符),再将用户原始密码与这2位随机字符合并成为新的密码字符。 如:用户原始密码为a,随机生成字符为dx,则合并后新的密码字符串为:dxa 再使用新密码字符串进行MD5Hash运算. dxa = F2319AE3B312103BB…

 

先看ServU密码加密存储方法
首先随机生成2位字符(从a-z小写字符),再将用户原始密码与这2位随机字符合并成为新的密码字符。

如:用户原始密码为a,随机生成字符为dx,则合并后新的密码字符串为:”dxa”
再使用新密码字符串进行MD5Hash运算.
dxa=F2319AE3B312103BB3259CA8242DD16C
然后再存储到ini文件,存储方法为2位随机字符加上新密码字符的MD5Hash值.
如下:
[USER=a|1]  Password=dxF2319AE3B312103BB3259CA8242DD16C

ServU密码破解方法:

除去前2位随机字符获得F2319AE3B312103BB3259CA8242DD16C
然后去查询MD5的网站上面查询F2319AE3B312103BB3259CA8242DD16C

查出来的密码前两位肯定是dx,把dx去掉即是真正的密码

服务器无法打开视频 | win2003不支持播放flv | 使服务器支持流媒体服务的解决办法

原因是由于服务器上没有.FLV的这种mime-type类型,对于这一点Adobe给出了它的解决方案。如下:

1. 在2003服务器上,找开IIS管理器。

2. 展开本地服务器名称,右击选择属性,在Internet信息服务标签上,点击最下方的计算机MIME映射下面的编辑按钮。

3. 点击”新类型”按钮,扩展名添上”.FLV”,内容类型(MIME)添上“flv-application/octet-stream”

4. 点击确定

5. 重新启动www服务。

尽管adobe提供了这种解决方法可以让.FLV工作,但仍会在许多情况下会出现意想不到的结果,仍会有许多.FLV不能正常的工作。下面有一种解决方法:前几步是一样的。

1. 在2003服务器上,找开IIS管理器。

2. 展开本地服务器名称,右击选择属性,在Internet信息服务标签上点击最下方的计算机MIME映射下面的编辑按钮。

3. 点击”新类型”按钮,扩展名添上”.FLV”,内容类型(MIME)添上”video/x-flv”

4. 点击确定

5. 重新启动www服务。

Ok.现在你可以正常在windows 2003 server 上使用你的流式的FLV了。

 

 

对于Apache来说,找到Apache安装目录下的conf/mime.types文档,在文件中进行添加即可。

fastcgi error 14001错误原因与解决办法

FastCGI Error
The FastCGI Handler was unable to process the request.
——————————————————————————–

Error Details:

Error Number: 14001 (0x800736b1).
Error Description: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。
HTTP Error 500 – Server Error.
Internet Information Services (IIS)

 

发生此错误的关键原因在于没有安装VC9运行库。Microsoft Visual C++ 2008 Redistributable Package (x86)下载地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn

文件不大,1.6M左右,安装后就能正常使用了。