红联Linux门户
Linux帮助

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

发布时间:2016-12-21 15:28:49来源:cnblogs.com/microman作者:microman
安装pyspider
安装pyspider请参考另一篇:ubuntu系统下安装pyspider及问题解决(http://www.linuxdiyf.com/linux/27119.html)
 
安装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(http://docs.pyspider.org/en/latest/Command-Line/)
ubuntu系统下安装pyspider:搭建pyspider服务器新手教程
下面贴的是我的配置
{
"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
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27121.html