Install searx on Debain 9

本文演示在 Debian 9 上安装自己的元搜索引擎 searx 。

huyo 就是使用的 searx ,查看 Github 上的源代码 。 使用 huyo请访问:huyo.me

查看 :searx 所支持的搜索引擎

假设你是一台新的 Debain 9 。

Ⅰ. 安装所需软件

安装 Git

apt install git

安装 Python3

apt install python3

安装 pip

apt install python3-pip

安装 virtualenv

pip3 install virtualenv

Ⅱ. 使用 Git 下载项目并创建虚拟环境: 进入到所建网站的目录

cd /usr/local

Git searx

git clone https://github.com/asciimoo/searx.git && cd searx

创建虚拟环境

virtualenv -p python3 searx-ve

激活虚拟环境:

source searx-ve/bin/activate 

你会注意到命令行前多了(searx)

(searx) root@ip xxxx:~# 

Ⅲ. 安装 searx 所需要的依赖项,开启服务器

pip3 install -r requirements.txt

这个 requirements.txt 里包含所有运行 searx 所需要的运行依赖。

python3 searx/webapp.py

现在你的 searx 已经成功运行。

Ⅳ. 生产环境

使用 uwsgi

apt install uwsgi uwsgi-plugin-python3

新建配置文件

vim /etc/uwsgi/apps-available/searx.ini
[uwsgi]
# Who will run the code
uid = searx
gid = searx

# disable logging for privacy
disable-logging = true

# Number of workers (usually CPU count)
workers = 4

# The right granted on the created socket
chmod-socket = 666

# Plugin to use and interpretor config
single-interpreter = true
master = true
plugin = python
lazy-apps = true
enable-threads = true

# Module to import
module = searx.webapp

# Virtualenv and python path
virtualenv = /usr/local/searx/searx-ve/
pythonpath = /usr/local/searx/
chdir = /usr/local/searx/searx/

创建用户并授权

useradd searx -d /usr/local/searx
chown searx:searx -R /usr/local/searx

设置并重启

cd /etc/uwsgi/apps-enabled
ln -s ../apps-available/searx.ini
/etc/init.d/uwsgi restart

Ⅴ. 退出虚拟环境

deactivate

如果需要删除虚拟环境使用 rm -rf 直接移除

默认情况下,虚拟环境会安装 site packages 里已经存在的第三方包,如果不想安装这些已经存在的第三方包,那么可以加上参数 --no-site-packages 比如创建 searx

virtualenv --no-site-packages searx

Ⅵ. 设置 NGINX

反代 8888 端口

server {
    listen 80;

    server_name 域名;
    error_log /var/log/nginx/searx.log error;
    

    location /  { 
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Script-Name /searx;
        proxy_buffering off;
    }
}
server {
    listen 80;
    server_name 域名;
    root /usr/local/searx;
    error_log /var/log/nginx/searx.log error;

    location / {
            include uwsgi_params;
            uwsgi_pass unix:/run/uwsgi/app/searx/socket;
    }
}
service nginx restart
service uwsgi restart

发表评论

电子邮件地址不会被公开。 必填项已用*标注