龚哥哥 - 山里男儿 爱生活、做自己!
CentOS安装memcached服务
发表于 2015-8-31 | 浏览(4959) | 服务器

1;yum安装

yum -y install memcached

2;验证是否安装成功,如果输出一些帮助信息表示安装成功

memcached -h

3;将memcache加入启动列表

chkconfig --level 2345 memcached on

4;配置Memcache

vi /etc/sysconfig/memcached
文件中内容如下
PORT=”11211″ 端口
USER=”root” 使用的用户名
MAXCONN=”1024″ 同时最大连接数
CACHESIZE=”64″ 使用的内存大小
OPTIONS=”" 附加参数

5;启动memcached

启动:service memcached start
关闭:service memcached stop
重启:service memcached restart

加入系统启动项
  echo "service memcached start" >> /etc/rc.local 

6;分配空间(11211 端口号可以自定义设置)

memcached -p 11211 -m 512 -d -u root start

7;连接memcached

telnet 121.199.44.203 11211

阅读全文

php安装memcache和memcached扩展
发表于 2015-8-31 | 浏览(5404) | 服务器

安装php memcache

wget http://pecl.php.net/get/memcache-3.0.6.tgz
tar -zxvf memcache-3.0.6.tgz
cd memcache-3.0.6
/data/soft/php/bin/phpize (如果不知道phpize在什么位置,可以用find / -name phpize查找)
./configure –enable-memcache –with-php-config=/data/soft/php/bin/php-config –with-zlib-dir
make
make install

记录下安装成功后的提示,类似于:
Installing shared extensions: /data/soft/php/modules/
把这个地址记录下来

在php.ini文件里面添加扩展

vim /data/soft/php/bin/php.ini
添加 extension=memcache.so

最后验证一下是否安装完成

php -m|grep memcache
应该会显示memcache

到这里php memcach安装完成

安装php memcached扩展

1、先安装 memcached 依赖库 libmemcached

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached
make
make install

现在安装php memcached扩展

wget http://pecl.php.net/get/memcached-2.2.0.tgz
tar -zxvf memcached-2.2.0.tgz
cd memcached-2.2.0
/data/soft/php/bin/phpize
./configure --enable-memcached --with-php-config=/data/soft/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl

在php.ini文件里面添加扩展

vim /data/soft/php/bin/php.ini
  添加 extension=memcached.so

最后验证一下是否安装完成

php -m|grep memcached
应该会显示memcached

到这里php memcachd安装完成

阅读全文

CentOS和Linux使用crontab运行定时任务(做一些你想做的)
发表于 2015-8-31 | 浏览(5406) | 服务器

安装crontab:

yum install crontabs

说明:

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv

加入开机自动启动

chkconfig –level 35 crond on

1、crontab 命令

功能说明:设置计时器。
语  法:crontab [-u <用户名称>][配置文件] 或crontab [-u <用户名称>][-elr]
补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command

参  数:
-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

2、crontab 格式

基本格式:
* * * * *  command
分 时 日 月 周  命令
第1列表示分钟1~59 每分钟用*或者*/1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

# Use the hash sign to prefix a comment
# +—————- minute (0 – 59)
# | +————- hour (0 – 23)
# | | +———- day of month (1 – 31)
# | | | +——- month (1 – 12)
# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed

crontab文件的一些例子:

30 21 * * * /etc/init.d/nginx restart
每晚的21:30重启nginx。

45 4 1,10,22 * * /etc/init.d/nginx restart
每月1、10、22日的4 : 45重启nginx。

10 1 * * 6,0 /etc/init.d/nginx restart
每周六、周日的1 : 10重启nginx。

0,30 18-23 * * * /etc/init.d/nginx restart
每天18 : 00至23 : 00之间每隔30分钟重启nginx。

0 23 * * 6 /etc/init.d/nginx restart
每星期六的11 : 00 pm重启nginx。

* */1 * * * /etc/init.d/nginx restart
每一小时重启nginx

* 23-7/1 * * * /etc/init.d/nginx restart
晚上11点到早上7点之间,每 隔一小时重启nginx

0 11 4 * mon-wed /etc/init.d/nginx restart
每月的4号与每周一到周三 的11点重启nginx

0 4 1 jan * /etc/init.d/nginx restart
一月一号的4点重启nginx 

*/30 * * * * /usr/sbin/ntpdate 210.72.145.20
每半小时同步一下时间

阅读全文

MySQL mysql-5.1升级到mysql-5.6
发表于 2015-8-31 | 浏览(5552) | 数据库

查看是否有旧版本mysql

rpm -qa|grep mysql

CentOS卸载旧版本mysql

yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /data/soft/mysql/*
rm /etc/my.cnf.rpmsave

删除mysql服务
  chkconfig --list | grep -i mysql
  chkconfig --del mysql

删除分散mysql文件夹
  whereis mysql 或者 find / -name mysql

安装cmake

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap
gmake
gmake install

下载mysql安装包进行安装

wget http://dev.mysql.com/get/archives/mysql-5.6/mysql-5.6.11.tar.gz
tar zxvf mysql-5.6.11.tar.gz
cd mysql-5.6.11
cmake . -DCMAKE_INSTALL_PREFIX=/data/soft/mysql -DMYSQL_DATADIR=/data/dbdata -DSYSCONFDIR=/data/soft/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DWITH_DEBUG=0 -DMYSQL_TCP_PORT=3306 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=yes
make
make install

生成配置文件链接

cp /data/mysql/support-files/my-default.cnf /data/mysql/my.cnf
cp /data/mysql/support-files/my-default.cnf /etc/my.cnf

修改$PATH生成文件

修改$PATH生成文件
vim /etc/profile

最后一行加上
PATH=$PATH:/data/soft/mysql/bin
这样MySQL的命令行软件就可以直接使用了

复制mysql的服务shell文件

cp /data/soft/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

创建MySQL系统数据库

/data/soft/mysql/scripts/mysql_install_db --user=mysql --basedir=/data/soft/mysql --datadir=/data/dbdata

开启MySQL服务

service mysqld start

设置MySQL开机启动

echo "service mysqld start" >> /etc/rc.local

到这里mysql安装完成了, 我们开始使用客户端连接mysql

如果报错:
  SQL Error (1130): Host 'ip' is not allowed to connect to this MySQL server

首先按下面的步骤登录Mysql服务器

登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:

#mysql -uroot -ppassword
mysql>use mysql;

mysql>update user set host = '%'  where user ='root';

mysql>flush privileges;

mysql>select 'host','user' from user where user='root';

mysql>quit
OK。远程连接成功!

阅读全文

CentOS_6.5安装Nginx+PHP+MySQL
发表于 2015-8-31 | 浏览(6702) | 服务器

准备工作

yum -y install automake autoconf libtool make gcc gcc-c++ libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl-devel

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

可以是任何目录,本文选定的是/data/soft/src

一:Nginx安装

cd /data/soft/src

1.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /data/soft/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure
make
make install

2.安装zlib库

http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /data/soft/src
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

3.安装ssl(某些vps默认没装ssl)

cd /data/soft/src
wget http://www.openssl.org/source/openssl-1.0.2e.tar.gz
tar -zxvf openssl-1.0.2e.tar.gz
./config
make && make install
cp apps/openssl /usr/bin/

4.安装nginx

cd /data/soft/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --sbin-path=/data/soft/nginx/nginx \--conf-path=/data/soft/nginx/nginx.conf \--pid-path=/data/soft/nginx/nginx.pid \--with-http_ssl_module \--with-pcre=/data/soft/src/pcre-8.38 \--with-zlib=/data/soft/src/zlib-1.2.8 \--with-openssl=/data/soft/src/openssl-1.0.2e
make
make install

安装成功后 /data/soft/nginx 目录下如下:
  fastcgi.conf            koi-win             nginx.conf.default
  fastcgi.conf.default    logs                scgi_params
  fastcgi_params          mime.types          scgi_params.default
  fastcgi_params.default  mime.types.default  uwsgi_params
  html                    nginx               uwsgi_params.default
  koi-utf                 nginx.conf          win-utf

5.启动

确保系统的 80 端口没被其他程序占用,运行/data/soft/nginx/nginx 命令来启动 Nginx,

netstat -ano|grep 80
如果查不到结果后执行,有结果则忽略此步骤
sudo /usr/local/nginx/nginx

打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

到这里nginx就安装完成了,如果只是处理静态html就不用继续安装了,如果你需要处理php脚本的话,还需要安装php-fpm。

6.Nginx开机启动

echo "/data/soft/nginx/sbin/nginx" >> /etc/rc.local

二:编译安装php-fpm

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以到这里查看:http://www.php.net/manual/en/configure.about.php

1.php-fpm安装(推荐安装方式)

cd /data/soft/src
wget http://museum.php.net/php5/php-5.4.7.tar.gz
tar zvxf php-5.4.7.tar.gz
cd php-5.4.7
./configure --prefix=/data/soft/php --enable-fpm --with-mcrypt \--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --enable-pdo --enable-ftp --with-pdo_sqlite --with-openssl=/usr/local/ssl/ --with-pdo_mysql
make && make install

2.以上就完成了php-fpm的安装

下面是对php-fpm运行用户进行设置
cd /data/soft/php
cp etc/php-fpm.conf.default etc/php-fpm.conf

vi etc/php-fpm.conf
修改
  user = www
  group = www

  如果www用户不存在,那么先添加www用户
    groupadd www
    useradd -g www www

3.修改nginx配置文件以支持php-fpm

修改nginx配置文件为,nginx.conf
其中server段增加如下配置:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
  root /data/www; #项目根目录
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

重启nginx服务器
  /data/nginx/nginx -s reload


4.创建测试php文件

在/data/www下创建index.php文件,输入如下内容:
<?php
  echo phpinfo();
?>

5.启动php-fpm服务

/data/soft/php/sbin/php-fpm

5.5杀死php-fpm进程

killall php-fpm(可以配合启动命令实现重启效果)

6.php-fpm关闭与重启

php-fpm 关闭
  kill -INT `cat /data/soft/php/var/run/php-fpm.pid`

php-fpm 重启
  kill -USR2 `cat /data/soft/php/var/run/php-fpm.pid`

7.php-fpm开机启动

echo "/data/soft/php/sbin/php-fpm" >> /etc/rc.local

8.解决php-fpm.pid文件不存在(重启php-fpm)

vim /data/soft/php/etc/php-fpm.conf
  打开 pid = run/php-fpm.pid

三:mysql安装

cd /data/soft/src
wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.70.tar.gz
tar -zxvf mysql-5.1.70.tar.gz
cd mysql-5.1.70

yum install ncurses ncurses-devel
./configure  '--prefix=/data/soft/mysql' '--without-debug' '--with-charset=utf8' '--with-extra-charsets=all' '--enable-assembler' '--with-pthread' '--enable-thread-safe-client' '--with-mysqld-ldflags=-all-static' '--with-client-ldflags=-all-static' '--with-big-tables' '--with-readline' '--with-ssl' '--with-embedded-server' '--enable-local-infile' '--with-plugins=innobase'  make
make install

到此mysql就安装到了/data/soft/mysql路径下,下面开始mysql的配置工作

配置文件

cp support-files/my-medium.cnf /etc/my.cnf

mysql设置开机自启动

cp -r support-files/mysql.server /etc/init.d/mysqld  
/sbin/chkconfig --del mysqld
/sbin/chkconfig --add mysqld

配置权限表

chown -R mysql:mysql /data/soft/mysql
/data/soft/mysql/bin/mysql_install_db --user=mysql

启动mysql

/etc/init.d/mysqld start

mysql初始化配置

export PATH=/data/soft/mysql/bin:$PATH
/data/soft/mysql/bin/mysql_secure_installation
注:这里根据提示设置mysql的root密码

到这里mysql安装完成了, 我们开始使用客户端连接mysql

如果报错:
  SQL Error (1130): Host '192.168.1.100' is not allowed to connect to this MySQL server

首先按下面的步骤登录Mysql服务器

登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:

#mysql -uroot -ppassword
mysql>use mysql;

mysql>update user set host = '%'  where user ='root';

mysql>flush privileges;

mysql>select 'host','user' from user where user='root';

mysql>quit
OK。远程连接成功!

软件包可以到360云盘直接下载:http://yunpan.cn/cfX8FB5UTnfDR (提取码:91e7)

阅读全文

2015最新CentOS安装Nginx+PHP
发表于 2015-8-31 | 浏览(5247) | 服务器

yum安装基本库

yum -y install automake autoconf libtool make gcc gcc-c++ libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

准备

mkdir /data
cd /data
mkdir soft www logs dbdata
cd soft/
mkdir nginx php mysql
cd ../logs
mkdir nginx php mysql

一:Nginx安装

cd /data/soft/src

1.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /data/soft/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure
make && make install

2.安装zlib库

http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /data/soft/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install

3.安装ssl(某些vps默认没装ssl)

cd /data/soft/src
wget http://www.openssl.org/source/openssl-1.0.2.tar.gz
tar -zxvf openssl-1.0.2.tar.gz
./config
make && make install
cp apps/openssl /usr/bin/
如果提示覆盖,确认就OK了,再查看openssl version版本就是最新版了

4.安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /data/soft/nginx 目录下的详细步骤:

cd /data/soft/src
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/data/soft/nginx \--sbin-path=/data/soft/nginx/nginx \--conf-path=/data/soft/nginx/nginx.conf \--pid-path=/data/soft/nginx/nginx.pid \--lock-path=/data/soft/nginx/nginx.lock \--error-log-path=/data/logs/nginx/error.log \--http-log-path=/data/logs/nginx/access.log \--http-client-body-temp-path=/data/logs/nginx/client_body_temp \--http-proxy-temp-path=/data/logs/nginx/proxy_temp \--http-fastcgi-temp-path=/data/logs/nginx/fastcgi_temp \--http-uwsgi-temp-path=/data/logs/nginx/uwsgi_temp \--http-scgi-temp-path=/data/logs/nginx/scgi_temp \--user=nginx \--group=nginx \--with-http_ssl_module \--with-pcre=/data/src/pcre-8.40 \--with-zlib=/data/src/zlib-1.2.11 \--with-openssl=/data/src/openssl-1.0.2e
make && make install

cp /data/soft/nginx/nginx /etc/init.d/
/etc/init.d/nginx           启动nginx
/etc/init.d/nginx -s reload     重启nginx
/etc/init.d/nginx -s stop       关闭nginx

添加nginx开机启动

echo "/etc/init.d/nginx" >> /etc/rc.local

二:编译安装php-fpm

PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到.

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以到这里查看:http://www.php.net/manual/en/configure.about.php

1.php-fpm安装(推荐安装方式)

cd /data/soft/src
wget http://museum.php.net/php5/php-5.4.7.tar.gz
tar zvxf php-5.4.7.tar.gz
cd php-5.4.7
./configure --prefix=/data/soft/php --enable-fpm --with-mcrypt \--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --enable-pdo --enable-ftp --with-pdo_sqlite --with-openssl=/usr/local/ssl/ --with-pdo_mysql
make && make install

2.以上就完成了php-fpm的安装、下面是对php-fpm运行用户进行设置

cd /data/soft/php
cp etc/php-fpm.conf.default etc/php-fpm.conf

vi etc/php-fpm.conf 修改
user = www
group = www

如果www用户不存在,那么先添加www用户
  groupadd www
  useradd -g www www

去掉前面的注释
  pid = run/php-fpm.pid

3.修改nginx配置文件以支持php-fpm

修改nginx配置文件为,nginx.conf

其中server段增加如下配置

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  location ~ \.php$ {
  root /data/www; #项目根目录
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

重启nginx服务器
  /data/nginx/nginx -s reload

4.创建测试php文件、在/data/www下创建index.php文件,输入如下内容

<?php
  echo phpinfo();
?>

5.启动php-fpm服务

/data/soft/php/sbin/php-fpm

5.5杀死php-fpm进程

killall php-fpm(可以配合启动命令实现重启效果)

6.php-fpm关闭与重启

php-fpm 关闭
  kill -INT `cat /data/soft/php/var/run/php-fpm.pid`

php-fpm 重启
  kill -USR2 `cat /data/soft/php/var/run/php-fpm.pid`

7.php-fpm开机启动

cp /data/soft/php/sbin/php-fpm /etc/init.d/php-fpm
echo "/etc/init.d/php-fpm" >> /etc/rc.local

阅读全文

CentOS yum -y upgrade 和 yum -y update 区别
发表于 2015-8-31 | 浏览(4895) | 服务器

分别测试yum -y upgrade和yum -y update

原始

系统版本:  centos5.5
内核版本:  2.6.18-194.el5

升级前做过简单配置文件修改

升级后

yum -y upgrade
  系统版本:    centos5.7
  内核版本:  2.6.18-194.el5

系统和软件配置不做修改
yum -y update    升级后
  系统版本:    centos5.7
  内核版本:    2.6.18-238.el5

系统和软件配置文件更新

结论

升级所有包,改变软件设置和系统设置,系统版本内核都升级
  yum -y update 

升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
  yum -y upgrade

阅读全文

CentOS防火墙配置
发表于 2015-8-31 | 浏览(4899) | 服务器

vim /etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Fri Jan 16 15:48:49 2015
*filter
:INPUT ACCEPT [7:626]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5:605]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

# fpt数据上传 20端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT

# ftp 21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

# ssh 22端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

# email 25端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT

# http 80端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

# https 443端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

# mysql 3306端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

# memcached 11211端口,-s指定只能被此ip访问有效
#-A INPUT -m state --state NEW -m tcp -p tcp -s 218.1.38.194 --dport 11211 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT
# Completed on Fri Jan 16 15:48:49 2015

如果 /etc/sysconfig/iptables 文件不存在

原因一般是没有配置过防火墙,在安装linux系统时也已经禁掉了防火墙。

解决:随便写一条iptables命令配置个防火墙规则

iptables -P OUTPUT ACCEPT

然后用命令:service iptables save进行保存,默认就保存到/etc/sysconfig/iptables文件里。这时既有了这个文件。防火墙也可以启动了。接下来要写策略,也可以直接写在/etc/sysconfig/iptables 里了。

操控防火墙命令

启动:service iptables start
关闭:service iptables stop
重启:service iptables restart
查看状态:service iptables status
永久关闭:chkconfig iptables off 
永久关闭后启用:chkconfig iptables on

CentOS7下使用iptables

一直用CentOS 6 习惯了,一下没适应过来。防火墙配置后执行service iptables save 出现”Failed to restart iptables.service: Unit iptables.service failed to load: No such file or directory.”错误,在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,当然你可以还原传统的管理方式。或则使用新的命令进行管理。

假如采用传统请执行一下命令

systemctl stop firewalld
systemctl mask firewalld

并且安装iptables-services

yum install iptables-services

设置开机启动

systemctl enable iptables

防火墙状态操作命令

systemctl [stop|start|restart] iptables
或
service iptables [stop|start|restart]

初始化配置文件

service iptables save
或
/usr/libexec/iptables/iptables.init save

配置文件所在位置,规则配置同上

/etc/sysconfig/iptables

阅读全文

CentOS邮件自动发送 Email
发表于 2015-8-31 | 浏览(5251) | 服务器

CentOS安装sendmail、yum安装

yum -y install sendmail

以上命令执行完成后,启动sendmail

systemctl start sendmail
start(启动) , restart(重启), stop(停止)

CentOS使用外部smtp发送邮件的基本配置

设置 /etc/mail.rc 添加如下内容(保存退出,测试即可)

set from=xxxxxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxxxxx@163.com smtp-auth-password=xxxxxx smtp-auth=login

下面来测试看看

1、发送一个文件里面的内容

echo "hello" > message
mail -s 'Test mail Title' fuxiang.gong@qq.com < message

2、发送字符串

echo helloWord | mail -v -s "Test Title" fuxiang.gong@qq.com

3、发送多个人(加 -c)

mail -s 'Test mail Title' -c fuxiang.gong@qq.com fuxiang.gong@qualifes.com < message

4、发送带附件(加 -a,空格后跟着附件地址)

mail -s 'Test mail Title' -a index.php fuxiang.gong@qq.com < message

5、前面一个是抄送人,后面两个是收件人

mail -s 'Test mail Title' -c fuxiang.gong@qualifes.com 386392432@qq.com fuxiang.gong@qq.com < message

6、前面两个是抄送人,后面两个是收件人(带附件+带文件里面的内容)

mail -s 'Test mail Title标题' -a doc.zip -c fuxiang.gong@qualifes.com -c 17091959688@163.com 386392432@qq.com fuxiang.gong@qq.com < message

7、前面两个是抄送人,后面两个是收件人(带附件+直接添加文本内容)

echo helloWord | mail -s 'Test mail Title标题' -a doc.zip -c fuxiang.gong@qualifes.com -c 17091959688@163.com 386392432@qq.com fuxiang.gong@qq.com

如果mail提示命令不存在

-bash: mail: command not found

解决方案
  yum install mailx -y

阅读全文

CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis
发表于 2015-8-31 | 浏览(5046) | 服务器
================ git服务器安装 ====================

CentOS安装Git服务器 Centos 6.4 + Git 1.8.2.2 + gitosis##

    1.查看Linux系统服务器系统版本

        cat /etc/redhat-release   # 查看系统版本

        CentOS release 6.4 (Final)

        ifconfig                 # 查看服务器的IP
        eth0      
              Link encap:Ethernet  HWaddr 00:23:8B:FA:78:92  
              inet addr:192.168.100.202  Bcast:192.168.100.255  Mask:255.255.255.0
              inet6 addr: fe80::223:8bff:fefa:7892/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:543645 errors:0 dropped:0 overruns:0 frame:0
              TX packets:157155 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:383527379 (365.7 MiB)  TX bytes:13270106 (12.6 MiB)
              Interrupt:16

    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

    2.在服务器上安装git及做些操作

     - 执行命令
    sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

     - 同时下载git-1.8.2.2.tar.gz文件,然后将其`mv` 到`/usr/local/src`目录。[git-1.8.2.2.tar.gz安装包下载地址][1]

    cd /usr/local/src
    sudo tar -zvxf git-1.8.2.2.tar.gz
    cd git-1.8.2.2

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

     - 增加软连接

    sudo ln -s /usr/local/git/bin/* /usr/bin/

    git --version  #如果能显示版本号,即表示成功`

    3.在服务器安装gitosis

    sudo 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即表示成功

================ 上面是别人的列子 ====================

我们这里使用一台服务器当做git服务器和客户端,操作git饿时候需要切换到git用户
================ git服务器端配置 ====================

服务器:安装git工具【root】/home
    yum install -y python python-setuptools git-core
    git clone git://github.com/res0nat0r/gitosis.git
    cd gitosis
    python setup.py install

    这样提示表示安装成功:
        Using /usr/lib/python2.6/site-packages
        Finished processing dependencies for gitosis==0.2

服务器:新建一个git用户并创建管理git:【root】/home
    useradd -m git
    su - git

服务器:使用客户端ssh生成git管理【root切换git】/home
    ssh-keygen -t rsa
    scp ~/.ssh/id_rsa.pub root@服务器地址:/tmp/
        生成ssh:
            ssh-keygen -t rsa -C "devil@meila.com"

客户端:使用客户端ssh生成git管理【git】/home
    gitosis-init<~/.ssh/id_rsa.pub

    这样会在/home/git下面生成gitosis和repositories两个目录,后者即为存放公共库的目录。确保/home/git/repositories/gitosis-admin.git/hooks/post-update具有执行权限(755)。

客户端:下面需要在开发机克隆gitosis-admin.git项目,它是用来管理所有git项目及用户的。/home/git/data(目录没有则手动创建)
    git clone git@112.124.14.126:gitosis-admin.git  //因为是同一台机器,所以可以用localhost

客户端:为什么这里可以直接通过clone命令克隆项目,就是因为gitosis-init初始化的时候使用了客户端生成的公钥。在gitosis-admin项目下有一个gitosis.conf文件和一个keydir目录。gitosis.conf用来配置git项目和用户,keydir存放用户的公钥,这里的公钥对命名有严格要求,要是 用户名.pub,必须以.pub后缀结尾。gitosis.conf的格式如下:
    [gitosis]

    [group gitosis-admin]
    writable = gitosis-admin
    members = username #对应keydir下有一个 username.pub 公钥文件

客户端:现在可以按照这个格式增加新的项目。
    [gitosis]

    [group gitosis-admin]
    writable = gitosis-admin
    members = username #对应keydir下有一个 username.pub 公钥文件

    [group XXX]
    writable = XXX
    members = user1 user2 ... #多个用户用空格分开

    假如这里新增了一个新的XXX项目:
        同样用新用户的ssh-keygen命令生成公钥和私钥,并把公钥上传到keydir目录下,重命名为user1.pub,更新gigosis-admin项目

客户端:更新项目在CentOS机器上克隆的gitosis-admin项目下执行下面的命令
    git add .
    git commit -a -m "add newuser"
    git push

    完成之后,服务器就已经做好了接受新项目的准备。这个时候服务器端还不会生成new-project.git项目,等PC端push之后会自动生成。

客户端:创建新建的项目目录并添加
    mkdir XXX
    cd XXX
    git init
    touch hello.txt  //创建一个空文件 才能提交成功
    git add hello.txt
    git commit -am '添加新项目'
    git remote add origin git@192.168.1.115:XXX.git
    git push origin master
    git push origin master  //执行两遍

    以上完成后看,XXX/.git/config文件里面是否有,如果没有增加或者执行命令
        [branch "master"]
            remote = origin
            merge = refs/heads/master

         命令:(因此通过git config进行如下配置)
            git config branch.master.remote origin
            git config branch.master.merge refs/heads/master 

个人电脑:克隆项目
    git clone git@192.168.1.115:XXX.git

个人电脑提交代码后服务器同步更新:(添加自动更新)
    文件位置:home/git/repositories/ecshop.git/hooks/post-receive
    #自动更新提交的代码到仓库 start
    cd /home/git/data/ecshop/ #ecshop是服务器客户端管理项目位置
    unset GIT_DIR #cd解决后还是在hoot目录下
    git pull origin master
    #自动更新提交的代码到仓库 end

    说明:
        hook脚本执行了cd之后,继续执行git语句拉取的时候还是在hooks文件夹下,而不是cd的文件路径。
        上面主要是添加了unset GIT_DIR ,git的hooks里面默认有一些环境变量,会导致无论在哪个语句之后执行git命令都会有一个默认的环境路径,既然这样unset 掉默认的GIT环境变量就可以了。

======================== 常见问题 ===========================

首先确定 /home/git/repositories/gitosis-admin.git/hooks/post-update 为可执行即属性为 0755
1. git操作需要输入密码

原因
公密未找到
解决
上传id_pub.rsa到keydir并改为'gitosis帐号.pub'形式,如miao.pub。扩展名.pub不可省略
2. ERROR:gitosis.serve.main:Repository read access denied

原因
gitosis.conf中的members与keydir中的用户名不一致,如gitosis中的members = foo@bar,但keydir中的公密名却叫foo.pub
解决
使keydir的名称与gitosis中members所指的名称一致。
改为members = foo 或 公密名称改为foo@bar.pub

阅读全文

TOP