zoukankan      html  css  js  c++  java
  • ubuntu系统下安装pyspider:搭建pyspider服务器新手教程

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

    安装pyspider

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

    安装mysql

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

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

     sudo netstat -tap | grep mysql

      sudo netstat -an|grep 3306

     通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。

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

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

      考虑到以后可能会做集群,所以用%而不是localhost

    新建数据库

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

    用户授权(当然,有些权限你是可以不给的)

    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'@'%';

    查看数据库和数据表

    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
  • 相关阅读:
    (转)Entity Framework 缓存处理与日志监控,(非常重要的技术)
    (转)6步确保 windbg 成功调试 .net
    (转)十天内掌握线性代数:惊人的超速学习实验
    (转)创业需要知道的13句话
    今年阅读书籍计划,C++之STL篇
    不靠广告也盈利:移动应用掘金7大案例剖析(转)
    常用JS操作(复选框、单选框、下拉框)
    Windows系统直接运行jar
    修改打开方式的程序列表中列出程序的名称
    ora12514错误,TNS:监听程序当前无法识别链接描述符中请求的服务
  • 原文地址:https://www.cnblogs.com/microman/p/6136910.html
Copyright © 2011-2022 走看看