之前用来搭建小说网站的 VPS 被墙了,连接国内搜索引擎似乎出了问题,导致在搜索的时候出了问题,好多小说都搜不到。
昨晚重新买了一台配置更高的服务器,重新部署。
这里记录一下安装过程。
感谢作者提供的项目:https://github.com/howie6879/owllook
作者写的安装教程:https://mp.weixin.qq.com/s/0CqLiKsyDQ-pVmeo3R-UlA
然后是我搭建的演示站:book.uud.me
以下安装教程基于 Centos 7
安装基本组件
系统编码改为UTF8
export LANG=en_US.UTF-8
更新系统:
yum -y update
安装EPEL源:
yum -y install epel-release
安装基本组件:
yum -y install wget git curl screen bzip2
安装Redis
安装Redis:
yum -y install redis
运行Redis并设置开机自启动:
systemctl start redis
systemctl enable redis
安装mongodb
新建一个repo源,安装mongodb:
vi /etc/yum.repos.d/mongodb-org-4.0.repo
写入:
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
直接yum安装:
yum -y install mongodb-org
启动mongodb并设置开机启动:
systemctl start mongod
systemctl enable mongod
记录一下安装Anaconda的坑
安装Anaconda
国内服务器可以用清华的镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
安装Anaconda用于管理Python环境:
wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
chmod -R a+x Anaconda3-2019.10-Linux-x86_64.sh
./Anaconda3-2019.10-Linux-x86_64.sh
接下来会出现一堆的License许可声明,一路回车向下,或者不想看声明的,可以直接按q:
直到看到要求输入yes或者no,输入yes,然后回车:
选择安装目录:
之后开始安装。
咳咳,然后尴尬地发现一直卡在Unpacking payload ……
搜索后找到:https://github.com/ContinuumIO/anaconda-issues/issues/11466
似乎是最新版的问题,在单核VPS上会出现。
那就安装旧版吧:
wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh
chmod -R a+x Anaconda3-2019.07-Linux-x86_64.sh
bash Anaconda3-2019.07-Linux-x86_64.sh
看到进度条在动就是在安装:
选择是否初始化,输入yes,回车:
创建Python3.6环境
owllook 需要用到 Python3.6
使用 anaconda 创建 Python3.6环境
conda create -n python36 python=3.6
遇到的坑 -bash: conda: command not found
解决: export PATH=~/anaconda3/bin:$PATH
再 conda create - n python36 python = 3.6
时又遇到:CondaValueError: The target prefix is the base prefix. Aborting
解决: conda create --name files
终于成功安装:
查看 python 环境
conda info --envs
其中 * 号表示当前使用的 Python 环境
配置owllook
git clone https://github.com/howie6879/owllook
cd owllook
安装pipenv
pip install pipenv
pipenv install --python /root/anaconda3/envs/python36/bin/python3.6
#如果上面的命令出错,就运行以下两条命令:
pipenv run pip install pip==18.0
pipenv install
安装过程费时较长,耐心等待。
安装成功后,如图所示:
修改配置文件
cd owllook
vi config/config.py
找到如下这段代码:
VAL_HOST = os.getenv('VAL_HOST', 'true')
改为:
VAL_HOST = os.getenv('VAL_HOST', 'false')
现在使用screen创建一个新的shell:
screen -S owllook
在新shell内运行程序:
python server.py
如果出现报错,尝试修改:
vi config/__init__.py
将里面的 os.environ['MODE'] = 'PRO'
注释:
#os.environ['MODE'] = 'PRO'
mode = os.environ.get('MODE', 'DEV')
LOGGER.info('owllook 启动模式:{}'.format(mode))
按照作者的意思,如果还是出错,你应该把以下这些文件里的 os.environ['MODE'] = 'PRO'
都注释了:
改完之后,再次运行:
python server.py
看到如下图所示,就是正常运行了:
此时,按下键盘组合键 Ctrl + A + D
退出 Screen 窗口
然后再次新建一个 Screen 用于运行排行榜爬虫:
Screen -S spider
cd /root/owllook/owllook/spiders
python spider_console.py
没报错就是正常运行了,需要等一段时间网站上的排行榜才会有内容,不用急。
反代网站
以上步骤完成后,浏览器打开 IP:8001 就能看到内容
如果需要域名访问则可以用 Nginx 反代
上面的步骤都没有安装 Nginx,先安装:
yum -y install nginx
然后新建网站配置:
vi /etc/nginx/conf.d/book.conf
写入:
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://0.0.0.0:8001;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
重启Nginx:
systemctl restart nginx
关闭防火墙和 SElinux:
systemctl stop firewalld.service
systemctl disable firewalld.service
vi /etc/selinux/config
SELINUX=disabled
setenforce 0
或者也可以安装宝塔面板,用宝塔面板进行反代,也是比较方便的。
而且如果你想修改默认的首页内容,有宝塔的文件管理改起来也比较方便。
版权属于:作者名称
转载时须注明出处及本声明
7 comments
用的宝塔面板,用其终端ssh安装是一样的吗
您好,请问安装pipenv这一步pipenv install --python /root/anaconda3/envs/python36/bin/python3.6这个命令报错
ERROR:pip.subprocessor:Command errored out with exit status 1:
command: /root/.local/share/virtualenvs/owllook-kjRL-ddR/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-resolver-nbhh_58e/uvloop/setup.py'"'"'; __file__='"'"'/tmp/pip-resolver-nbhh_58e/uvloop/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-resolver-nbhh_58e/uvloop/pip-egg-info
Complete output (5 lines):
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-resolver-nbhh_58e/uvloop/setup.py", line 5, in
RuntimeError: uvloop requires Python 3.7 or greater
怎么整?
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
卡在这一步了怎么办,输入后要按什么开始呢?
写入后,!wq 保存退出,然后 yum 安装
后面太复杂了搞不懂
你好,我想问一下,在最后调试的时候出现的错误,要注释那段是怎么解决的?我注释了所有的文件,但仍然出错,错误是:
File "server.py", line 2, in
ModuleNotFoundError: No module named 'aiocache'
应该是你 pipenv install 这步出问题了