linux centos7 supervisor 进程管理安装使用

1.install
easy_install supervisor or pip install supervisor #可以源码安装或是python安装,看个人

# yum install python-setuptools
# easy_install supervisor
如果easy_install不好使就从官方下载:
然后通过python安装:
# tar zxf supervisor-3.1.3.tar.gz
# cd supervisor
# python setup.py install

2.init
# 初始化配置文件
# 此命令会在 /etc/下创建一个示例配置文件
/usr/bin/echo_supervisord_conf > /etc/supervisord.conf

3.修改配置文件:

在supervisord.conf最后增加(分号后边的表示注释,可以不写):

[program:demo]
process_name=%(program_name)s_%(process_num)02d
command=php /usr/local/www/artisan queue:listen redis –sleep=1 –tries=0
autostart=true
autorestart=true
user=nginx
numprocs=2
redirect_stderr=true
stdout_logfile=/usr/local/www/storage/logs/queue.log
(更多配置说明请参考:http://supervisord.org/configuration.html)

运行命令:

supervisord -c /etc/supervisord.conf //启动supervisor

supervisorctl //打开命令行
[root @iZ2365j7l5bZ bin]# supervisorctl status
bandwidth RUNNING pid 2423 , uptime 0 : 06 : 35
[root @iZ2365j7l5bZ bin]# supervisorctl help

ctl中: help //查看命令

ctl中: status //查看状态

另外有一个坑需要注意:如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。
Supervisord 是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。可以将非Daemon的应用转为daemon程序。关于supervisord的安装和配置,在网上已经有很多现成的帖子,我这里就不重复了
在centos和rhel的环境下,我们一般是用chkconfig来管理服务的启动停止、开机自启动等。下面我列出Supervisord的服务脚本:

vi /etc/init.d/supervisord

#!/bin/bash
#
# supervisord This scripts turns supervisord on
# chkconfig: 345 83 04
# description: supervisor is a process control utility. It has a web based
# xmlrpc interface as well as a few other nifty features.
#

# source function library
. /etc/rc.d/init.d/functions

set -a

PREFIX=/usr/local

SUPERVISORD=$PREFIX/bin/supervisord
SUPERVISORCTL=$PREFIX/bin/supervisorctl

PIDFILE=/var/supervisor/supervisord.pid
LOCKFILE=/var/supervisor/supervisord.lock

OPTIONS=”-c /etc/supervisord.conf”

# unset this variable if you don’t care to wait for child processes to shutdown before removing the $LOCKFILE-lock
WAIT_FOR_SUBPROCESSES=yes

# remove this if you manage number of open files in some other fashion
ulimit -n 96000

RETVAL=0
running_pid()
{
# Check if a given process pid’s cmdline matches a given name
pid=$1
name=$2
[ -z “$pid” ] && return 1
[ ! -d /proc/$pid ] && return 1
(cat /proc/$pid/cmdline | tr “\000” “\n”|grep -q $name) || return 1
return 0
}

running()
{
# Check if the process is running looking at /proc
# (works for all users)

# No pidfile, probably no daemon present
[ ! -f “$PIDFILE” ] && return 1
# Obtain the pid and check it against the binary name
pid=`cat $PIDFILE`
running_pid $pid $SUPERVISORD || return 1
return 0
}

start() {
echo “Starting supervisord: ”

if [ -e $PIDFILE ]; then
echo “ALREADY STARTED”
return 1
fi

# start supervisord with options from sysconfig (stuff like -c)
$SUPERVISORD $OPTIONS

# show initial startup status
$SUPERVISORCTL $OPTIONS status

# only create the subsyslock if we created the PIDFILE
[ -e $PIDFILE ] && touch $LOCKFILE
}

stop() {
echo -n “Stopping supervisord: ”
$SUPERVISORCTL $OPTIONS shutdown
if [ -n “$WAIT_FOR_SUBPROCESSES” ]; then
echo “Waiting roughly 60 seconds for $PIDFILE to be removed after child processes exit”
for sleep in 2 2 2 2 4 4 4 4 8 8 8 8 last; do
if [ ! -e $PIDFILE ] ; then
echo “Supervisord exited as expected in under $total_sleep seconds”
break
else
if [[ $sleep -eq “last” ]] ; then
echo “Supervisord still working on shutting down. We’ve waited roughly 60 seconds, we’ll let it do its thing from here”
return 1
else
sleep $sleep
total_sleep=$(( $total_sleep + $sleep ))
fi

fi
done
fi

# always remove the subsys. We might have waited a while, but just remove it at this point.
rm -f $LOCKFILE
}

restart() {
stop
start
}

case “$1″ in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart|force-reload)
restart
RETVAL=$?
;;
reload)
$SUPERVISORCTL $OPTIONS reload
RETVAL=$?
;;
condrestart)
[ -f $LOCKFILE ] && restart
RETVAL=$?
;;
status)
$SUPERVISORCTL $OPTIONS status
if running ; then
RETVAL=0
else
RETVAL=1
fi
;;
*)
echo $”Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}”
exit 1
esac

exit $RETVAL

——————————————————————

保存完毕之后,可以执行以下命令修改文件权限:

chmod 777 /etc/init.d/supervisord

/etc/init.d/supervisord start

这样,supervisor就启动了。

linux centos7 redis3.0.7稳定版源码安装设置远程登陆限制

1.wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar -zxvf redis3.0.7
make -j2 && make PREFIX=/home/redis install(指定的安装路径)

mkdir -p /home/redis/etc
cp redis.conf /home/redis/etc/
mkdir /etc/redis
ln -s /home/redis/etc/redis.conf /etc/redis/6379.conf
cp /home/source/redis-3.0.7/utils/redis_init_script /etc/init.d/redis
vi /etc/init.d/redis

在第二行加
#chkconfig: 2345 80 90

保存后执行,开机启动就可以用了:
chkconfig –add redis
chkconfig redis on
mkdir /home/server_home/redis/logs -p
mkdir /home/server_home/redis/home -p

# 增加 redis 验证权限流程参考我的redis远程密码设置

这样,远程redis免登陆就可以避免了

linux centos7 源码安装mysql5.6的版本

1. 先安装依赖包
yum install gcc gcc-c++ wget net-tools -y
yum install libaio* perl-Module-Install.noarch -y 安装mysql,这两个依赖包要安装的

mkdir -p /data/source 放下载下来的源码

2.下载 wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
glibc 是c语言包的意思

3.这一版mysql不需要cmake再make和make install编译源代码安装,直接安装即可
以绝对路径创建文件夹(此步可省略)
mkdir创建文件夹,稍后用来存放要安装的mysql
-m : 对新建目录设置存取权限
-p : 此时若路径中的某些目录尚不存在,系统将自动建立好那些尚不存在的目录mkdir -m777 -p /data/mysql

groupadd mysql
useradd -r -g mysql mysql -d /home/mysql

新建组mysql加入系统,为mysql服务添加组和用户,建立用户和组为了安全起见,不让mysql服务操作本身用到的文件以外的文件,所以最好新建linux用户安装mysql,增加mysql这个用户,作为系统账号,同时添加到mysql组理,主目录是/usr/local/mysqluseradd命令用来建立用户帐号和创建用户的起始目录,该命令使用权限是终极用户。新建用户密码为空
-g : 指定用户所属的起始群组。
-d : 指定用户登入时的启始目录。
-s : 指定用户登入后所使用的shell。-s /sbin/nologin 是不让登录shell
-g后第一个mysql是组名,第二个mysql是新建的用户名,新建用户信息可在/etc/passwd文件中查到

4. 修改属主和分组 chown -R mysql:mysql /home/mysql

5. /home/mysql/scripts/mysql_install_db –user=mysql –basedir=/home/mysql –datadir=/home/mysql/data
如果报错,一般都是依赖没装好,检测缺少哪个依赖包

6.cd /data/mysql/support-files
复制mysql服务启动配置文件到/etc/下并重命名为my.cnf,/etc/my.cnf如存在则输入y和回车覆盖
配置文件,如果没有的话,mysql所有的参数将会是默认值
cp my-default.cnf /etc/my.cnf

7.将mysql加入到可控制启动的服务的文件夹内,并命名mysql,即service可控制的服务名,至此可用service mysql start控制启动mysql
/etc/init.d 是/etc/rc.d/init.d的链接,在/etc/init.d添加一个文件会同步在/etc/rc.d/init.d下添加一个相同文件
cp mysql.server /etc/init.d/mysql

8.修改自启动调用的路径。其实若mysql的安装目录是/usr/local/mysql,则可省略此步
vim编辑器,是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面
进入后按键盘i进行编辑,修改如下俩值
basedir=/data/mysql
datadir=/data/mysql/data
编辑后按esc键输入:wq按回车保存。:q!是不保存退出
vim /etc/init.d/mysql

9.让mysql服务加入到开机启动指令管理的服务列表中
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接
–add : 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。服务脚本必须存放在/etc/ini.d/目录下
chkconfig –add mysql开机自启动mysql服务
on : 针对的服务有等级限制,具体查询chkconfig详细
chkconfig mysql on

10.原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
# ln -s /home/mysql/bin/mysql /usr/bin

11.启用mysql,或者命令systemctl start mysql
service mysql start

设置mysql的root用户密码,此处设成123456,此root用户与linux不是一个
mysqladmin -u root password ‘123456’

登陆mysql,用刚才设置的密码mysql -u root -p

Linux centos7 php7 源码安装

php 7.0.2安装

mkdir -p /package/libxml2

1.Libxml2是个C语言的XML程式库,能简单方便的提供对XML文件的各种操作
# cd /source/
# wget ftp://xmlsoft.org/libxml2/libxml2-2.9.3.tar.gz
# tar -zxvf libxml2-2.9.3.tar.gz
# cd libxml2-2.9.3
# ./configure \
# –prefix=/package/libxml2 –with-python=no
# make
# make install
2.
openssl 依赖 解决:yum install openssl openssl-devel

curl 依赖 解决:yum install curl curl-devel
gd 依赖 http://www.nowamagic.net/librarys/veda/detail/2610 安装三个

1. freetype
view sourceprint?
wget “http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2”
tar jxvf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./configure –prefix=/usr/local/freetype && make -j4 && make install

2. jpegsrc
wget “http://www.ijg.org/files/jpegsrc.v9.tar.gz”
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
CFLAGS=”-O3 -fPIC” ./configure –prefix=/usr/local/jpeg && make -j4 && make install
mkdir -p /usr/local/jpeg/include
mkdir -p /usr/local/jpeg/lib
mkdir -p /usr/local/jpeg/bin
mkdir -p /usr/local/jpeg/man/man1

3. libpng
wget “https://nchc.dl.sourceforge.net/project/libpng/libpng16/1.6.26/libpng-1.6.26.tar.gz”
tar zxvf libpng-1.6.26.tar.gz
cd libpng-1.6.26
CFLAGS=”-O3 -fPIC” ./configure –prefix=/usr/local/libpng && make -j4 && make install

mcript php加密依赖 4个依赖要装
1.wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

2.wget https://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz

3.wget http://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz

4.wget https://lcmp.googlecode.com/files/mcrypt-2.6.8.tar.gz
cd /usr/local/src
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
ln -s /usr/local/bin/libmcrypt_config /usr/bin/libmcrypt_config #添加软连接
export LD_LIBRARY_PATH=/usr/local/lib #添加环境变量
./configure
make
make install

# cd /source/
# wget http://cn2.php.net/distributions/php-7.0.2.tar.gz
# tar -zxvf php-7.0.2.tar.gz
# cd php-7.0.2

./configure –prefix=/home/php \
–with-libxml-dir=/package/libxml2 \
–with-config-file-path=/home/php/etc \
–enable-mbstring \
–enable-fpm \
–with-mysqli \
–with-pdo-mysql \
–enable-xml \
–enable-inline-optimization \
–with-openssl \
–enable-session \
–with-curl \
–with-jpeg-dir=/usr/local/jpeg \
–with-freetype-dir=/usr/local/freetype \
–with-freetype-dir=/usr/local/libpng \
–with-gd \
–with-mcrypt

make -j4 && make install

如果出错,安装yum install autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel -y

php 安装好之后,修改nginx.conf 里面的值,绑定执行的php-fpm

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# cd /home/source/php-7.0.2
# cp php.ini-development /home/php/etc/php.ini

# cd /home/php/etc
# cp php-fpm.conf.default php-fpm.conf

# cd /home/php/etc/php-fpm.d/
# cp www.conf.default www.conf

启动php-fpm /home/php/sbin/php-fpm -c /home/php/etc/php.ini
netstat -tlnp 查看运行的端口
kill id号,可以结束掉运行的程序,达到重启程序效果

Linux 源码安装nginx1.10.2稳定版,源码安装

直接上流程,源码编译安装nginx稳定版,顺带装了nginx的waf防护策略

1. 先安装依赖包
yum install gcc gcc-c++ wget net-tools

make /home/source -p 存放下载的数据包

PCRE 作用是让 Ngnix 支持 Rewrite 功能。
# wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz
# tar -zxvf pcre-8.38.tar.gz

zlib是提供数据压缩用的函式库
# wget http://zlib.net/zlib-1.2.8.tar.gz
# tar -zxvf zlib-1.2.8.tar.gz

下载1.10.2稳定版nginx
wget http://nginx.org/download/nginx-1.10.2.tar.gz

1.http://luajit.org/download/LuaJIT-2.0.4.tar.gz
直接使用源码make && make install
所以lib和include是直接放在/usr/local/lib和usr/local/include

2.下载ngx_devel_kit解压
https://github.com/simpl/ngx_devel_kit/tags
wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.18.tar.gz –no-check-certificate
tar -zxvf v0.2.18

3.下载nginx_lua_module解压
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.7.tar.gz
tar -zxvf v0.10

# cd 进入nginx的安装目录 ,执行下面两句,导入luajit库的安装目录

export LUAJIT_LIB=/usr/local/lib #这个很有可能不一样
export LUAJIT_INC=/usr/local/include/luajit-2.0 #这个很有可能不一样

./configure –prefix=/home/nginx \
–user=nginx \
–group=nginx \
–with-ld-opt=”-Wl,-rpath,/usr/local/lib” \
–add-module=/home/source/ngx_devel_kit-0.2.18 \
–add-module=/home/source/lua-nginx-module-0.10.7

make -j4 && make install

4.请提前新建/home/logs/hack/目录攻击日志,并赋予nginx用户对该目录的写入权限。
mkdir -p /home/logs/hack/
nginx账户是跑nginx和php-fpm
useradd -g nginx -s /bin/false -M nginx
chown -R nginx:nginx /home/logs/hack/
chmod -R 755 /home/logs/hack/

5. 安装ngx_lua_waf模块
wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip –no-check-certificate
把这个文件解压到
nginx的conf目录下.
把下载下来的master.zip 解压后改名为waf, mv移动到nginx/conf/里面
然后在nginx.conf里的http配置里添加
http {
lua_package_path “/home/nginx/conf/waf/?.lua”;
lua_shared_dict limit 10m;
init_by_lua_file /home/nginx/conf/waf/init.lua;
access_by_lua_file /home/nginx/conf/waf/waf.lua;

蜘蛛池建好之后

蜘蛛池建好之后要做的,首先不能急,蜘蛛不可能一天就蜂拥而至,而是要稳定的,等待蜘蛛来爬去,只要网站稳定,没有不合法的信息,蜘蛛没有不来的道理。

而接下来要做的就是,给蜘蛛池里面加入新词和句子,这个还在测试中,是一周加一次还是加三次,需要慢慢测试效果了,有一点肯定的就是,蜘蛛池不是建好就没事了,还是需要维护的,每天要看蜘蛛量,根据蜘蛛爬取的目标来调整词的相关性,然后要注意防黑,这是最重要的一步了,辛苦搭建的池子,就像是在种树,等开花,结果,如果辛辛苦苦养的池子到头来被种马,那就太苦逼了

所以,池子最好是搭建在Linux服务器上面,起码会安全好多,这样服务器和池子稳定后,就可以做外推,和挂外链了

Linux ubuntu14.04 LTS lamp环境搭建流程

不罗嗦,直接步骤:

1.apt-get update #这是必须要做的一步

2.apt-get install apache2 -y #安装系统自带的源apache

apache2 –v #测试安装是否ok,可以进行下一步

3.apt-get install php5 #这是安装的php5.5.9版本,系统自带的,如果安装php7需要修改数据源,安装好,还有一些模块需要自己安装,搭建蜘蛛池的话,ubuntu14.04安装默认的最方便了,如果需要php7的,还是推荐用ubuntu16.04 这个系统默认的是php7

php -v #查看是否安装成功

4.apt-get install php5-mysql mysql-server

cat /etc/php5/mods-available/mysql.ini #查看msyql模块

service apache2 restart #重启apache

echo “<?php phpinfo();?>” > /var/www/html/index.php #写入文件显示php信息,就ok了

5.安装常用的php模块

apt-get install php5-gd curl libcurl3 libcurl3-dev php5-curl

这样的环境,够搭建池子了

蜘蛛池使用尾声

 搭建了2个小的蜘蛛池,先养着看效果了,昨天的池子出问题,是服务器的原因,因为买的是香港的低配置服务器,内存只有512M,所以运行到最好,内存溢出,导致mysql服务停止,所以报错
 今天把服务器升级了下,在小鸟云上面搭建的服务器,对比了几家,小鸟的是性价比最高的,自带5G硬防,配置还是弹性,很不错了,在别的服务商那里面买,5G,起码要是800,如果只是测试的话,有点浪费,看自己选吧
 搭建完毕蜘蛛池之后,要做的是黑帽seo测试,通过菜刀,先试试,后面写效果

使用破解版蜘蛛池的后果

从使用蜘蛛池开始,到起步,到2000蜘蛛,只用三天时间,第四天的时候,就打不开 了,内心无比纠结,百思不得其解,为什么呢,好好的程序,突然就不行了呢,就打不开了,2017年1月1日,这日子来的有点深刻,等等看,是否是升级或是什么的原因

明天看情况,不行就换程序,使用蜘蛛池切记几点:

1.如果用的是破解版,一定要信的过的人

2.测试阶段最好是用一个域名,多了浪费,稳定后在逐步添加

3.前期最好不要直接加索引域名

4.稳定第一,安居才能乐业,如果池子都不稳定,后面都是白扯

 

看着蜘蛛池里的小蜘蛛在增长

蜘蛛池
没有什么比你养蜘蛛,能看到增长,更有成就感

在此总结下,上次的不够完善

蜘蛛池总结:
1.老域名,查询是否被黑,最好是备案的
2.一个ip对应一个域名,多域名最好对应多ip
3.网站响应要流畅
4.选择稳定蜘蛛池程序

5.关键字和句子以后要往里加,每周至少加一次,保证池子里面的词有热词