从零开始,修改Nginx服务器访问根目录

1. 蓝牙音响

蓝牙技术是爱立信在 1994 年提出的,那个时候是作为 RS232 数据线的取代策略
.
蓝牙是一种无线传输技术,可以得到当多设备的短距离数据更换,如大家的智能手机,此类技术最大的长处在于无线传输,外加就是短距离,因而发射功率不需要那大,也省电。

蓝牙音箱就是将此类技术应使用有源音箱上,经过此类无线传输技术,将智能手机、平板电脑或
PC 上的数字音频传输到音箱上,就会得到无拘无束的无线音乐播放。

场景应用:  便携式音箱、离线音乐播放、 无线传输

009 Linux下编译安装Nginx服务器 并 修改Nginx服务器访问根目录,009nginx

一、 nginx安装环境

       yum install -y gcc-c++   pcre pcre-devel zlib zlib-devel  openssl
openssl-devel

该命令等效于下面4句:

1、  gcc 安装
       
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:

         yum install gcc-c++

2、  PCRE pcre-devel 安装
       PCRE(PerlCompatible Regular Expressions)是一个Perl库,包括 perl
兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
        yum install -y pcre pcre-devel

3、  zlib 安装
       
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
        yum  install -y zlib zlib-devel

4、OpenSSL 安装
     
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
       yum  install -y openssl openssl-devel

二、下载nginx

1.直接下载.tar.gz安装包,地址:

2.使用wget命令下载1.10.1版本(推荐)。
wget -c

三、安装

1、解压
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

2、配置
其实在 nginx-1.10.1
版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。
1.使用默认配置
./configure
输出:
      nginx path prefix: “/usr/local/nginx”
      nginx binary file: “/usr/local/nginx/sbin/nginx”
      nginx modules path: “/usr/local/nginx/modules”
      nginx configuration prefix: “/usr/local/nginx/conf”
      nginx configuration file: “/usr/local/nginx/conf/nginx.conf”
      nginx pid file: “/usr/local/nginx/logs/nginx.pid”
      nginx error log file: “/usr/local/nginx/logs/error.log”
      nginx http access log file: “/usr/local/nginx/logs/access.log”
      nginx http client request body temporary files:
“client_body_temp”
      nginx http proxy temporary files: “proxy_temp”
      nginx http fastcgi temporary files: “fastcgi_temp”
      nginx http uwsgi temporary files: “uwsgi_temp”
      nginx http scgi temporary files: “scgi_temp”

3、编译安装
make
make install

查找安装路径:”/usr/local/nginx

四、开放80端口、开放http服务,重启防火墙
    firewall-cmd –zone=public –add-port=80/tcp –permanent
    firewall-cmd –permanent –zone=public –add-service=http
    firewall-cmd –reload
    firewall-cmd –list-all
#查看开放服务、端口中是否有http服务和80端口。

五、更改nginx访问根目录
安装完nginx服务器后发现nginx的根目录在
安装目录的/html/下(/usr/local/nginx/html/),但是对于部署文件来说,在该目录下是不太习惯的,我就尝试着更改nginx访问的根目录

1、更改nginx配置文件

   vi  /usr/local/nginx/conf/nginx.conf

更改如下:

    server {
        listen       80;
        server_name  localhost;
        location / {                 
            root  /home/ftpuser/wwwRoot;               #新的根目录
            index  index.html index.htm index.jpg;  
#添加一张图片,测试用。
        }

2、nginx根目录权限设置:

         chmod  -R 755  /home/ftpuser/wwwRoot/

3、重启nginx务器
     service nginx restart

4、测试

拷贝一直张jpg格式图片到:/home/ftpuser/wwwRoot/目录下,改名为:index.jpg

chmod  744  /home/ftpuser/wwwRoot/index.jpg #设置所有人可读。
访问
设置完成后此时访问   即为/home/www/XXX

六、使用nginx
1 启动nginx
 /usr/local/nginx/sbin/nginx

注意:执行 /usr/local/nginx/sbin/nginx,这里可以-c指定加载的nginx配置文件,如下:
/usr/local/nginx/sbin/nginx -c /xxxxx
如果不指定-c,nginx在启动时默认加载/usr/local/nginx/conf/nginx.conf文件。

 
2 停止nginx
/usr/local/nginx/sbin/nginx -s quit
此方式停止步骤是待nginx进程处理任务完毕进行停止。

 
3 重启nginx:先停止再启动
/usr/local/nginx/sbin/nginx -s quit
/usr/local/nginx/sbin/nginx

 

亲自动手写一个python库(二),动手写python库

引言

经过上一节中所述,我们搭建好了一个Python环境用于库开发,我们在这一节真正开始搭建一个库,并将其发布。

项目文档结构

首先我们先构建出自己项目的文档结构,首先是LICENSE和README.md,这两个文件并不是必要的,但是最好将其加上,方便别人了解你的项目。README.md是关于本项目的介绍,LICENSE是表示该项目所遵循的开源协议,一般MIT用的比较多,其他协议你可以百度谷歌了解一下。

接下来是打包库需要的一些文件,主要有MANIFEST.in和setup.py两个文件。MANIFEST.in表示打包时不会被自动包含进去的附加文件清单。setup.py是打包程序配置文件,需要设置一些选项。此外,setup.cfg是包含setup.py额外配置信息的文件,我没有用到这其中的设置,所以本项目中其是空的。

caafinder文件夹就是我们要写的Python程序,我们要注意这个文件夹里必须有__init__.py这个文件。

下面是一下setup.py的一些简单配置选项,详细请参考官方文档。

可以参考一下:

  • PyPA sample project这是一个官方示例库结构。

  • Python Packaging User Guide这是Python打包的官方英文文档。

关于模块

模块也就是库,我们自己写程序时,通常通过import
XX来导入一个需要的模块,在Python中,一个py文件就是一个模块,如一个abc.py的文件就是一个名字叫abc的模块。

你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package),包是一个带有__init__.py的文件夹,如图中文档所示,我们有一个包caafinder,因为它的子级有一个__init__.py,包caafinder拥有database和workspace两个模块。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是caafinder。

程序打包

通过执行下列语句来进行打包:

其中xxx可以是下列几种方式中其中一个:

举个例子:

此时在根目录出现了dist文件夹,里面有name-version.tar.gz这个文件,这就是我们要发布到PyPI的压缩包了。

发布到PyPI

首先我们需要在PyPI上注册一个帐号,并在本地用户根目录下创建文件~/.pypirc,这样以后就不需要输入帐号密码了。

接下来,需要在PyPI网站上注册一个项目,网站提供三种方式注册,选择一种即可,最简单的是通过上传打包时生成的PKG-INFO文件,生成项目信息。此步骤只需在第一次发布时操作。

接下来就是最后一步,上传打包好的库。我们这里是用twine,如果环境中没有安装,需要先采用pip
install twine安装即可。

此时在网页上就可以看到自己的源代码包啦,并且可以通过使用pip install
packagename,就可以使用我们自己写的Python库了。

祝大家玩的开心,希望大家能到Github上帮忙点个赞。

作者:Gutierrez

来源:


————广告时间————

马哥教育2018年Python自动化运维开发实战面授班2018年3月5号开班,马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才

扫描二维码领取学习资料**

更多Python好文请点击【阅读原文】哦

↓↓↓

从零开始,搭建 AI 音箱 Alexa 语音服务,aialexa

本文来自作者 Mike 在 GitChat 上分享 「从零开始,搭建 AI 音箱 Alexa
语音服务」,「阅读原文」查看交流实录。

「文末高能」

编辑 | 哈比

一、概述

生活场景的引入:
物联网的快速发展,各种智能设备层出不穷,作为极客,家里早已安上了用 APP
控制的智能灯、智能插座,刚刚安装上的时候,还有新鲜感,久了之后,是不是会有这样的现象:

早上醒来要开灯,需要经过:

  1. 迷迷糊糊从床头柜上摸到手机

  2. 手机用指纹解锁

  3. 连接无线网络

  4. 找到对应设备的 APP

  5. 点击开灯按钮

这样的场景真的为生活带来了便利吗 ?
糟糕的体验,繁琐的过程,从而使这个产品慢慢淡出我们的生活场景 .
于是,那个物理开关的使用频次又恢复了,这或许也是智能设备不能普及的根本原因之一。

以上生活的场景有很多,根本原因是缺少了和产品对话的功能,即语音交互,所以显得不那么智能。

理想的情景:

早晨醒来时,只需要说一声:
睡醒了,然后灯自动亮起,窗帘自动打开,音乐自动响起
….,这样的场景你还满意吗 ?

一个便利的生活场景描述正式带你进入本文的环节: 语音交互

根据人机交互这个维度,主要划分了三个时代:

第一个时代:PC
时代
。让电脑明白人类的意图,通过鼠标、键盘的方式输入让浏览器搜索获取想要的知识。

第二个时代:移动时代。Touch 称为该时代交互方式,就是 2007
年乔布斯发布的
iPhone。触摸屏的出现极大的提高了用户交互的体验,容易上手。

键盘和触摸同共构成了互联网交互方式的过去和现在。从另外一个角度说,也可以把键盘对应于
PC 时代交互方式,把触摸对应于移动时代交互方式。

正是因为用户从 PC 转移到了移动端,互联网行业才发生了那么多的变化。

第三个时代:AI
时代
。语音称为该时代的交互方式,每一部手机都将能听会说,每一台家电都将能听会说,每一辆汽车都将能听会说,无人驾驶,每一个玩具都将能听会说。

语音时代,用户只需要用说话的方式给服务终端发布命令,就能得到相应的服务 .
这一产业从上世纪六十年代就已出现,但并不为普通消费者所熟知,消费者对其认知度也比较低。

近年来,随着苹果、亚马逊、谷歌、微软等公司先后推出 Siri、Echo
等智能语音服务,这一服务以及相关产业也开始被普通消费者和投资界所关注。

这里必须要提到亚马逊的 Echo 智能音箱。Echo
已经成为语音时代的一个重大创新,成为智能家庭的一个现象级应用。

由于 Echo 尚没有中文版,所以大家没有体会到它的热度,然而在美国,已经成为
“ 一款现象级的革命性产品 “。

从 2014 年 11 月正式发布到现在,亚马逊的 Echo
智能音箱超过两岁了。在这两年时间里,它从一开始随时可能夭折的 “ 新生儿
“,发展成如今市场上最为火热的智能家居产品之一。

二、国内外智能音响

随着着亚马逊 Echo
的火爆引发一连串的效应,这也是智能音箱行业的一个重要转折点。各大巨头纷纷入局,如亚马逊
Alexa、微软 Cortana、Google Assistant、苹果 Siri、三星
Bixby、等智能语音助手。

如今,这场战火也点燃了中国市场。井喷式发展的中国智音箱市场已经成为了科技巨头、传统行业厂商、创业公司博弈的竞技场,玲琅满目的智能音箱产品都奔赴在路上
!

各大厂商的音响盘点,单品测评,性价比优势,各种平台已报道出很多,这里以音响的软硬件配置作为切入点,分析各大厂商的方案选型,性价比优劣势:

五、语音服务开发指南

近年来国内外各大巨头同时发力争夺未来人工智能时代的语音入口,甚至亚马逊和阿里率先不惜代价开启了补贴大战
. 这些全球剧透的激烈竞争,将对未来十年产生极其重要的影响。

同时,这也是技术人员职业快速发展的机会。这里以语音为核心,介绍声学模型、信号处理、语音识别开发平台、结构等相关知识框图,每一个方面都需要时间去实践,可以结合自己现有知识进行拓展。

框图只做参考,部分细节需要结合实际情况去分析。

1.  Amazon 注册设备

1.1 账号注册

按照以下说明
注册步骤,注册一个产品,填写相关信息并创建安全配置文件,用于与 Alexa
进行通信的访问和刷新令牌。

Note:Web 设置下的允许 origin 和返回 URL
应分别为: 和 .

1.2 信息

注册设备后,找到安全配置(Security
Profile)文件下的常规(General)选项卡,并记下 clientID,clientSecret 和
deviceTypeID。后面将需要这些信息来配置 AuthServer,获取 token。

发表评论

电子邮件地址不会被公开。 必填项已用*标注