打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
新版手撕包菜安装教程

系统:centos 7 64位

一.获取ssbc源代码

1.环境检测(Ssbc当前版本是基于django1.8.1开发,所需python环境为python2.7.5以上。)

[root@localhost ~]# python -V

Python 2.7.5

执行python -V即可获取当前版本。

2.获取ssbc安装包
[root@localhost ~]# wget https://github.com/78/ssbc/archive/master.zip
[root@localhost~]# unzip master.zip
解压后你会发现在root根目录先有个文件夹ssbc-master.

二.安装MariaDB

1.安装数据库及所需环境
yum install gcc gcc-c++ python-devel mariadb mariadb-devel mariadb-server
[root@localhost ~]# yum install gcc
[root@localhost ~]# yum install gcc-c++
[root@localhost ~]# yum install python-devel
[root@localhost ~]# yum install mariadb
[root@localhost ~]# yum install mariadb-devel
[root@localhost ~]# yum install mariadb-server
[root@localhost]# wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
[root@localhost]# python get-pip.py
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python 

[root@localhost]# cd ssbc-master
[root@localhost ssbc-master]# pip install -r requirements.txt
2.创建ssbc数据库
[root@localhost ~]# service mariadb start //启动数据库
[root@localhost ~]# mysql -uroot -p
Enter password: (回车即可)
MariaDB [(none)]> create database ssbc default character set utf8;
MariaDB [(none)]> quit; //创建成功后退出

修改root密码
1.以root身份在终端登陆,必须
2.输入 mysqladmin -u root -p password root
后面的 root 是要设置的密码
3.回车后出现 Enter password 
输入就密码,如果没有,直接回车

三.安装Sphinx
[root@localhost ssbc-master]# wget http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel7.x86_64.rpm
[root@localhost ssbc-master]# yum install unixODBC unixODBC-devel postgresql-libs
[root@localhost ssbc-master]# rpm -ivh sphinx-2.2.9-1.rhel7.x86_64.rpm

然后在服务器根目录创建文件夹: data 和 tem (两个文件夹)
然后在 data 目录创建文件夹: bt
然后在 bt 目录创建文件夹: index
然后在 index 目录创建文件夹: db 和 binlog (两个文件夹)
然后在 tem 目录创建文件夹: downloads
最后 给 data 以及 tem 文件夹赋予 755 或者 777 权限 (需要继承到子文件夹)

[root@localhost ssbc-master]# indexer -c sphinx.conf --all (all 前面是空格减号减号)
[root@localhost ssbc-master]# searchd --config ./sphinx.conf (config前空格减号减号)

四.Web设置
[root@localhost ssbc-master]# 
[root@localhost ssbc-master]# python manage.py makemigrations
[root@localhost ssbc-master]# python manage.py migrate
[root@localhost ssbc-master]# python manage.py runserver 0.0.0.0:8089 //启动ssbc 
浏览器输入你的ip(如:54.43.43.43) 看网站是否能正常访问,正常则CTRL+C停止
[root@localhost ssbc-master]# python manage.py createsuperuser //输入用户名邮箱密码确认密码(创建管理账号)
[root@localhost ssbc-master]# nohup python manage.py runserver 0.0.0.0:8089 > /dev/zero & //将网站服务放在后台运行

五.开启爬虫(workers目录下)
安装 Python GeoIP库
pip install pygeoip

1.爬虫:执行:python simdht_worker.py (等2两分钟出现数据之后可以CTRL+C停止)
1.1 执行命令:nohup python simdht_worker.py >/dev/zero & (让爬虫在后台运行)
2.入库:执行:python index_worker.py (等待10分钟没有出现数据之后可以CTRL+C停止)
2.1 后台执行命令:nohup python index_worker.py >/dev/zero & (让爬虫在后台运行)

后台登陆:http://ip/admin

只允许自己的域名解析:
ssbc/settings.py
ALLOWED_HOSTS = ['www.smzdy.com',]

常见问题:
1.必须centos7吗?
非常建议使用centos7,centos6可能会有意想不到的错误
2.怎么查看入库的文件?
登录管理员后台,点击 Hashs 
3.怎么查看每天入库了多少文件,以便清楚入库效率?
登录管理员后台,点击 Status reports 
4.如何确认web服务器、采集、入库正在运行?
ps -ef|grep python
结果里面有
python manage.py runserver 0.0.0.0:80 
python simdht_worker.py 
python index_worker.py
即表示正在运行。

mariadb添加自启动 添加到服务。
systemctl enable mariadb.service

centos7 需要给予执行权限 chmod u+x /etc/rc.d/rc.local
在里面运行一个把所有服务的.sh文件,注意绝对路径和加延时

转载:http://blog.ouoshop.com/post/13.html

搜索中文出现错误:
'ascii' codec can't encode character u'。。。。
在search/timermiddleware.py
指定文件字符集为utf-8
在文件头部加入以下代码:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')


2.爬虫运行时 可能会遇到如下问题:
Python and Django OperationalError (2006, 'MySQL server has gone away')
解决方法:
cd /etc/my.cnf.d
vi server.cnf
在# this is only for the mysqld standalone daemon
[mysqld]
后面加上
max_allowed_packet = 128M
128M或者更大

http://stackoverflow.com/questions/14163429/python-and-django-operationalerror-2006-mysql-server-has-gone-away

3、索引入库可能会出现如下问题
![10fa85f47f86bdbb.png][1]
进入mysql,执行一下语句
update search_hash set tagged=True where id=8947593;
这里的id换成你自己的id

还是不行就要重新索引,看后面文字说明↓↓↓↓

mariadb配置允许远程访问方式

首先配置允许访问的用户,采用授权的方式给用户权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

说明:root是登陆数据库的用户,123456是登陆数据库的密码,*就是意味着任何来源任何主机反正就是权限很大的样子。
%可以用允许登陆的IP替换
最后配置好权限之后不应该忘记刷新使之生效
flush privileges;

临时解决蜘蛛会死掉的方法:
#!/bin/sh

simdhtpid=$(ps -ef|grep -v grep|grep "python simdht_worker.py"|awk '{print $2}')
kill -9 $simdhtpid
simdhtpid=$(ps -ef|grep -v grep|grep "python index_worker.py"|awk '{print $2}')
kill -9 $simdhtpid
sleep 1
cd /root/ssbc/workers
nohup python simdht_worker.py >/dev/zero &
nohup python index_worker.py >/dev/zero &

终极解决办法:
cd /etc/my.cnf.d
vi server.cnf
在# this is only for the mysqld standalone daemon
[mysqld]
后面加上
max_allowed_packet = 128M
128M或者更大

更换服务器迁移:
备份ssbc网站文件
备份数据库:
mysqldump -usmzdy -psmzdy.com --default-character-set=utf8 smzdy > smzdy.sql
在新服务器wget数据过去。
安装环境,
**不需要执行:**
python manage.py makemigrations
python manage.py migrate

安装好mariadb后,新建同名数据库,
导入wget过来的数据库:
mysql -usmzdy -psmzdy.com smzdy < smzdy.sql
导入完后
mysql -uroot -p
选择数据库:
use smzdy
update search_hash set tagged=0;
quit;
然后:
indexer -c sphinx.conf --all (all 前面是空格减号减号)
searchd --config ./sphinx.conf (config前空格减号减号)
cd worker
重新索引所有数据:
python index_worker.py

运行网站,即可

index_worker.py意外退出会导致错误,无法运行:
[root@localhost workers]# python index_worker.py
fetched 10000
Traceback (most recent call last):
File "index_worker.py", line 44, in 
if work() == 10000:
File "index_worker.py", line 35, in work
(one['id'], one['name'], one['category'], one['length'], one['create_time'], one['last_seen']))
File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
self.errorhandler(self, exc, value)
File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, "duplicate id '1'")

解决办法:
用上面的方法先清空tagged
mysql -uroot -p
选择数据库:
use smzdy
update search_hash set tagged=0;
quit;
然后:
备份/data /tem,然后删除这两个文件夹,重新各个新建文件夹和子文件夹,chmod 755 data -R chmod 777 /tem -R

indexer -c sphinx.conf --all (all 前面是空格减号减号)
searchd --config ./sphinx.conf (config前空格减号减号)
cd worker
重新索引所有数据:
python index_worker.py

[1]: http://www.smzdy.com/usr/uploads/2015/12/823242955.png
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
最全面 Nginx 入门教程 + 常用配置解析
python测试开发django-179.Dockerfile部署django和celery服务
Zabbix监控之Redis自动发现并监控
打造一款可靠的WAF(Web应用防火墙)
python快速入门教程:命令行自动化工具与pexpect
CentOS 8.2上安装部署SaltStack Master和 Minion
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服