ElasticSearch 权限不足

可能性一、真的权限不足

这种情况需要使用chown/chmod来对文件夹赋权限,具体要看异常提示中写的是哪一个文件夹。

可能性二、文件目录有空格

这换个文件夹名就行了,大家都会。

可能性三、java版本原因

对,我遇到的就是这个原因,因为我是比较激进的那一派,所以开发环境一般会是我部署的时候最新的版本,比如,JAVA 14。。。这里其实没有什么太完美的解决方式,临时的解决方案是把JAVA_HOME换到ElasticSearch安装目录下的jdk目录。

最后提供一种能解决所有问题的方法:万能的docker镜像


sudo docker run -itd --name es -p 9200:9200 -p 9300:9300 elasticsearch:版本号

如果需要挂载数据卷的话,请参阅官方文档

环境部署踩坑日记

一、lnmp

最近有个项目需要用lnmp环境,于是用一键脚本安装了一下

先是按照一般的nginx部署流程走了一下,结果报500[Laravel项目],很巧,大家都有这个问题,在lnmp官网就能找到,是由于lnmp默认配置禁止跨目录访问,而框架需要读取自动加载脚本[autoload.php],所以我们需要把这个功能停掉

1.编辑/home/wwwroot/default/.user.ini


sudo chattr -i .user.ini
sudo vi .user.ini


open_basedir=$document_root/:/tmp/:/proc/
#改为
#open_basedir=$document_root/:/tmp/:/proc/

2.编辑/usr/local/nginx/conf/fastcgi.conf


fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
# 注释掉
#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

二、Nginx

其实这个是我的问题,直接复制原项目的配置文件,通过修改成不符合语法的配置可以看到测试不通过,也就是说这个文件本身是生效了的,但是通过虚拟域名并未访问到,一开始我以为因为”-“字符的原因server_name没有匹配到,后来发现是监听端口写错了。


listen [::]:80;
# 改为
listen 80;