【linux】gitlab和nginx冲突的解决方案

Continue Read..

vim /etc/gitlab/gitlab.rb

external_url = 'http://IP或域名'

unicorn['listen'] = '127.0.0.1'

unicorn['port'] = 3002

nginx['listen_addresses'] = ['*']

nginx['listen_port'] = 3001


如果修改了 external_url 

需修改/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml中 host 和 port

 

vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
listen "127.0.0.1:3002", :tcp_nopush => true



vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
listen *:3001;




改完之后
先关闭gitlab的ngxin服务
gitlab-ctl stop nginx

然后开启自己的nginx服务
service nginx start

然后启动gitlab的nginx服务
gitlab-ctl start nginx


gitlab的访问地址就是 http://127.0.0.1:3001/users/sign_in

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

CentOS 安装/升级Git 1.9.4

Continue Read..

因为yum源的最新版本是1.7.x,所以无法通过yum进行更新,下面描述如何通过编译源码进行安装

1.安装需要的依赖

第一步我们需要做的就是确认系统已经安装了编译git时需要的依赖。使用下面的安装命令即可(已经安装过的不会重新再安装)

yum install curl
yum install curl-devel
yum install zlib-devel
yum install openssl-devel
yum install perl
yum install cpio
yum install expat-devel
yum install gettext-devel
yum install gcc
yum install perl-ExtUtils-MakeMaker

当然,为了快速安装,你可以把上面命令写在一行中,一次执行

yum install crul curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc perl-ExtUtils-MakeMaker

2.下载Git

 cd /usr/src
 wget https://www.kernel.org/pub/software/scm/git/git-1.9.4.tar.gz
 tar xzf git-1.9.4.tar.gz

3.编译

cd git-1.9.4 autoconf
./configure
make
make install

运行autoconf命令时,如果终端提示no command的话就执行yum install autoconf命令后再试

4.重新指定git命令对应的版本

echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrcsource /etc/bashrc

不执行这一步将出现git版本仍然是升级前的

5.检查安装/升级后的版本是否正确

git --version

执行以上命令后应该显示

git version 1.9.4 

6.安装过程中可能遇到的问题

usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale' Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) <span class="goog_qs-tidbit goog_qs-tidbit-0">at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.

出现这个错误的原因是perl-ExtUtils-MakeMaker依赖没有安装成功,执行以下命令重新进行安装

yum install perl-ExtUtils-MakeMaker

crontab 唯一执行与超时

Continue Read..

参考:http://huoding.com/2016/12/12/573

唯一执行

假如上一分钟的 A 请求还没退出,下一分钟的 B 请求也启动了,那么 B 请求会发现 A 请求还没有释放锁,于是它不会执行。

flock -xn /tmp/lock /path/to/php /path/to/file

 

带超时的唯一执行

假如上一分钟的 A 请求还没退出,下一分钟的 B 请求也启动了,那么 B 请求会发现 A 的请求还没有释放锁,于是它不会执行,不过下下分钟的 C 请求肯定能执行,因为在这之前,A 请求已经因为超时被 timeout 干掉了

timeout -s SIGINT 100 flock -xn /tmp/lock /path/to/php /path/to/file

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【Linux】自己写一个shell脚本启动关闭自己的服务

Continue Read..

最近弄logstash 每次启动和关闭都特别麻烦,就弄了个脚本,感谢范明童鞋的帮忙(我七窍通了六窍)

不晓得写的对不对 反正 效果实现了~~~

 

vim  /cuzn/logstash-2.3.4/logssh

 

#!/bin/bash

#chkconfig:2345 85 15

LOGSTASH_DIR=/cuzn/logstash-2.3.4  #logstash绝对路径

LOGSTASH_CONF=$2                         #logstash 配置文件名

start(){

ps aux | grep -v grep | grep $LOGSTASH_CONF &> /dev/null

if [ "$?" != 0 ];then

echo "logstash is already running"

exit

fi

$LOGSTASH_DIR/bin/logstash -f vconf/$LOGSTASH_CONF &

if [ "$?" == 0  ];then

echo "logstash starting......OK"

else

echo "logstash starting......failed"

fi

}

stop(){

ps aux | grep -v grep | grep $LOGSTASH_CONF: &> /dev/null

#if [ $? -ne 0 ];then

# echo "logstash is already stop"

# exit

#fi

#kill -9 logstash

kill -9 $(ps -ef|grep $LOGSTASH_CONF|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')

if [ "$?" == 0  ];then

echo "logstash stop......OK"

else

echo "logstash stop......failed"

fi

}

status(){

ps aux | grep -v grep | grep logstash: &> /dev/null

if [ "$?" == 0  ];then

echo "logstash is running"

else

echo "logstash is stopped"

fi

}

case $1 in 

start)

start;;

stop)

stop;;

restart)

stop

start;;

status)

status;;

*)

echo "USAG:(start|stop|restart|status)";;

esac




启动方式  
logssh start xx.conf
logssh stop xx.conf

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【Linux】手动编译mysql 5.6

Continue Read..

之前都是用lnmp一键安装包 求省事  最近就尝试下自己手动编译

之前lnmp的包没有删  放在 /usr/local/mysql

启动命令是  service  mysql  start   

 

现在手动装新的mysql 5.6

预装一些东西

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

然后下载  安装编译

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz

tar xvf mysql-5.6.14.tar.gz

cd mysql-5.6.14

 

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysqlcuzn \

-DMYSQL_DATADIR=/usr/local/mysqlcuzn/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/var/lib/mysqlcuzn/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

 

make && make install

 

创建mysql 用户组和用户   因为之前做了一键安装的  这个已经存在了 我还是把代码贴出来

cat /etc/passwd 查看用户列表

cat /etc/group  查看用户组列表

给5.6的mysql  目录 分配 权限

chown -R mysql:mysql /usr/local/mysqlcuzn

 

然后进入  

cd /usr/local/mysqlcuzn

进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表

 

scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysqlcuzn --datadir=/usr/local/mysqlcuzn/data --pid-file=/usr/local/mysqlcuzn/data/mysql.pid --tmpdir=/tmp

 

 

添加服务,拷贝服务脚本到init.d目录,并设置开机启动

 

cp support-files/mysql.server /etc/init.d/mysqlcuzn   #这里 我吧服务改名字了 因为之前有一个mysql服务

chkconfig mysqlcuzn on

service mysqlcuzn start  --启动MySQL

 

因为我是改了路径的 所以 我要在  /etc/my.cnf  和/etc/init.d/mysqlcuzn里面 把所有路径都改成 mysqlcuzn

 

 

我启动的时候出现错误 

160608 11:28:49 mysqld_safe mysqld from pid file /usr/local/mysqlcuzn/data/localhost.localdomain.pid ended

处理办法   也是在网上找的 
1.查看 目录是否 mysql 权限
2.查看各个路径是否正确  
3.删除data目录下的 ib_logfile1 ib_logfile0  然后在重启服务

4. 重新初始化脚本 scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysqlcuzn --datadir=/usr/local/mysqlcuzn/data --pid-file=/usr/local/mysqlcuzn/data/mysql.pid --tmpdir=/tmp


点击查看原图

点击查看原图

 

 参考网址  http://www.cnblogs.com/xiongpq/p/3384681.html


声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【Nginx】linux centos 6.5 64位安装nginx

Continue Read..
linux系统为Centos 64位

第一步:从http://nginx.org/download/上下载相应的版本(或者wget http://nginx.org/download/nginx-1.9.9tar.gz直接在Linux上用命令下载)

第二步:解压 tar -zxvf nginx-1.9.9.tar.gz  进入 nginx-1.9.9

第三步:设置一下配置信息 ./configure --prefix=/usr/local/nginx ,或者不执行此步,直接默认配置

第四步:

make 编译 (make的过程是把各种语言写的源码文件,变成可执行文件和各种库文件)

make install 安装 (make install是把这些编译出来的可执行文件和库文件复制到合适的地方)


然后把 ngxin弄成服务 

 root用户执行  vi /etc/init.d/nginx ,保存如下脚本


#!/bin/sh 

# nginx - this script starts and stops the nginx daemon 

# chkconfig: - 85 15 

# description: Nginx is an HTTP(S) server, HTTP(S) reverse 

# proxy and IMAP/POP3 proxy server 

# processname: nginx 

# chkconfig: 2345 90 91

# description: nginx web server

# processname: nginx

# config: /usr/local/nginx/conf/nginx.conf

# pidfile: /usr/local/nginx/nginx.pid


# Source function library.

. /etc/init.d/functions


# Source networking configuration.

. /etc/sysconfig/network



if [ -f /etc/sysconfig/nginx ];then

. /etc/sysconfig/nginx

fi


# Check that networking is up. 

[ "$NETWORKING" = "no" ] && exit 0


nginx="/usr/local/nginx/sbin/nginx" 

prog=$(basename $nginx)


NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"


[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx


lockfile=/var/lock/subsys/nginx


start() { 

[ -x $nginx ] || exit 5 

[ -f $NGINX_CONF_FILE ] || exit 6 

echo -n $"Starting $prog: " 

daemon $nginx #-c $NGINX_CONF_FILE 

retval=$? 

echo 

[ $retval -eq 0 ] && touch $lockfile 

return $retval 

}


stop() { 

echo -n $"Stopping $prog: " 

killproc $prog -QUIT 

retval=$? 

echo 

[ $retval -eq 0 ] && rm -f $lockfile 

return $retval 

killall -9 nginx 

}


restart() { 

configtest || return $? 

stop 

sleep 1 

start 

}


reload() { 

configtest || return $? 

echo -n $"Reloading $prog: " 

killproc $nginx -HUP 

RETVAL=$? 

echo 

}


force_reload() { 

restart 

}


configtest() { 

$nginx -t #-c $NGINX_CONF_FILE 

}


rh_status() { 

status $prog 

}


rh_status_q() { 

rh_status >/dev/null 2>&1 

}


case "$1" in 

start) 

rh_status_q && exit 0 

$1 

;; 

stop) 

rh_status_q || exit 0 

$1 

;; 

restart) 

$1 

;; 

test) 

configtest 

;; 

reload) 

rh_status_q || exit 7 

$1 

;; 

force-reload) 

force_reload 

;; 

status) 

rh_status 

;; 

condrestart|try-restart) 

rh_status_q || exit 0 

;; 

*) 

echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|test}" 

exit 2

esac 




然后进入 /usr/local/nginx/conf  修改ngxin.conf  加入 include vhost/*.conf;

然后在/usr/local/nginx/conf里面新建vhost文件夹   新建  www.cuzn-t.com.conf



#upstream www.cuzn-t.com { 

#      server  192.168.31.223:80 weight=2; 

#      server  192.168.31.224:80 weight=1; 

#} 

server

    {

        listen 80;

        #listen [::]:80;

        server_name www.cuzn-t.com cuzn-t.com;

        index index.html index.htm index.php default.html default.htm default.php;

        root  /home/wwwroot/www.cuzn-t.com;


        error_page   404   /404.html;

        #include proxy-pass-php.conf;


        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

            expires      30d;

        }


        location ~ .*\.(js|css)?$

        {

            expires      12h;

        }


        location ~ /\.

        {

            deny all;

        }

        # location / { 

        #        proxy_pass         http://www.cuzn-t.com; 

        #        proxy_set_header   Host             $host; 

        #        proxy_set_header   X-Real-IP        $remote_addr; 

        #        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 

        #} 


        access_log  /home/wwwlogs/www.cuzn-t.com.log;

    }


声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【nginx】linux centos 6.5 64位 nginx负载均衡

Continue Read..

做这个的目的 就是为了服务器之前的负载均衡

目前有3台服务器

主 :192.168.31.222

从 :192.168.31.223

从:192.168.31.224

 

3台主机都绑定同一个域名  http://www.cuzn-t.com

 

流程 访问  192.168.31.222 时  服务器自动分配访问 223或者224的服务器

在主服务器里面加入配置文件

upstream www.cuzn-t.com {

      server  192.168.31.223:80 weight=2;

      server  192.168.31.224:80 weight=1;

}

server

    {

        listen 80;

        #listen [::]:80;

        server_name www.cuzn-t.com cuzn-t.com;

        #index index.html index.htm index.php default.html default.htm default.php;

        #root  /home/wwwroot/www.cuzn-t.com;

 

        #error_page   404   /404.html;

        #include proxy-pass-php.conf;

 

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

            expires      30d;

        }

 

        location ~ .*\.(js|css)?$

        {

            expires      12h;

        }

 

        #location ~ /\.

        #{

        #    deny all;

        #}

         location / {

                 proxy_pass         http://www.cuzn-t.com;

                 proxy_set_header   Host             $host;

                 proxy_set_header   X-Real-IP        $remote_addr;

                 proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

        }

 

        access_log  /home/wwwlogs/www.cuzn-t.com.log;

    }


在2个从服务器里面同样加上配置文件
server
    {
        listen 80;
        #listen [::]:80;
        server_name www.cuzn-t.com;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/www.cuzn-t.com;

        #error_page   404   /404.html;
        include proxy-pass-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/y.log;
    }



然后重启3台服务器的 nginx服务

分别在   223 和 224的/home/wwwroot/www.cuzn-t.com下面加入一个index.html  为区分  分别写 223 和224


这个时候访问  服务器就按权重指定访问 不同的服务器  刷新页面即可以看到效果

 

下面测试宕机的情况  因为是虚拟机  直接关闭223的nginx服务器  这个时候 访问的就是224的服务器

 

这个是最简单的 nginx  负载均衡 

 

参考网站

http://www.php100.com/html/program/nginx/2013/0905/5525.html

http://www.php100.com/html/program/nginx/2013/0905/5525.html

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【Linux】解决VMware在Windows 7上桥接模式下无法上网的问题

Continue Read..
在windows 7 上安装了VMware Workstaion 7,但发现使用桥接网络时,不能正常上WEB,但可以PING通公网IP地址或使用FTP等协议,就是不能DNS解析。(但如果和物理网络是NAT的关系,是可以正常的与INTERNET通讯的)。
在网上查到了芭这个解决方法,试后,果然不错。同时有的说是通过替换一个文件,但我测试的并不可行。
转载来,分享给大家。感谢原作者!!如果你有不错的解决方法,请提供并讨论。
最近系统升级到了Windows 7,用了几天都很好,没有什么问题。但是在运行VMware虚拟机的时候问题出现了,虚拟机中无法上网。于是Google之,解决问题。
网上虽然有解决方法,但是介绍的不是很详细,起码我第一遍没有看懂,而且找了十几个网址内容都是一模一样的,连图片都没有变。
在Vista上运行VMware虚拟机使用的是NAT方式上网,到了Windows 7中就不行了。在网络和共享中心里面看了一下,原来是VMware创建的虚拟连接被归为了公用网络,无法连接到Internet。家庭网络是可以连接到Internet的,于是我尝试将VMware的虚拟连接移至家庭网络,但是无果而终,没有什么办法。

于是上网Google一下,找到解决方案。虽然都是网上的方法,并非我原创,但是我将把它介绍的更为具体详细。
首先打开Windows 7的网络和共享中心,然后点左边的更改适配器设置,你会看到两个由VMware创建的虚拟连接,找到VMnet1,记住它的连接名称(我的为本地连接2)。

然后右击你当前使用中的连接(比如我使用的是无线网络连接)选择属性,把全部的钩都打上,然后在家庭网络连接中选择VMnet1连接的名字(比如我的是本地连接2)。就像这样:

接着选择VMnet1连接,选择属性,双击Internet协议版本4,手动设置IP地址,默认的为192.168.137.1,这样就可以了。注意不要和你当前使用的连接在同一个网段内。
主机上的设置就完成了。运行虚拟机,我安装的虚拟机为Windows XP,像刚才那样设置虚拟机中的当前使用中的连接,我的为本地连接,将IP地址设置为同主机的VMnet1的IP统一网段,192.168.137.2就可以,子网掩码使用默认,网关设置成VMnet1的地址,就是我刚才的192.168.137.1,另外DNS可以自行设置,也可以使用我使用的202.102.154.3。
最后选择虚拟机的设置,将Network Adapter设置为Host-Only,如图:

好了,这样就可以在虚拟机中上网了。
另外,我发现VirtualBox创建的虚拟连接同样被归为了公用连接无法连接Internet,所以VirtualBox应该和VMware一样在Windows 7下遇到麻烦,可以效仿VMware的方法为VirtualBox设置Internet连接。

【linux】svn从1.6升级到1.8

Continue Read..
步骤1
vim /etc/yum.repos.d/wandisco-svn.repo
[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0

步骤2
yum remove subversion*

步骤3
 yum clean all
 yum install subversion
 
 查看 svn 版本
 svn --version
 
 
 svn 升级到1.8 以后  在项目所在的根目录 执行
 svn upgrade  就OK了
 
 chmod -R go-rwx .svn/


<Directory ~ "\.svn">

Order allow,deny

Deny from all

</Directory>



location ^~ /.svn/{

deny all;

}

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权

【Linux】contos6.5源码安装mysql

Continue Read..

首先去mysql官网下载 一个源码安装包  一定要源码的  不是rpm的 

http://dev.mysql.com/downloads/mysql/   再次强调 下源码  

一、编译安装MySQL前的准备工作

安装编译源码所需的工具和库

yum install gcc gcc-c++ ncurses-devel perl 

 

安装cmake,从http://www.cmake.org下载源码并编译安装

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz   

tar -xzvf cmake-2.8.10.2.tar.gz   

cd cmake-2.8.10.2   

./bootstrap ; make ; make install

 

二、设置MySQL用户和组

新增mysql用户组

groupadd mysql 

useradd -r -g mysql mysql  

 

三、新建MySQL所需要的目录

新建mysql安装目录

mkdir -p /usr/local/mysql 

新建mysql数据库数据文件目录

mkdir -p /usr/local/mysql/data

 

 

四、下载MySQL源码包并解压

tar -zxv -f mysql-5.6.16.tar.gz  

cd mysql-5.6.16

 

五、编译安装MySQL

从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本。

 

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all   -DENABLED_LOCAL_INFILE=1

 

make

 

make install

 

 

六、修改mysql目录所有者和组

修改mysql安装目录

chown -R mysql:mysql  /usr/local/mysql 

chown -R mysql:mysql  /usr/local/mysql/data 

 

七、初始化mysql数据库

cd /usr/local/mysql   

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

 

八、复制mysql服务启动配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf  

注:如果/etc/my.cnf文件存在,则覆盖。

 

九、启动mysql服务并加入开机自启动(可选这个步骤,以后可以自己启动的)

cp support-files/mysql.server /etc/init.d/mysqld   

vim /etc/profile   

PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH  

export PATH 


#查看  echo $PATH


service mysqld start 

chkconfig --level 35 mysqld on

 

 

 

 

十、检查mysql服务是否启动

netstat -tulnp | grep 3306   

mysql -u root -p 

 

默认密码是空 如果报错的话  

参考网址  http://www.cnblogs.com/visi_zhangyang/archive/2012/03/05/2380531.html

 

 

方法: 修改/etc/my.conf:

[mysqld] 

datadir=/usr/local/mysql/data 

socket=/var/lib/mysql/mysql.sock 

 

[mysql.server] 

user=mysql 

basedir=/usr/local/mysql 

 

If there is not currently a section called [client], add one at the bottom of the file and copy the socket= line under the [mysqld] section such as: 

 

[client] 

socket=/var/lib/mysql/mysql.sock 

 

/usr/local/mysql/bin/mysql -u root -p -S /tmp/mysql.sock

 

 

修改 mysql root密码  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

 

 

参考网址   http://blog.csdn.net/wendi_0506/article/details/39478369

 

声明:此文系舞林cuznwww.wulinlw.org)原创稿件,转载请保留版权