分类 服务器端 下的文章

发布镜像到docker hub的流程

首先编写Dockerfile,并且build。

  1. 编写后需要先run起来。可以用docker-compose跑。
  2. 记录下当前container的id,用docker container commit <container ID> <docker.io用户名>/<Image 名>:<Tag 名>来暂存当前的容器为image。
  3. 给image打标签。docker [image] tag 本地镜像名[:tag] 远端镜像名[:tag] image可省略,tag也可省略。
  4. 再用docker push <docker.io用户名>/<Image 名>:<Tag 名>推镜像。

记得要登录docker。docker login -u 用户名 输入密码。

发布到阿里云容器镜像服务

  1. 登录阿里云,启用阿里云容器镜像服务。
  2. 创建命名空间,创建镜像仓库
  3. 在命令行登录到阿里云 docker login --username=<用户名> registry.cn-shenzhen.aliyuncs.com
  4. docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/skys215/brh1:[镜像版本号] 这里的ImageId是上面第3步给image打的标签
  5. docker push registry.cn-shenzhen.aliyuncs.com/skys215/brh1:[镜像版本号] 推到阿里云。

注意这里的registry.cn-shenzhen.aliyuncs.com是我选的区域,根据自己选择的区域不同,需要自行修改。

用startssl生成的证书配置nginx的https

  1. 生成rsa密钥对,openssl genrsa -aes256 -out my-private-encrypted.key 2048
  2. openssl rsa -in my-private-encrypted.key -out my-private-decrypted.key(建议chmod 600 my-private-decrypted.key)
  3. openssl req -new -sha256 -key my-private-decrypted.key -out mydomain.com.csr
  4. 粘贴csr到startssl
    屏幕快照 2017-03-08 上午10.21.48.png
  5. 然后下载文件,并上传到服务器中。
    屏幕快照 2017-03-08 上午10.23.10.png
  6. 在服务器上,刚刚上传文件的地方,下载sub.class1.server.sha2.ca.pem
    wget http://plamenatv.free.bg/up.html
  7. 把两个文件合并到一起(不知道为什么要这样做,大概是为了方便引用?)
  8. sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
  9. 修改nginx配置文件
server {
        listen 80;
        listen [::]:80;
        server_name test.skys215.com;
        return 301 https://$host$request_uri;
}

server{
        listen 443 ssl;
        server_name test.skys215.com;

        ssl on;
        ssl_certificate /path/to/unified.crt;
        ssl_certificate_key /path/to/my-private-decrypted.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;

        root /var/www/test;
        index index.html;

        location / {
                try_files $uri $uri/ =404;
        }
}
  1. 访问https://www.ssllabs.com/ssltest/analyze.html?d=test.skys215.com
    屏幕快照 2017-03-08 上午11.36.11.png

如果结果是A+那就可以了~

但是,starcom签发的证书已经被chrome和firefox标为不受信任的证书提供商。用以上浏览器打开会显示为不安全。

升级Mac(El Capitan)内置PHP后,安装MongoDB扩展

上一篇文章——升级mac内置PHP之后,我开始装MongoDB扩展。

先装pecl,pecl的安装过程并不复杂,所以暂时就不写出来了。

pecl install mongodb安装mongodb扩展。
但是可能在安装pecl的时候,选错路径了,导致需要sudo才行。(或许它本来就是要你用sudo?)

安装到一半的时候,出现了这个提示:

checking for pkg-config... no
configure: error: Cannot find OpenSSL's <evp.h>
ERROR: `/private/tmp/pear/temp/mongodb/configure --with-php-config=/usr/local/php5/bin/php-config' failed

在网上搜索一番之后,告知用brew install openssl,brew link --force openssl之类的就可以解决。
然而并不能。

在网海搜索一晚未果,隔天过来再搜,就出现了这个帖子
按照上面的提示手动安装mongodb扩展就好了。(其实就是修改了编译时的参数)

第一步sudo brew install openssl我已经做过了,所以我跳过了。
第二步是export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
第三步开始手动安装的过程

$ pecl download mongodb
$ tar zxvf mongodb*.tgz
$ cd mongodb*
$ phpize
$ ./configure --with-openssl-dir=/usr/local/opt/openssl
$ make
$ sudo make install

(里面具体的路径地址按需更改)

就完成了手动安装MongoDB扩展的过程。