本帖最后由 w_anghe 于 2019-7-14 11:35 编辑
2019-07-14更新
这个方法还是有些麻烦, 还是建议通过docker搞定, 站内可以搜索相关帖子
这几天在我的orange pi上成功的部署了c1pher(25989406)大神的代码,实现了在同一台机器跑homeassistant服务和用于天猫精灵的oauth2和网关服务(好处就是减少了一次网络访问, 速度会快一些, 可靠性会高一点),现在把整个过程写个简要的教程,不对的地方还请大家指正,对于引用了论坛中诸位大神的代码没有提及的还请见谅。
1.此教程的前提条件,如果不满足以下条件就可以忽略此教程了
a.你的宽带有公网IP或者你用其他方法从公网访问你家里的主机(花生壳,FRP等方法)
b.拥有一个域名和用于此域名https访问的证书(推荐使用letsencrypt证书),内网申请letsencrypt证书推荐使用dnspod验证的方法
c.linux操作的基础知识,会修改配置文件,会apt-get安装软件包
2.LAMP环境搭建
c1pher大神说得对,拥有php+mysql环境就会容易很多,基本就是直接复制代码就行了,所以我重点说一下在类似树莓派的主机上搭建LAMP环境的方法和我具体实践中遇到的坑。
我用的主机是orange pi, 这个类似于树莓派,跑的ubuntu16.04,arm架构,不同于x86架构,一键搭建LAMP环境的脚本是跑不了的,我就具体说一下我安装环境的过程。
a.安装mysql
这个地方有个大坑,当我所有的环境都安装好了的时候,发现无论如何也不能添加设备,后来跟踪代码发现数据操作出错,经过多次尝试发现mysql的版本必须小于5.7,用5.5,5.6的都没有问题,而我的ubuntu16.04安装的软件包默认的就是mysql5.7,要想安装5.6的版本用了很多方法,最后找到一个相对简单的,首先要找到低版本的软件源,编辑/etc/apt/sources.list文件,添加如下内容
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-security main universe restricted multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports trusty-updates main universe restricted multiverse
添加后执行sudo apt-update
sudo apt-cache search mysql | grep mysql-server
从返回的结果查看有哪些版本可以安装,用下边的命令安装相应的版本
sudo apt-get install mysql-server-5.6
如果不出意外mysql就安装上了
b.安装apache
直接执行下面的命令
sudo apt-get install apache2
sudo a2enmod ssl
安装好后配置文件默认的路径是 /etc/apache2,为了支持https,需要修改一下配置文件
/etc/apache2/sites-enabled/000-default.conf
在文件的末尾增加,这个是打开https,红色自己的文件就是数字证书,这个可以申请letsencrypt的证书
<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName 你的域名
SSLEngine on
SSLCertificateFile /var/opt/homeassistant/letsencrypt/certs/cert.pem
SSLCertificateKeyFile /var/opt/homeassistant/letsencrypt/certs/privkey.pem
SSLCertificateChainFile /var/opt/homeassistant/letsencrypt/certs/fullchain.pem
</VirtualHost>
一般家庭宽带的外网运营商都是封443端口的,在你的路由器上映射端口的时候可以映射成其他的端口。
c.安装php环境
经本人测试,php5和php7的环境都可以,比如我的ubuntu16.04安装默认的php组件就是php7,就是以后下载代码的时候一定要按c1pher(25989406)大神的说明,下载对应的版本,这个以后再说。
安装php的代码如下
sudo apt-get install php-fpm -y
sudo apt-get install php -y
sudo apt-get install php-fpm php-cli php-curl php-gd php-mcrypt php-mysql php-cgi
sudo apt-get install libapache2-mod-php
d.部署代码
部署代码就严格按照大神的教程做就可以了
https://bbs.hassbian.com/thread-1862-1-1.html其中涉及到的域名就用你的动态域名和适合的端口,注意不是必须用443端口,其他端口一样可以,只要证书有效。
强调一下,一定要看自己的php的版本来决定用哪个版本的的代码
php5.3.9以下版本可以直接执行:git clone https://github.com/bshaffer/oauth2-server-php.git -b php5.2-develop
git clone https://github.com/c1pher-cn/tmall-bot-x1.git
mv tmall-bot-x1/*.
php版本在5.3.9(包含5.3.9)以上的人请执行下列操作:
git clone https://github.com/bshaffer/oauth2-server-php.git
git clone https://github.com/c1pher-cn/tmall-bot-x1.git -b php5.3
mv tmall-bot-x1/*.
注意apache2的www目录在/var/www/html
e.内网用动态域名访问本地主机可能有问题
如果是openwrt路由器,建议修改host文件, 把动态域名映射成局域网ip,如果不方便,直接修改本机的host文件也可以。
|