[原创]Git版本控制系统安装使用简明手册(网站开发用)

一、Linux服务器端

1、创建git账号

mkdir -p /myweb/user
groupadd git
useradd git -g git -m -s /usr/bin/git-shell -b /myweb/user

2、安装git

yum install git

3、创建git空版本库

cd /myweb
git init --bare git

4、创建或迁移网站目录

git clone /myweb/git /myweb/www
cp /原代码目录/* /myweb/www/
cd /myweb/www
git add *
git commit -m "创建项目"
git push origin master

5、设置网站钩子(提交代码到git版本库后,自动拉取到网站目录)

cd /myweb/git/hooks
mv post-update.sample post-update
sed -i "s/exec/#exec/" post-update
echo "unset \$(git rev-parse --local-env-vars)" >> post-update
echo "cd /myweb/www" >> post-update
echo "git pull" >> post-update

6、修改git库及网站目录权限

chown git:git /myweb/git -R
chown git:git /myweb/www -R

7、创建登录密钥(也可以在Windows中用puttygen来创建)

ssh-keygen -C mygitserver -f mykey

出现提示后,如果需要密码,输入密码,如是不需要密码,回车即可,再次确认后,密钥对创建成功。其中当前目录下的mykey(你的私钥)文件请一定要妥善保管,千万不能留在服务器上,下载保存后从服务器中删除。公钥添加到服务器中。

mkdir /myweb/user/git/.ssh
mv mykey.pub /myweb/user/git/.ssh/authorized_keys
chown git:git /myweb/user/git/.ssh -R
chmod 700 /myweb/user/git/.ssh
chmod 600 /myweb/user/git/.ssh/authorized_keys

几个注意事项:

  • 以上操作中的git用户名、mykey文件名、myweb目录、/myweb/www网站目录等,均可根据自己习惯用其他名称。
  • 网站服务nginx/apache及php的运行用户,设置成git会更加方便,不会有权限问题(安全性要求高的网站不在此考虑)。
  • 如在服务器的网站目录/data/www下运行git pull/push命令,一定要在运行完命令之后,再次更改git库及网站目录权属,具体命令见上面步骤6。

二、Git客户端使用方法

1、安装git客户端

Windows系统下的图形客户端,建议用TortoiseGit,注意中文包需要单独下载。

2、将前面生成的私钥导入到客户端

  • Linux系统、Windows系统的Git Bash方式(命令行操作):
mkdir ~/.ssh
cp mykey ~/.ssh/id_rsa
  • Windows系统中TortoiseGit图形界面(两种密钥使用方法):

方式一:安装时默认选择的是putty方式的密钥,需要用安装TortoiseGit时带的puttygen工具,将mykey文件导入,再点击“Save private key”导出为ppk文件。使用TortoiseGit时,导入此密钥文件即可。

方式二:安装时手动选择OpenSSH方式的密钥,按上面Git Bash的方式导入mykey密钥即可在TortoiseGit中自动调用上述密钥。

3、从服务器克隆项目

  • Linux系统、Windows系统的Git Bash方式(命令行操作):
git clone ssh://git@服务器IP:端口号/myweb/git /本地路径
  • Windows系统中TortoiseGit图形界面:

在文件夹中右键:克隆,地址同上。

小常识:密钥

密钥登录是Linux服务器管理中常用的一种登录方式。密钥为一对,分公钥和私钥,公钥放在服务器上,私钥妥善保存在自己电脑中。类似于生活中的锁和钥匙,用自己的锁锁住的门,只有自己手里的钥匙才能打开。不用担心,计算机生成的密钥对不会有相同的情况,这种机率只存在于理论中。

不让smplayer保存播放记录

发现不让smplayer保存播放记录的一个方法:

打开smplayer的配置文件(~/.config/smplayer/smplayer.ini),将[history]段中默认的

recents\max_items=10

改成

recents\max_items=0

就行了。再打开smplayer,你会发现,在“打开”中,连播放记录的菜单都没有了。

mplayer/smplayer使用摄像头

最近gentoo中的vlc版本升级到2.2.4之后,始终编译不成功,于是想换回smplayer。

原来换成vlc是因为vlc默认就可以使用摄像头,不用安装摄像头软件。因此,使用了一段时间,感觉还不错,但有一个问题就是快进,必须用Alt/Shift/Ctrl键+箭头才行,不如smplayer直接用箭头控制简单。这也是想换回smplayer的一个原因。

重新安装smplayer之后,首先想到的是解决使用摄像头的问题。smplayer依赖的mplayer加上v4l的use之后,按照mplayer官方说法(下面命令),把v4l换成v4l2,始终无法成功。

mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://

后来搜索到一个说法,比这个简单,不用加那么多参数,经过测试,直接用以下命令就可以播放。

mplayer tv:// -tv driver=v4l2

既然mplayer可以播放了,那smplayer自然也就没问题,可以在smplayer中的URL或电视模式中使用此参数播放。

smbclient、mount共享目录及开机挂载共享目录

最近plasma5更新太频繁,许多功能虽然不断完善,越来越好用,但小问题也层出不穷。比如dolphin访问windows共享目录,时好时坏。

正常情况下,dolphin中输入:smb://192.168.1.1即可访问windows共享目录,但最近几次更新中,出现登录窗口,始终无法登录。

既然dolphin无法直接使用,于是想到可以终端访问共享目录或挂载共享目录来使用。搜索了一下,可以通过以下方法实现:

一、直接使用smbclient在终端访问共享目录(非root用户可用)

1、列目录:

mbclient -L 192.168.1.1 -U 用户名%密码

2、登录上去使用:

smbclient //192.168.1.1 -U 用户名%密码

这时,可以使用cd、get、put等来操作。

3、不登录,直接命令操作

smbclient -c "ls"  //192.168.1.1/共享目录  -U 用户名%密码

二、挂载共享目录(需要root操作),用dolphin访问

mount -t cifs -o username=用户名,password=密码 //192.168.1.1/共享 /home/linux/共享

可以将此命令写到脚本中,再写一个umount的脚本,有需要时挂载/卸载。我就使用的这种方法,非常灵活。

三、添加到/etc/fstab中(需要root操作),开机挂载

//192.168.1.1/共享 /home/linux/共享 cifs username=用户名,password=密码 0 0

根据自己情况,选择合适的方式来使用吧。

gentoo安装krita

Krita是Calligra Suite(原Koffice)套件之一,貌似现在有单飞的趋势^-^

最近发布了3.0版本,发布公告如下(又有新发现:Wordpress贴个链接,可以直接把原文引过来了):

Krita 3.0 Released

Gentoo unstale作为一个激进版本,自然很快跟进,果然没几天,官方源原来mask掉的2.9版本,更新到了3.0,另外,kde的overlay也更新了9999版本(git版)。

虽然可以使用Krita官方的AppImages来运行,但作为Gentooer,不编译的版本用着不爽,很方便,直接emerge就行了。

emerge -av krita

当然,我安装的是git版本的:3.1 Alpha。

echo "=media-gfx/krita-9999 **" >> /etc/portage/package.keywords;emerge krita

不过,有个问题,emerge安装的Krita没有中文化,查了半天kde的文档,也没找到如何解决(英语水平太差了)。

看到Krita的Windows版本有部分中文界面(中文化不完整),说明Linux下也应该可以,于是,把官方的AppImages下载下来,用官方工具解压出来,才知道kde的菜单中文化原则:直接把mo文件放到/usr/share/locale/zh_CN/LC_MESSAGES/目录就行了!

于是,把krita.appdata.mo和krita.mo这两个文件放到上述目录,点击“Settings”->“Switch Application Language”,把“Primary language”设置成“简体中文”,再重新打开Krita,看到的是这样的了:

Screenshot_20160609_061616

升级WordPress

WordPress一直提示升级,拖了很久了,今天抽空升级了。

现在是WordPress-4.5.2跑在Nginx-1.10.0 + MariaDB-10.1.14 + PHP-7.0.6组合的服务器上,全部是最新版本了。

直接在服务器上操作很简单:

1、下载新版本的WordPress,解压。

2、将旧版本中的文件和目录复制到新版中,主要是:wp-config.php文件和wp-content目录,cp到新目录即可,需要注意的是uploads目录的权限。

3、有需要升级的插件,重新从WordPress下载插件,解压后,放到插件目录。

4、网页打开http://博客地址/wp-admin/upgrade.php,升级数据库。

升级完成后,登录后台,可能还会有升级提示,比如:翻译更新。搜索了一下,用了个简单粗暴的方法:

define('DISALLOW_FILE_MODS',true);

添加到wp-config.php文件中即可。

来源:http://www.wpmee.com/disable-plugin-theme-updates-installation-wordpress/

gentoo设置单个软件编译的CFLAGS参数和patches

[20160510]最新:gcc-5.3编译wine已修复。

gentoo升级到gcc-5.3后,编译最新的wine,始终有问题(详见:https://bugs.gentoo.org/show_bug.cgi?id=574044)。

这是gcc-5.3的一个bug,一直没有修复,解决办法无非是给gcc或者wine打补丁,上述链接中也给出了这两种方案。

给wine打补丁,每次wine版本升级之后,需要重新打,比较麻烦,原来我一直这样做。

直接给gcc打补丁,也比较麻烦,后来有人给出了一个傻瓜式方案,简单的多了:

sudo mkdir -p /etc/portage/patches/sys-devel/gcc-5.3.0
curl https://574044.bugs.gentoo.org/attachment.cgi?id=428646 | sudo tee /etc/portage/patches/sys-devel/gcc-5.3.0/wine-fix.patch 
sudo emerge -1 gcc-5.3.0
sudo emerge -1u wine

这样,wine就可以直接安装了。

但是这样做还有一个问题,编译出来的wine,运行QQ的话,还是不行,打开后会直接崩溃。yuking说是编译参数CFLAGS的问题,不能用O2,必须用O0才行,有人遇到过这个问题。

因此,编译wine时,需要将CFLAGS修改为O0。每次编译时都去修改,也比较麻烦。后来搜索出了一个单独给软件设置参数的方法:

sudo mkdir /etc/portage/env
sudo echo "CFLAGS=\"-O0 -march=native -fomit-frame-pointer -pipe\"" > /etc/portage/env/wine
sudo echo "=app-emulation/wine-9999 wine" > /etc/portage/package.env
sudo emerge -1u wine

当然,上面有些参数根据你的实际情况填写。

本博客现在已经运行在PHP7上了

最近这一段时间都在折腾PHP7,组合是最新的Nginx1.9.9+MariaDB10.1.10+PHP7.0.2,成果:

1、Windows下做了一个WNMP一键包:Nginx+MariaDB+PHP,下载地址:http://pan.baidu.com/s/1o87t90m

2、分别在Debian Jessie(Debian8)和CentOS7下成功编译了Nginx+MariaDB+PHP环境,树莓派版下载地址:http://pan.baidu.com/s/1dEuTU9r

3、博客的VPS也全面换成了编译安装的上述组合,感觉打开页面是不是快了些?

有时间把过程写一写,中间遇到了若干问题,好在都一一解决了。

Gentoo+kde5共享网络设置

需求:

1、电脑连接有线网络,把无线网络共享给手机或其他电脑(这个需求最常见);

2、电脑连接无线网络,用网线共享网络给其他电脑上网(这几天玩树莓派产生的需求);

3、电脑连接无线网络,再把无线网络共享给手机或其他电脑(不要想了,这个还没琢磨出来)

前两个需求,在Gentoo+kde5环境下实现非常简单,按以下三步操作即可:

1、添加use,安装软件:

echo "net-wireless/wpa_supplicant ap p2p" >> /etc/portage/package.use/wpa_supplicant
echo "net-misc/networkmanager connection-sharing" >> /etc/portage/package.use/networkmanager
emerge -av networkmanager wpa_supplicant

加上use后,会自动安装依赖:dnsmasq和iptables。

2、设置系统转发,修改/etc/sysctl.conf:

net.ipv4.ip_forward = 1

3、“连接编辑器”中添加共享连接:

需求1,添加无线共享:①WiFi->模式->接入点;②IPv4->方法->与其他计算机共享;③密码和SSID等项目自行添写。

需求2,添加有线共享:①IPv4->方法->与其他计算机共享;②其他项目自己看着添写。

对了,还有一点非常重要,内核中添加相应iptables转发的模块!这是我的config文件(下载,64位联想昭阳E4430,支持蓝牙、读卡器、无线网卡等),仅供参考。

Gentoo安装php7

昨天php7正式发布了,今天发现Gentoo官方源里面已经有了php7的ebuild,于是安装尝试一下。安装过程如下:
1、解除php7的mask状态:

echo "dev-lang/php" >> /etc/portage/package.unmask

2、添加全局use:

echo 'PHP_TARGETS="php7-0"' >> /etc/portage/make.conf

3、编译安装:

emerge php

4、设置php版本为7

eselect php set fpm 2

5、现在是php7与php5共存,有两个命令还是指向php5的,改成php7

rm /usr/bin/phpize
ln -s /usr/lib64/php7.0/bin/phpize /usr/bin/phpize
rm /usr/bin/php-config
ln -s /usr/lib64/php7.0/bin/php-config /usr/bin/php-config

6、启动php

systemctl start php-fpm@7.0.service

发现有出错信息,查看一下,原来是默认日志路径有问题(估计Gentoo官方很快会修复),改一下:

/etc/php/fpm-php7.0/php-fpm.conf

中的

;error_log = log/php-fpm.log

去掉前面的;,并且改成

error_log = /var/log/php-fpm.log

7、再次启动,成功!

第 1 页,共 48 页12345...102030...最旧 »