ubuntu系统下安装pyspider:搭建pyspider服务器新手教程

首先感谢“巧克力味腺嘌呤”的博客Debian 8.1 安装配置 pyspider 爬虫,本人根据他们的教程在ubuntu系统中进行了实际操做,发现有一些不一样,也出现了不少错误,所以作此教程,为新手服务。html

安装pyspider

安装pyspider请参考另外一篇:ubuntu系统下安装pyspider及问题解决python

安装mysql

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

安装过程当中会提示设置密码什么的,注意设置了不要忘了,安装完成以后可使用以下命令来检查是否安装成功:

 sudo netstat -tap | grep mysqlmysql

  sudo netstat -an|grep 3306web

 经过上述命令检查以后,若是看到有mysql 的socket处于 listen 状态则表示安装成功。redis

  mysql -u root -p 
  -u 表示选择登录的用户名, -p 表示登录的用户密码,上面命令输入以后会提示输入密码,此时输入密码就能够登陆到mysql。

  使用root建立一个新的user,取名为pyspider,密码为pyspider-pass  
  CREATE USER 'pyspider'@'%' IDENTIFIED BY 'pyspider-pass'; sql

  考虑到之后可能会作集群,因此用%而不是localhost数据库

 

新建数据库json

create database taskdb;
create database projectdb;
create database resultdb;

用户受权(固然,有些权限你是能够不给的)ubuntu

GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `taskdb`.* TO 'pyspider'@'%';
GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `projectdb`.* TO 'pyspider'@'%';
GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `resultdb`.* TO 'pyspider'@'%';

查看数据库和数据表socket

show databases;
show tables;

安装redis

sudo apt-get install redis-server

Redis基本操做:

redis-server        #启动:

redis-cli              #查看是否启动
在终端输出:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。如今咱们输入 PING 命令。
redis 127.0.0.1:6379> ping
PONG
以上说明咱们已经成功安装了redis。

redis-server stop
redis-server restart
redis-server status 

安装supervisor

sudo apt-get install supervisor

建立默认的配置文件

echo_supervisord_conf  >/etc/supervisord.conf

本人直接这个命令出现了权限不足问题。使用sudo 也不行。解决方法是:在home目录建立配置文件,在移动到etc目录下。

echo_supervisord_conf  > supervisord.conf
sudo mv supervisord.conf  /etc/supervisord.conf

配置supervisor和pyspider

pyspider 的配置请各位看官参考:Command Line

下面贴的是个人配置

{
  "taskdb": "mysql+taskdb://pyspider:pyspider-pass@127.0.0.1:3306/taskdb",
  "projectdb": "mysql+projectdb://pyspider:pyspider-pass@127.0.0.1:3306/projectdb",
  "resultdb": "mysql+resultdb://pyspider:pyspider-pass@127.0.0.1:3306/resultdb",
  "message_queue": "redis://127.0.0.1:6379/db",
  "phantomjs-proxy": "127.0.0.1:25555",
  "scheduler" : {
    "xmlrpc-host": "0.0.0.0",
    "delete-time": 3600
  },
  "webui": {
    "port": 5555,
    "username": "heartblood",
    "password": "pyspider-pass",
    "need-auth": true
  }
}

上面的配置文件我将其放置在/pyspider/conf.json

配置 supervisor

编辑/etc/supervisord.conf

sudo gedit /etc/supervisord.conf

在最后添加下面的内容

[program:pyspider]
command=/usr/bin/pyspider -c /pyspider/conf.json
autorestart=true
autostart=true
user=pyspider
group=pyspider
directory=/pyspider
stderr_logfile=/pyspider/pyspider_err.log
stdout_logfile=/pyspider/pyspider.log

注意,配置文件里不支持~或者$HOME这类东西,请用绝对路径。log文件请本身事先建好,supervisord并不会自动生成。

保存后,经过下面的命令重启 supervisord

supervisord                          #启动
supervisorctl reload #从新启动

本人使用这个命令时出现了错误。解决方法是用supervisord命令启动服务端,再重启就能够了。

大功告成

到此为止,pyspider 应该就运行在你的ip:5555上了 
若是提示错误,多是:

mysql connect没有安装
密码太长太复杂,请尝试关闭插件并设置简单密码
能够查看pyspider_err.log并排除错误

 诡异问题解决

问题1:

import mysql.connector

ImportError: No module named “mysql”

解决方法:

执行pip search mysql-connector | grep --color mysql-connector-python

输出信息:
mysql-connector-python-rf (2.1.3)        - MySQL driver written in Python
mysql-connector-python (2.0.4)           - MySQL driver written in Python

使用pip install mysql-connector-python-rf==2.1.3就能够了

问题2:

import redis
ImportError: No module named 'redis'

解决方法:

安装reids-py
pip install redis
相关文章
相关标签/搜索