Ubuntu 16.04 LTS 安装lavarel 环境, php7, nginx1.9, mysql5.7

最近有个小的项目是用laravel写的,本来想用虚拟机搞定,可是正好赶上朋友的公司淘汰一批12寸的本,有好多台跟新的差不多,就要了一台来安装ubuntu 来做开发.

Ubuntu 16.04 的repo 自带了最新版本的php7, nginx1.9, mysql5.7, 正合适laravel 的开发环境

下面是详细的安装过程,正好做一个备份方向以后查找

1.更新本地的repo index以及相关的程序

sudo apt-get update

sudo apt-get upgrade

更多

.htaccess 技巧

最近在开发站点时,为了让URL 好看有助于SEO, 仔细研究了一下 apache rewrite 的规则.

  1. mod_rewrite 需要在htaccess 或者 config 中启用FollowSymlinks, 这是rewrite引擎的安全要求
  2. mod_rewrite 可以重写URL ( rewrite) 或者 重定向 ( redirect) URL. 在对同一个domain 进行映射时,是重写, 如果需要重定向的话,需要在结尾加上FLAG R.  URL重写用于将页面映射到本站另一页面,若重写到另一网络主机(域名),则按重定向处理

 

更多

LNMP/A的open_basedir问题

军哥的LNMP/LNMPA的默认保护措施open_basedir挺不错的,就是无意中会错杀一些使用,95%的应用是不需要修改的,但是也有5%的例外

LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改open_basedir的值来设置限制目录的访问。
.user.ini文件无法直接修改,而且是隐藏文件可能在winscp下可能无法看到,建议使用vim编辑器或nano编辑器进行修改。
如要修或删除需要先执行:chattr -i /网站目录/.user.ini
修改完成后再执行:chattr +i /网站目录/.user.ini
.user.ini不需要重启一般5分钟左右生效。
如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!

LNMPA或LAMP 1.2上的防跨目录的设置使用的对应apache虚拟主机配置文件里的php_admin_value open_basedir参数进行设置。如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。
重启apache生效。

在数据备份和恢复中常用的工具rsync

rsync 在数据备份和恢复中非常的重要,比你直接用wget 来下载要方便的多,因为可以保持各种权限。

如果你的机器的ssh 的默认端口是22的话,可以直接使用下面的模板:

rsync -av /SRC/ -e ssh [email protected]:/DEST

这样就把src机器下的src 目录同步到了dest 机器侠的dest文件夹下

但是如果你的ssh 的默认端口不是22的话,就需要加一个parameter “-p”,但是这个这个参数和后面的value 是不能加空格分开的,我就因为这个小问题搜索了将近一个小时.

加入说你的ssh端口为8808,则需要使用如下的命令:

rsync -av /SRC/ -e ‘ssh -p8808’  [email protected]:/DEST

另外如果你想监控同步的progress的话,就需要加上一个–progress 的参数:

rsync -av –progress /SRC/ -e ‘ssh -p8808’ [email protected]:/DEST

或者

rsync -av -P /SRC/ -e ‘ssh -p8808’ [email protected]:/DEST

 

Also add -h to show human readable sizes (350M instead of 367071842)

 

mysql大数据库备份问题

这个问题经常遇到,自己研究了半天,对于大型的数据库,除了用专业的免费的开源的percona 的工具以外,就只有使用mysqldump 来导出,用mysql 来导入了。。

 

mysqldump 导出格式:

mysqldump -u root -p datbase_name > backup_output.sql

mysql 导入:

mysqldump -u root -p database_name < backup_output.sql

注意,在导入和导出的时候均需要在ssh console里面操作,鉴于国内的网络异常的不稳定,一旦ssh断掉,导入和导出就会断掉,所以建议使用国外的vps 来进行操作

 

CSF SSL问题

今天下午在服务器上新切了一个小鸡,装了一个CSF,结果过了一会CSF 发来error email alert:

 

Oops: Unable to download: Protocol scheme ‘https’ is not supported (Crypt::SSLeay or IO::Socket::SSL not installed)

 

说实话,以前真的没有见过这个error,google 了一下才发现原来是PERL 的module 被卸载了。。(估计是装LNMP卸载的。。LNMP 会卸载掉好多的module)

 

知道了原因,解决办法就很简单啦

yum install perl-Crypt-SSLeay perl-Net-SSLeay -y

然后重启CSF即可

牛逼的开源机器学习框架知多少

这篇文章是从36dsj转载过来的,写的很不错

 

449

机器学习毫无疑问是当今最热的话题,它已经渗透到生活的方方面面,在移动互联网中混不懂点机器学习都不好意思,说几个能看的到的,经常用邮箱吧,是不是感觉垃圾邮件比N年前变少了,无聊了和siri聊过天不,想坐一下无人驾驶汽车吗,手累了用脸解个锁,智能化产品推荐是不是让你更懒了。看不到的就更多了:信用卡欺诈监测保证你的交易安全,股票交易/量化投资(知道你的高收益理财怎么来的吗?),手势识别(用过海豚浏览器的手势吗),还有医学分析等等,巨头们为了在未来占领先机,前仆后继的开源他们的机器学习框架,加速了人类进入智能时代的步伐(说什么,机器人?)

Facebook:用于Torch的模块库fbcunn (2015-01-17 开源)

fbcunn可以替代Torch的默认模块,它们构建在Nvidia的cuFFT库(一个基于CUDA的库,用于深度神经网络)之上,可以在更短的时间内训练更大规模的神经网络模型,它对NVIDIA的GPU进行了优化。一部分可以用来训练大型计算机视觉系统。部分模块也可以用来训练处理不同类型数据的模型。既可以进行文本识别、图像识别,也能用于语言模型的训练。部分模块将大型卷积神经网络模型的训练速度提升了23.5倍。

fbcunn基于Fast Training of Convolutional Networks through FFTs这篇论文中的想法构建了这些模块,FAIR(Facebook人工智能实验室)的主任Yann LeCun是论文的合著者之一。与cuDNN相比,在卷积核较小的情况下(3×3),fbcunn的速度提升可达1.84倍;而在卷积核较大的情况下(5×5),速度提升可达23.5倍。

Torch和fbcunn的最早的用途之一:图片分类,它分类过ImageNet的120万张图片,可以参考这个地址:https://github.com/soumith/imagenet-multiGPU.torch

参考: >

https://github.com/torch/

https://github.com/facebook/fbcunn

https://research.facebook.com/blog/879898285375829/fair-open-sources-deep-learning-modules-for-torch/

微软:DMTK(2015-11-16 开源)

DMTK由参数服务器和客户端SDK两部分构成。参数服务器支持存储混合数据结构模型、接受并聚合工作节点服务器的数据模型更新、控制模型同步逻辑;客户端SDK负责维护节点模型缓存(与全局模型服务器同步)、本地训练和模型通讯之间的流水线控制以及片状调度大模型训练。它包含DMTK框架、LightLDA和分布式词向量(Word Embedding)三个组件。

DMTK采用了传统的客户端/服务器架构,有多个服务器实例运行在多台机器上负责维护全局模型参数,而训练例程(routines)则使用客户端API访问并更新这些参数。为了适应不同的集群环境,DMTK框架支持两种进程间的通信机制:MPI和ZMQ。应用程序端不需要修改任何代码就能够在这两种方式之间切换。DMTK支持Windows和Linux两种操作系统。

DMTK则是使用C++编写的,提供了一个客户端API和SDK。 DMTK的官网 对DMTK框架、LightLDA、分布式词向量的应用场景、下载、安装、配置、运行以及性能等方面都做了详尽的介绍(见参考部分)。

DMTK主要用于自然语言处理方面,比如:文本分类与聚类、话题识别以及情感分析等

参考:

http://www.dmtk.io

https://github.com/Microsoft/DMTK

Google:TensorFlow(2015-11-10 开源)

TensorFlow 是一个用来编写和执行机器学习算法的工具。计算在数据流图中完成,图中的节点进行数学运算,边界是在各个节点中交换的张量(Tensors–多维数组)。TensorFlow负责在不同的设备、内核以及线程上异步地执行代码,目前支持CNN、RNN和LSTM等图像、语音和自然语言处理(NLP)领域最流行的深度神经网络模型。

Google已将TensorFlow用于GMail(SmartReply)、搜索(RankBrain)、图片(生成图像分类模型–Inception Image Classification Model)、翻译器(字符识别)等产品。

TensorFlow能够在台式机、服务器或者移动设备的CPU和GPU上运行,也可以使用Docker容器部署到云环境中。在处理图像识别、语音识别和语言翻译等任务时,TensorFlow依赖于配备图像处理单元(GPU)的机器和被用于渲染游戏图像的芯片,它对这些芯片依赖度比想象中的高。当前开源的版本能够运行在单机上,暂不支持集群。操作系统方面,TensorFlow能够运行在Linux和MacOS上。

TensorFlow的核心是使用C++编写的,有完整的Python API和C++接口,同时还有一个基于C的客户端API。

参考:

https://www.tensorflow.org

https://github.com/tensorflow/tensorflow

IBM:SystemML (2015-06 开源)

SystemML是灵活的,可伸缩机器学习(ML) 语言,使用Java编写。可实现 可定制算法(述性分析、分类、聚类、回归、矩阵分解及生存分析等), 多个执行模式(单独运行、Hadoop 和 Spark ), 自动优化。它由 IBM 的 Almaden 实验室花了近 10年开发而成的机器学习技术。

SystemML语言,声明式机器学习 (DML)。SystemML 包含线性代数原语,统计功能和 ML 指定结构,可以更容易也更原生的表达 ML 算法。算法通过 R 类型或者 Python 类型的语法进行表达。DML 通过提供灵活的定制分析表达和独立于底层输入格式和物理数据表示的数据显著提升数据科学的生产力。

SystemML 运行环境支持 Windows、Linux 及 MacOS,可支持单机和分布式部署。单机部署显然有利于本地开发的工作,而分布式部署则可以真正发挥机器学习的威力,支持的框架包括 Hadoop 和 Spark

众所周知的IBM AIWaston融入了不少SystemML技术(不了解的同学可以看下《Jeopardy!》节目,来领教到沃森的威力)

参考:

http://systemml.apache.org

https://github.com/apache/incubator-systemml

三星:VELES

VELES 是分布式深度学习应用系统,号称:用户只需要提供参数,剩下的我来搞,VELES使用 Python 编写,使用OpenCL 或者 CUDA,利用基于Flow 的编程方式。

参考:

https://velesnet.ml

https://github.com/Samsung/veles

百度:期待ING。。。

巨头之所以开源自己耗时多年打造的机器学习框架,是希望能够加速在人工智能方面的部署,在人工智能日益重要的未来抢占更多的主导权。而对于机器人创业公司来说,当这么多巨头将机器学习平台开源后,还有什么理由做不好机器人。

End.