Git推送文件自动部署到服务器上

git使用的用户和用户组是:git:git
需要给git增加使用root权限且不用密码

编辑 /etc/sudoers
注释掉

#Defaults requiretty

在最后增加

git ALL=(ALL) NOPASSWD: ALL

因为网站是在www用户组下运行,需要git能操作www的文件
把git加入了www用户组中

usermod -a -G www git

继续阅读“Git推送文件自动部署到服务器上”

Centos设置git和gitosis

安装好git和gitosis后,开始设置仓库及用户
在本地机打开git bash,输入命令生成密匙

ssh-keygen -t rsa

直接都回车,不需要设置密码
生成的文件在 C:\Users\[用户名]\.ssh 里,私匙id_rsa,公匙id_rsa.pub
在C:\Users\[用户名]\.ssh 里创建config文件,在里面写上

Host mygitserver
Hostname [服务器ip]
User git
IdentityFile C:\Users\[用户名]\.ssh\id_rsa

用pscp或winscp将公匙id_rsa.pub上传到服务器 /tmp/ 里

服务器上新建git用户

adduser -m git

切换到git用户

su git

初始化gitosis

gitosis-init < /tmp/id_rsa.pub

#Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
#Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
显示以上信息即表示成功

新建并初始化仓库yumena

cd /home/git/repositories
mkdir yumena.git
cd yumena.git
git init --bare

推出git用户

exit

在本地机上导出管理

git clone mygitserver:gitosis-admin.git

添加新git密钥用户yumena和项目yumena信息
再生成一对密匙,私匙yumena和公匙yumena.pub,把生成后的密匙改下名字就可以
将生成的公匙yumena.pub放到gitosis-admin/keydir中
修改gitosis.conf文件
在文件尾增加以下内容

[group yumena] #组名称
writable = yumena #仓库名称
members = yumena #密钥用户名

提交修改

git add .
git commit -a -m "add yumena repo"
git push

修改C:\Users\[用户名]\.ssh\config文件,在尾部增加

Host git-yumena
Hostname [服务器ip]
User git
IdentityFile C:\Users\[用户名]\.ssh\yumena

克隆项目yumena

git clone git-yumena:yumena.git

可以进行正常的项目管理了

CentOS安装git和gitosis

安装git
先安装git需要的环境

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

下载git-1.9.0.tar.gz 到 /usr/local/src
下载网址http://code.google.com/p/git-core

解压和安装

cd /usr/local/src
tar -zvxf git-1.9.0.tar.gz
cd git-1.9.0

make prefix=/usr/local/git all
make prefix=/usr/local/git install

#增加软连接
ln -s /usr/local/git/bin/* /usr/bin/

git --version

#如果能显示版本号,即表示成功

安装gitosis
安装gitosis需要的环境

yum install python python-setuptools

安装

cd /usr/local/src
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install

#显示Finished processing dependencies for gitosis==0.2即表示成功

apache2.4设置开启gzip

在apache 2.4中开启gzip
修改apache配置文件httpd.conf
将下面两句前的#去掉

LoadModule deflate_module modules/mod_deflate.so
LoadModule filter_module modules/mod_filter.so  

再在http.conf最后加上下面配置

<IfModule deflate_module>
SetOutputFilter DEFLATE
DeflateCompressionLevel 9

#下面是设置那些请求不进行压缩
#SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
</IfModule>

重启apache,即开启gzip

CentOS配置apache mod_php php-fpm

先创建网站的根目录,作为测试,把apache默认的目录文件复制过来

 cp -r /var/www /home/www

配置apache
修改安全设置,让selinux允许apache网站目录设置在home里,如果网站目录不放在home里就不用设置了

setsebool -P httpd_enable_homedirs on

-P 参数是把设置写入配置文档,以后将为修改后状态运行
可以使用 getsebool 命令来获取当前设置状态

getsebool httpd_enable_homedirs

可以用 getsebool -a |grep httpd 命令查看更多规则,进行修改

编辑apache配置文件 /etc/httpd/conf/httpd.conf

修改网站根目录
将     DocumentRoot “/var/www/html”
改为  DocumentRoot “/home/www/html”

将     <Directory “/var/www/html”>
改为  <Directory “/home/www/html”>

在往下几行
将     AllowOverride None
改为  AllowOverride All

在文件的最后加上
Include vhost.d/*.conf

用来放VirtualHost的配置文件
保存
继续阅读“CentOS配置apache mod_php php-fpm”

CentOS安装nginx apache mysql php

在CentOS安装nginx、apache、mysql、php,真是一遍遍的折腾啊
趁着搞完这会,写篇笔记备忘

新装的系统  CentOS 6.4 x64 minimal

换一个国内的源,比如163的,这样安装速度会快一些
先安装下载软件wget

yum install wget

备份原始源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

下载163的源

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

安装第三方源,因为一些软件默认源里没有,比如nginx,mod_fastcgi等,根据系统选择
安装RepoForge源

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

#i386
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

#x86_64
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

安装epel源

#i386
rpm -Uvh http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm

#x86_64
rpm -Uvh http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

更新缓存和软件到最新版本,包括系统软件

yum makecache
yum -y update

继续阅读“CentOS安装nginx apache mysql php”

编译时出现错误/usr/bin/ld: cannot find -lltdl

在CentOS编译PHP时出现错误
/usr/bin/ld: cannot find -lltdl

通常在编译时出现的 /usr/bin/ld: cannot find -lxxx 错误,主要的原因是库文件并没有导入到 ld 检索目录中
其中xxx即表示函式库文件名称,其命名规则是:lib+库名(即xxx)+.so
可以谷歌搜索libxxx寻找相关的库并安装

我在安装php时出现 /usr/bin/ld: cannot find -lltdl
通过搜索libltdl,了解到需要安装 libtool
安装 libtool-ltdl
可在 http://ftp.gnu.org/gnu/libtool/ 找到需要的版本

下载并安装

wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz
tar -zxvf libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure
make
make install

创建符号链接

ln -s  /usr/local/lib/libltdl.so /usr/lib/libltdl.so

完成,再次编译PHP,问题解决