ElasticSearch 权限不足

可能性一、真的权限不足

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

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

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

可能性三、java版本原因

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

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


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

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

迁移wordpress到HTTPS

鸽了四个月之后我终于想起来配置HTTPS环境了

好的现在不止四个月了,一直以来都懒得写,这不是最近终于有时间了,所以补上。

第一步先把https证书扔上去


#
server {
    listen       80;
    server_name  wordpress.endercaster.com;
    rewrite ^(.*) https://$host$1 permanent;# 强制跳转
    # 这下面其实已经没有执行了
    location / {
        proxy_pass http://127.0.0.1:docker 暴露的端口;

        proxy_redirect off;
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
server {
    listen       443;# ssl默认端口
    server_name  wordpress.endercaster.com;
    ssl on;# 开启ssl
    ssl_certificate cert/wordpress.pem;# nginx下的cert目录
    ssl_certificate_key cert/wordpress.key; # nginx下的cert目录
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_protocols TLSv1.2;# 有个站长工具可以测ssl配置,设置成1.2是支付级安全
    location / {
        proxy_pass http://127.0.0.1:docker 暴露的端口;#下文会提到,因为这里用的是http

        proxy_redirect off;
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

由于我的站是用nginx反向代理+docker 实现的,所以访问后台的时候实际上用的还是http,又由于我在nginx里配置的所有http请求全部跳转到https ,因此需要加上下面的配置才不会出错


/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');
// 这下面是加的
$_SERVER['HTTPS']='ON';// 强行开启https
define('FORCE_SSL_LOGIN',true);
define('FORCE_SSL_ADMIN',true);
define('CONCATENATE_SCRIPTS',false);
// 这上面是加的
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

然后是替换站点url和固定连接,这一步需要操作数据库,执行下面的sql把固定连接和文章内容中的http://wordpress.endercaster.com/换成https://wordpress.endercaster.com/


-- 替换内容
update wp_posts set post_content=replace(post_content,'http://wordpress.endercaster.com/','https://wordpress.endercaster.com/');
-- 替换固定连接
update wp_posts set guid=replace(guid,'http://wordpress.endercaster.com/','https://wordpress.endercaster.com/');
-- 更新站点URL
update wp_options set option_value=replace(option_value,'http://wordpress.endercaster.com','https://wordpress.endercaster.com');

我记得当时配置的时候挺麻烦的,这看上去好像也没那么麻烦

纪念一下docker建站

第一句:docker真是改变人类生产效率的好东西,docker大法好!

考虑搞一套自己的服务器已经好久了,今天算是第一次成功的把三个站点布在了一个服务器(ThinkPad X1C 2014)上,运行还蛮流畅的,下面简述一下建站流程。

数据库:mysql(本机)


sudo apt-get update && sudo apt-get install mysql-server

博客:WordPress


docker run -itd --name wordpress \

-v /opt/wordpress/html:/var/www/html \

-p 12080:80 \

wordpress

项目管理软件:OpenProject


docker run -itd --name openproject \

-v /opt/openproject/pgdata:/var/lib/postgresql/9.6/main \

-v /opt/openproject/logs:/var/log/supervisor \

-v /opt/openproject/static:/var/db/openproject \

-p 10080:80 \

openproject/community

版本控制软件:GitLab


docker run -itd --name gitlab \

--hostname gitlab.endercaster.lan \

-v /opt/gitlab/config:/etc/gitlab \

-v /opt/gitlab/logs:/var/log/gitlab \

-v /opt/gitlab/data:/var/opt/gitlab \

-p 11080:80 \

-p 11022:22 \

-p 11443:443 \

gitlab/gitlab-ce

其实这里可以不用绑定端口的,使用docker run –ip可以指定固定IP(前提是使用自建的网桥docker network create)

这时其实还没完,在wordpress里还要配置apache的servername,否则会无法访问。

反向代理:nginx

这个是在本机安装的,监听80端口,根据host进行转发,一开始本来使用Apache的,但是配置了好久都不能用,经过查阅,nginx的反向代理配置相对简单快速,转而使用nginx。