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
相關文章
相關標籤/搜索