2020-05-06 10:57:50    54    0    0

前言

此篇,主要是演示docker-php-source , docker-php-ext-install ,docker-php-enable-docker-configure 这四个命令到底是用来干嘛的,它们在PHP容器中都做了哪些事情。
很多人很不理解在Dockerfile中安装PHP扩展的时候总是出现这几个命令,本篇就就是为你揭开这些命令的神秘面纱而准备的,所有案例都是本人自己运行过的。

Docker 中的PHP容器安装扩展的方式有
  1. 通过pecl方式安装
  2. 通过php 容器中自带的几个特殊命令来安装,这些特殊命令可以在Dockerfile中的RUN命令中进行使用。

这里,我们主要讨论的是第二种方案,如何通过PHP容器中的几个特殊命令来安装PHP扩展

PHP中安装扩展有几个特殊的命令

  • docker-php-source
  • docker-php-ext-install
  • docker-php-ext-enable
  • docker-php-ext-configure

演示这三个命令的作用

都是在PHP容器中进行演示的,PHP容器启动太简单,不作过多介绍

docker-php-source

此命令,实际上就是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件而已。我们就把它当作一个从互联网中下载下来的PHP扩展源码的存放目录即可。事实上,所有PHP扩展源码扩展存放的路径: /usr/src/php/ext 里面。

格式

docker-php-source extract | delete

参数说明
* extract : 创建并初始化 /usr/src/php目录
* delete : 删除 /usr/src/php目录

案例

root@803cbcf702a4:/usr/src# ls -l
total 11896 #此时,并没有php目录
-rw-r--r-- 1 root root 12176404 Jun 28 03:23 php.tar.xz
-rw-r--r-- 1 root root      801 Jun 28 03:23 php.tar.xz.asc

root@803cbcf702a4:/usr/src# docker-php-source extract
root@803cbcf702a4:/usr/src# ls -l
total 11900 #此时,生产了p
2020-05-01 08:45:40    23    0    0
docker提供了在服务端分布式的部署应用,这样的好处是方便维护和升级。下面这篇文章主要给大家介绍了利用docker搭建php7和nginx运行环境的相关资料,搭建过程中运用的是官方镜像,需要的朋友可以参考借鉴,下面来一起看看吧。
 

本文分享的是利用docker搭建php7和nginx运行环境的全过程,分享出来供大家参考学习,下面来看看详细的介绍:

环境介绍

根目录: /docker

网站根目录:/docker/www

nginx相关目录:/docker/nginx/conf.d

准备工作

1、使用docker加速器

1
2
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://68abbefd.m.daocloud.io
service docker restart

2、下载相关镜像

1
2
docker pull nginx
docker pull php:7.1.0-fpm

3、建立相关目录

1
2
mkdir -p /docker/www
mkdir -p /docker/nginx/conf.d

4、编辑default.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vim /docker/nginx/conf.d/default.conf
 
# 以下为示例内容
server {
  listen  80 default_server;
  server_name _;
  root   /usr/share/nginx/html;
 
  location / {
   index index.html index.htm index.php;
   autoindex off;
  }
  location ~ \.php(.*)$ {
   root   /var/www/html/;
   fastcgi_pass 172.17.0.2:9000;
   fastcgi_index index.php;
   fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   fastcgi_param PATH_INFO $fastc
2020-04-30 11:23:41    44    0    0

1. 运行一个Docker实例

 

Docker首先会尝试从本地取得并运行所需的镜像,如果在本地主机上没有发现,它就会从Docker公共注册中心拉取。这里,我们将会拉取镜像并在 Docker 容器中创建一个fedora实例,并连接到它的 tty 上的bash shell。

# docker run -i -t fedora bash

如何交互式地创建一个Docker容器

2.安装Apache网络服务器

现在,在我们的Fedora基本镜像实例准备好后,我们将会开始交互式地安装Apache网络服务器,而不是为它创建Dockerfile。为了做到这点,我们需要在终端或者shell运行以下命令。

# yum update

如何交互式地创建一个Docker容器

# yum install httpd

如何交互式地创建一个Docker容器

退出容器的 tty。

# exit

3.保存镜像

现在,我们要去保存在Fedora实例里做的修改。要做到这个,我们首先需要知道实例的容器ID。而为了得到ID,我们又需要运行以下命令(LCTT 译注:在容器外执行该命令)。

# docker ps -a

如何交互式地创建一个Docker容器

然后,我们会保存这些改变为一个新的镜像,请运行以下命令。

# docker commit c16378f943fe fedora-httpd

如何交互式地创建一个Docker容器

这里,修改已经通过使用容器ID保存起来了,镜像名字叫fedora-httpd。为了确认新的镜像是否在运行,我们将运行以下命令。

# docker images

如何交互式地创建一个Docker容器

4. 添加内容到新的镜像

我们自己新的Fedora Apache镜像正成功的运行,现在我们想添加一些我们网站的网页内容到Apache网络服务器,使得网站能够开箱即用。为做到这点,我们需要创建一个新的Dockerfile,它会处理从复制网页内容到启用80端口的所有操作。要达到这样的目的,我们需要使用我们最喜欢的文本编辑器创建Dockerfile文件,像下面演示的一样。

# nano Dockerfile

现在,我们需要添加以下的命令行到文件中。

FROM fedora-httpd
ADD mysite.tar /tmp/
RUN mv /tmp/mysite/* /var/www/html
EXPOSE 80
ENTRYPOINT [ "/usr/sbin/httpd" ]
CMD [ "-D", "FOREGROUND" ]

如何交互式地创建一个Docker容器

这里,上述的Dockerfile中,放在mysite.tar里的网页内容会自动解压到/tmp/文件夹里。然后,整个站点会被移动到A

2020-04-30 11:10:18    7    0    0

第一步:进入到/lib/systemd/system/目录

[root@iz2z init.d]# cd /lib/systemd/system/

第二步:创建nginx.service文件,并编辑

# vim nginx.service

内容如下:

[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

按 Ctrl+C 复制代码

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

保存退出。

第三步:加入开机自启动

# systemctl enable nginx

如果不想开机自启动了,可以使用下面的命令取消开机自启动

# systemctl disable nginx

第四步:服务的启动/停止/刷新配置文件/查看状态

# systemctl start nginx.service          启动nginx服务
# systemctl stop nginx.service           停止服务
# systemctl restart nginx.service        重新启动服务
# systemctl list-units --type=service     查看所有已启动的服务
# systemctl status nginx.service          查看服务当前状态
# systemctl ena
2020-04-30 10:17:54    19    0    0

有时候,我们需要单独安装nginx,来处理大量的下载请求。单独在Centos5安装nginx遇到的rewrite和HTTP cache错误解决办法:

wget http://nginx.org/download/nginx-0.8.33.tar.gz
tar -zxvf nginx-0.8.33.tar.gz 
cd nginx-0.8.33
./configure --prefix=/usr/local/nginx

 

安装Nginx时报错

./configure: error: the HTTP rewrite module requires the PCRE library.

安装pcre-devel解决问题
yum -y install pcre-devel

 

错误提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.   You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.

解决办法:

yum -y install openssl openssl-devel

 

总结:

yum -y install pcre-devel openssl openssl-devel

./configure --prefix=/usr/local/nginx

make

make install

一切搞定

2020-04-30 10:17:24    17    0    0

Centos中无法使用make,make install,命令 make: command not found

一般出现这个-bash: make: command not found提示,

是因为安装系统的时候使用的是最小化mini安装,

系统没有安装make、vim等常用命令,直接yum安装下即可。


yum -y install gcc automake autoconf libtool make

直接ssh运行即可,安装make。

-------------------------------------------------------

安装:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

2020-04-29 10:11:15    13    0    0

超级增长是基于用户自增长实现的,超级盈利是形成了一个立体化的盈利模式,也许在单点上没有那么多的收益,整体上却能获得超级盈利。

对于星巴克,相信大家都已经非常熟悉了。而在美国,却有这么一家面包店,直接喊出“超越星巴克”的口号。

它不只是喊口号这么简单,还真的在美国市场中搅动了一滩浑水。虽然是面包店,却卖起了咖啡和快餐。整个店面“空荡荡”,却打败了排起长龙的星巴克,股价在过去十年均远超星巴克。顺带卖的快餐也抢了肯德基、麦当劳的市场,挤进美国快餐TOP10,这家企业就是Panera Bread。

可能国内很多人对于Panera Bread不了解,因为它至今没有在国内开设门店。

Panera Bread的名字来源于意大利语,意为“时间的面包”,主打非油炸食品。二十世纪八九十年代的美国快餐文化盛行,油腻、肥胖成了众多美国人的现状。Panera Bread另辟蹊径,在一众汉堡、披萨为主打食物的门店中推出了烘焙面包、沙拉等健康食品,结果大受好评。

2017年被JAB Holdings 以 75 亿美元,每股 315 美元的高价买进,创造了美国餐饮史上第二大并购案,轰动一时。现在,PaneraBread是美国最大的面包轻食餐厅,拥有2000家以上的门店,年销售额高达50亿美元,也是美股中著名的大牛股,年平均回报率高达30%

难道因为股价是星巴克的四倍就算打败星巴克吗?它还有哪些绝招?

01 让人上瘾的MyPanera

根据Technomic 公司发布的《2018美国餐饮连锁TOP500排行报告》显示,Panera Bread位列榜单的第10名。虽然Panera Bread的总销售额不及星巴克,但是它的单店销售额却是星巴克的两倍,平均客单价也是前十名中最高的

Panera Bread 能实现今天的成绩,当然与自己用心耕耘产品离不开关系。而这家企业更大的亮点在于,它有一套完整、科学的用户超级增长体系,这究竟是怎样的体系能干倒星巴克呢?

星巴克为了促进消费,推出了“银星、玉星、金星”三个不同的会员等级,通过消费提升等级,每一个等级之间对应有不同的奖励。

在成为星巴克会员之前,你需要买一张星享卡(98元)。当然,购买之前还有一份超长的申请表等着你,激活成功之后便是银星会员,消费1250元才能成为金星会员。

通过不断喝喝喝,不断升级,获得更多的优惠。有一种打怪升级的意思,确实让人欲罢不能,不过到了一周年以后,积

2020-04-27 18:43:22    15    0    0

一、ElasticSearch是什么?

Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据

二、Docker 部署 ElasticSearch

2.1 拉取镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2

2.2 运行容器

ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2

2.3 配置跨域

2.3.1 进入容器

由于要进行配置,因此需要进入容器当中修改相应的配置信息。

docker exec -it es /bin/bash

2.3.2 进行配置

# 显示文件
ls
结果如下:
LICENSE.txt  README.textile  config  lib   modules
NOTICE.txt   bin             data    logs  plugins

# 进入配置文件夹
cd config

# 显示文件
ls
结果如下:
elasticsearch.keystore  ingest-geoip  log4j2.properties  roles.yml  users_roles
elasticsearch.yml       jvm.options 
人人都是产品经理    2020-04-27 14:11:58    26    0    0

最近关于大屏的项目做的比较多,目前手头项目结束,有时间将内容整理分享,基于目前手上的某省监狱项目做可视化大屏规范分享希望能对大家有所帮助。

大屏数据可视化概念

数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。

上述文字来自百度百科,做了许多大屏之后,可总结大屏分为信息展示数据分析监控预警三大类。利用屏幕大可展示信息多的特点,将复杂抽象的内容通过可视化更加直观的方式,以易于理解的形式帮助人们更好决策

设计需求了解

1. 需求分析

一般产品经理需要想清楚大屏展示的内容动线,需要给观者讲述什么故事,由于视觉展示往往也起着决定性作用。所以在需求分析排布时设计师需要提前加入项目中了解项目需求,以展示问题解决问题为目标将业务模块理出顺序。

2. 视觉设计

平时利用Eagle这款图片收藏软件很好的帮助我在需要灵感素材时快速上手。

关键词:FUI \ HUD \ SCI-FI

设计网站:behance、dribbble、站酷、Tob.design、UI中国、花瓣、pinterest

业务场景:智慧园区、智慧安防、智慧交通、智慧城市、智慧监狱、智慧水利、智能客服、智慧仓储、智慧医药、智慧零售、智慧工业、数字港口、智慧工程

3. 硬件了解

数据可视化最终落地平台一般有① 大屏、② 拼接屏、③ LED大屏、④ DLP大屏(无缝隙拼接市场占有率较高)、⑤ LCD、⑥ PDP(3mm拼接缝隙)需要清除了解大屏物理尺寸及视频输出分辨率,确定设计稿尺寸。

根据需求内容及硬件尺寸确定页面布局方式,以下布局为常用布局方式,在实际工作中可能会遇到相同的需求内容会展示在不同比例的大屏硬件中,这时将设计稿的设计尺寸高度固定,地图宽度自适应,用一个设计稿一次开发解决不同尺寸适配问题。

4. 图表类型选择

将抽象的需求用图表的形式展示,一般图表分① 比较类 ② 占比类 ③区间类 ④关联类 ⑤ 趋势类 ⑥ 时间类 ⑦ 地图类。

不同展示内容选用不同形式的图表,但有时候为了视觉效果丰富,不会在一个大屏里显示相同的图表展示方式,这时需要了解图表特性与需求内容将图表差异化展示。并在项目积累到一定程度时整合图表库以便于下次项目快速设计避免重复工作。

5. 字体字号选择

一般大屏设计与开发尽量选择自带字体微软雅黑,数字字体选用din,特殊字体可

2020-04-26 18:10:25    54    0    0

本文谈论的范畴是针对已形成规模的典型交易平台,有足够多的买家和卖家,比如淘宝、京东和美团。其他交易产品因为没有足够多的流量以及用户行为数据,故暂不做考虑。

在解析程序化广告设计之前,先来看几个关于交易的概念以及一些简单的说明。

什么是交易?做生意买卖东西。

什么是互联网交易产品?只要涉及到线上交易,存在现金流,都属于交易产品,比如电商和O2O。

交易产品又包括两类:一类是直接卖货的B2C;另一类便是交易平台。

交易平台最主要的商业模式是什么?抽佣和广告。据京东财报显示,2019年的广告营收占比达到60%左右,所以广告产品对于交易平台来说就显得尤为重要。

某数据服务媒体整理了国内互联网公司2019年上半年的广告营收情况,我截取了典型的几家公司的数据。

一、程序化广告对于交易平台有什么样的价值

从商业的角度看,用户从看到广告开始到产生购买转化,以及生命周期中的所有行为都可以记录和追溯,并且可以通过定向投放、动态创意和优化算法精准地触达用户,做到最佳营销体验和最大化用户生命周期价值,给平台以及平台商家带来可持续的商业价值。

从用户的角度看,程序化能够管理对用户的每一次创意展现,具备做到用户体验最大化的基础,并且创意可以互动,具备实现用户的交流和服务直达的可能,最终有可能彻底改变广告的定义,广告即内容,广告即服务。

二、程序化广告包括哪些核心模块

服务广告主/商家的需求方服务平台,即DSP;服务于流量主的供应方服务平台,即ADX;提供数据服务的数据管理平台,即DMP;提供广告创意的程序化创意平台,即PCP。对于交易平台来说,程序化广告系统一般指的是服务于平台商家的DSP,主要是基于站内流量进行广告投放,有些情况下会选择合适匹配的媒体渠道进行流量对接,当流量较少的情况下也会选择对接外部的ADX获得丰富的流量资源。

至于PCP和DMP都是服务于DSP的,是程序化发展过程中的必然产品,目的是为了提高广告投放的效率和效果,这部分我涉及的较少,就不做过多的描述。

三、程序化广告完整的业务逻辑

四、DSP在产品中的具体设计方法

该部分分别从广告投放平台、前端广告位展示、关键数据指标、广告引擎系统四个方面来展开解析。

先看一下我梳理的产品架构图:

广告投放平台的后台产品设计

(1)新增广告计划

包括两个层级,计划设置和单元设置,单元从属于计划,一个计划可以包含多个单元。

计划包括基本信息、计划类型、日限额、总限额、投放时间;

11/155