环境:Ubuntu 20.04,👴懒截的图就少,搭的很费劲,踩雷部分就不放了。因为服务器上默认是root,省略了一部分的sudo。
0x00 安装Elasticsearch
更新源:sudo apt update
下载安装包。这里注意,本文写的时候ik_smart分词器还没跟上最新版本7.12.1,所以要下载7.12.0:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-amd64.deb
安装:sudo dpkg -i elasticsearch-7.12.0-amd64.deb
编辑配置文件,host改为127.0.0.1:vim /etc/elasticsearch/elasticsearch.yml
访问:curl -X GET "localhost:9200"
安装ingest-attachment插件:/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
安装IK分词插件:/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.0/elasticsearch-analysis-ik-7.12.0.zip
重启服务(重要):/etc/init.d/elasticsearch restart
0x01 搭建宝塔和nextcloud
升级系统:sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get upgrade linux-generic linux-headers-generic linux-image-generic -y && sudo apt autoremove -y
安装宝塔:curl -sSO http://download.bt.cn/install/install_panel.sh && sudo bash install_panel.sh
需要在宝塔内安装环境和配置站点,选择LNMP,PHP要选择7.3及以上,编译安装,其他酌情。
把nextcloud源码放入宝塔内,解压,设置运行目录为nextcloud。
然后访问网址填入管理员账户名密码、数据库相关信息,至此nextcloud搭建成功^^。
搜索“full text”下载这三个插件(OCR插件随意),然后启用。
0x02 安装PHP扩展建立ES索引
安装php-readline扩展。
切目录:cd /www/server/php/74/src/ext/readline
运行:phpize
安装依赖:sudo apt install re2c libedit-dev -y
运行:./configure --with-php-config=/www/server/php/74/bin/php-config
编译:make && make install
修改php.ini:vim /www/server/php/74/etc/php.ini
↓路径要根据自己的改 extension_dir="/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/" extension=readline.so memory_limit = 512M
杀死php-fpm进程:pkill -9 php-fpm
启动php-fpm进程:php-fpm
安装php-pcntl扩展。
切目录:cd /www/server/php/74/src/ext/pcntl/
运行:phpize
运行:./configure --with-php-config=/www/server/php/74/bin/php-config
编译:make && make install
切路径:cd /www/wwwroot/example/nextcloud
这个时候要转到nextcloud后台,设置参数:
初始化索引:sudo -u www php ./occ fulltextsearch:index
对全文搜索功能进行测试,结果如图所示,证明初步搭建成功:
最后,因为需要持续索引服务,所以可以考虑用crontab命令设定定时任务,每个2个小时重新建立一次索引:
0 */2 * * * sudo -u www php /www/wwwroot/192.168.187.145/nextcloud/occ fulltextsearch:index