PowerEdge R430 机架式服务器安装( Ubuntu server 14.04.1 、PHP5.5.9、PHP-redis2.8、Phalcon3.1)

未解决问题:换成静态路由的话,怎么就 apt-get udpate 出现错误信息!

解决办法:么有设置网关

一、Ubuntu 系统下载地址:

https://certification.ubuntu.com/certification/hardware/201412-16241/

2、uiso9_cn_9.6.6.3300.exe 下载

3、ubuntu server12.04系统U盘安装详细教程

https://wenku.baidu.com/view/64e4c33c2b160b4e777fcf28.html

4、Ubuntu 14.04 Server开发者安装指南

http://xiaoquqi.github.io/blog/2015/09/09/ubuntu-14-dot-04-installation-guide-for-developer/?utm_source=tuicool&utm_medium=referral

5、网卡信息看查看(cat /proc/version Ubuntu 系统查看)

二、有多块硬盘,安装系统的时候先安装一个硬盘(例如:有一个固态硬盘和我普通硬盘,这时候先把普通硬盘卸载下来,只安装一个固态硬盘就可以)

  开机、选择F10 (Dell 服务器自带的一个控制系统),为了创建一个RAID 0 如下所示:

创建好后,直接退出,重新启动即可。

三、上一步结束之后,选择F11,安装系统就可以了(USB安装)

具体安装步骤:

(14.04)安装英文版参考:http://www.win789.com/linux/2016/37

(16.04)安装中文版参考:http://www.win789.com/linux/2016/37

四、系统安装好后,查看硬盘信息,没有普通硬盘,我的错,是我忘记没有插入普通硬盘。

关机(poweroff),插入普通硬盘(1T),重启开机,发现还是没有加载过来,为什么?

解决办法:

服务器开机,系统自检,加载到PERC卡自检界面的时候,按<CTRL+R>进入PERC BIOS管理界面

没有啊!

如果下面的State 不为Ready 和Online ,而是foreign 状态时候

移动到首页最上面 摁F2 选择foreign config 之后选择clear既可以

使用上下、键 选中:Create New VD

使用上下键选中这个硬盘,直接Ok就可以了

继续OK

这时候我们发现有了,分别为Group :0 Group :1(这个是刚才新创建的)

继续选择这个ID:为 1T的普通硬盘按住 F2键即可,

回车键,选择fast Init 直接OK就可以

继续 OK

创建完毕,

五、重启系统,查看硬盘信息,已经是有了的

查看磁盘具体信息

下面使用LVM硬盘管理及LVM扩容:

详情参考:http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html

具体用到的命令:

    1  sudo poweroff
    2  ls /dev/sd*
    3  sudo poweroff
    4  ls /dev/sd*
    5  df -lh
    6  sudo fdisk /dev/sdb
    7  sudo apt-get install lvm2
    8  sudo fdisk -l
    9  sudo fdisk /dev/sdb
   10  sudo fdisk -l
   11  sudo partprobe
   12  sudo fdisk -l
   13  sudo pvcreate /dev/sdb
   14  sudo pvcreate /dev/sdb1
   15  pvdisplay
   16  sudo pvdisplay
   17  sudo vgdisplay
   18  sudo vgcreate VolGroup00 /dev/sdb1
   19  sudo vgdisplay
   20  sudo lvcreate -L 1.09T -n lvData VolGroup00
   21  sudo mkfs -t ext3 /dev/VolGroup00/lvData 
   22  sudo mount /dev/VolGroup00/lvData /mnt
   23  df -lh
   24  cd /mnt
   25  ks
   26  ls
   27  history >~/lvmoperation.txt

创建和管理LVM

1、 创建分区

使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。如下列图所示:

disk /dev/sdb doesn't contain a valid partition table(磁盘/ dev / sdb不包含有效的分区表)

查看磁盘分区表

使用fdisk创建分区,根据设备文件的绝对路径(/dev/sdb)进入分区管理

六、网络、网卡配置

0、阿里云配置

auto eth1  (外网)
iface eth1 inet static
address 121.40.58.62
netmask 255.255.252.0
up route add -net 0.0.0.0 netmask 0.0 gw 59.247 dev eth1

auto eth0  (内网)
iface eth0 inet 10.251.249.160
netmask 248.0
up route add -net 172.16.255.240.255.247 dev eth0
up route add -net 100.64.255.192.10.0.255.0.255.247 dev eth0

1、网络配置,参照这个博客

ubuntu-server14.04 网络配置

1,首先运行ifconfig命令,发现网卡没有启动,只有本地环回。 2,查看服务器网卡:ifconfig -a 发现有四个网卡分别是:em1, eth1, p1p1,p1p2 3,加载网卡:ifconfig em1 up 4,配置ip,掩码,网管。有两种选择,一种是配置文件,另一种是命令行 ***1,配置文件方式: 编辑文件:/etc/network/interfaces 添加下面内容: auto em1 iface em1 inet static address 127.127.127.127 #示例ip netmask 255.255.255.0 gateway 127.254 让后重新启动网卡: /etc/init.d/networking restart ifconfig em1 down ifconfig em1 up ifconfig #查看 service networking restart #不用sudo 如果不行,就用命令行 ***2,命令行方式 ifconfig em1 127.127 netmask 255.0 route add default gw 127.254 #添加网关 重启网卡如上命令。 5,现在ping一下网关能通就好,然后设置DNS服务器,编辑文件: /etc/resolv.conf 添加如下: nameserver 114.114.114.114 #这个可以用 重启网络,这样应该可以联网了。

Linux不能上网提示ping:unknownhost 检查步骤??

问题:ping: unkNown host www.baidu.com

解决办法:打开sudo vim /etc/resolv.conf 添加一下内容

nameserver 114.114.114.114

重启网卡服务:sudo service networking restart

注意:Ubuntu关于修改resolv.conf重启失效的问题

在通常情况下,我们在ubuntu系统中可以通过resolv.conf来设置DNS地址。但重启后,resolv.conf中的地址仍然会返回为原来的内容。

这是因为resolv.conf文件其实是一个Link文件,如图:

在Ubuntu中有一个resolvconf的服务,这个服务用来控制/etc/resolv.conf的内容。所以一旦我们重启了系统或者该服务,那么/etc/resolv.conf文件中的内容将被还原为原来的内容。所以直接修改/etc/resolv.conf并不能解决这个问题。

解决办法:

(1)在网卡的配置文件中定义DNS地址:

iface eth0 inet static

address 192.168.0.10

netmask 255.0

gateway 0.1

dns-nameserver 8.8.8.8 4.4

(2)修改resolvconf服务的配置文件:

vim /etc/resolvconf/resolv.conf.d/base

在其中添加或修改:

nameserver 4.4

最后:dig 看看是否设置成功

2、这里需要两个网卡,分别为:

em1(主网卡(外网+内网)):192.168.18.149

em2(内网网卡):10.10.10.100

说明:

em1 是连接的公网网线(当然了,可以是交换机分配过来的地址,但是必须是公网可以访问的):网段为:192.168.18.1 的局域网(这个以后会映射成公网IP地址)

em2 连接的是一个内网网线(一个局域网的路由器分配的ip地址),我们可以看到em2 为网段为:10.10.10.1 网段的局域网

这两个网卡都要配置成静态网卡

知识点:

【1】在虚拟机测试的时候就一个网口。

【2】忽略了服务器有四个网口,插得是em2网口,自己配置的是em1网口,导致怎么也ping不同局域网(em1 对应服务器 1号网口,em2 对应服务器 2号网口;em3 对应服务器 3号网口;em4 对应服务器 4号网口)

【3】重启网络:$ sudo /etc/init.d/networking restart 或 sudo ifdown eth0(em1)&& sudo ifup eth0(em1)

以上配置成功后,我们用一台笔记本电脑链接路由器(网段为:10.10.10.1 的局域网),我们可以看到这时候笔记本电脑的IP地址为:10.10.10.101(注意区分:上面服务器的IP:10.10.10.100)

现在使用OBS推流到:10.10.10.100 服务器上去,

1、按照下面的步骤即可完成推流和播流效果(注意:以下都是在10.10.10.1网段网完成的)

查看本机(笔记本电脑IP):

本机访问直播服务器地址:10.10.10.100

OBS推流地址信息:

VLC播放结果:

播放地址:

播放结果:

2、192.168.18.1 网段的播流效果(注意:以下都是在192.168.18.1网段(相当于外网))

播放地址:

播放效果:

七、静态网卡配置

默认的DHCP 网卡配置信息

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto em1
iface em1 inet dhcp

auto em2
iface em2 inet dhcp

现在我们修改为静态网卡信息(暂时没有配置路由信息)interfaces 为新建的网卡配置信息:

interface auto em1 iface em1 inet 18.125 netmask 255.0 auto em2 iface em2 inet 10.10.10.125 netmask 255.0

这个文件是默认(没修改之前的配置):interfaces-bak

配置完成后,重启网卡使设定生效:sudo /etc/init.d/networking restart

关闭网卡:(sudo) ifdown eth0 (注意:这里可能会稍微慢点,耐心等待)

开启网卡: (sudo) ifup eth0

重启网卡,优点是可以指定网卡,不影响其他网络接口

现在我们重新查看网卡地址和IP地址信息

【1】查看Ubuntu网卡命令:ifconfig -a

【2】在虚拟机上会显示出:eth0 和 lo lo是本地回传

【3】在服务器上会显示出:em1、em2、em3、em4、lo 一共是4个网卡(1234分别对应4个以太网口)

【4】在服务器上 ifconfig 会只显示lo ,这说明其他四块网卡没有被加载,

【5】执行命令:ifconfig em1 up 加载网卡

【6】ifconfig em1 down 卸载网卡 加载网卡后,

【7】执行ifconfig 就会看到em1网卡被加载进来了,然后进行配置网卡。

加载剩余的2个网卡:

sudo ifconfig em3 up

sudo ifconfig em4 up

区别:

【0】/etc/init.d/network restart # 重启网卡服务

【1】ifconfig :设定网络参数使用的指令

up 启动指定网卡。启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数)

down 关闭指定网卡。

【2】ifup、ifdown:激活与关闭某个网络适配卡

ifup {interface}

ifdown {interface}

这2个程序主要是搜寻/etc/sysconfig/network-scripts目录下的配置文件 (ifcfg-ethx) 来进行启动与关闭的,

  ifconfig eth0 up 或者是 ifconfig eth0 down 可以使用 ifup eth0 或 ifdown eth0 来替代!,但是 ifup 与 ifdown 是以 /etc/sysconfig/network-scripts/ifcfg-eth[n ](这里的n取0,1,2……)的档案来进行激活的!所以 ifcfg-eth0 必须存在才能使用 ifup/ifdown eth0 也就是说ifup和ifdown必须要有相关的档案存在才能激活呦!

  举个例子来说,上面我们要激活 eth0 这块网络卡的时候,那么你的 Linux 系统当中就必须要存在 /etc/sysconfig/network-scripts/ifcfg-eth0 这个网络适配卡的设定档案才行!同理可证!如果要激活 eth1 ,除了存在 eth1 这个实体网络卡之外,还要存在 ifcfg-eth1 才行! 而ifconfig eth0 up/down则不需要这两个档案存在。

  这也就是ifconfig eth0 up/down与ifup/ifdown eth0的区别!

可以看出,所有的配置信息有已经生效了,现在我们在另外一台台式电脑(192.168.168.1 网段)通过ssh登录,看看是否可以远程登录

Ok,已经登录成功了,下一步OBS进行推流,测试公网和内网时候可以同时播放直播,以下为推流PC级

红色指示为:123456

推流成功,使用VLC去播放测试

OK@!测试Success

下一步,换成 网段为:10.10.10.1的PC机播放测试

VLC播放结果:

RTMP在线人数配置:

复制该文件到 Nginx 的html目录下

修改Nginx配置文件:

     root   html;
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }
        location /stat.xsl {}
        location /control {
            rtmp_control all;
        }

浏览器查看该直播流状态:http://192.168.18.143/stat

待续.....

附带:阿里云多网卡配置信息:

查看网卡信息:121.40.58.38 (外网)10.251.249.111(内网)

root@iZ236j3sofdZ:/usr/local/Nginx/conf# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:16:3e:00:5e:0d  
          inet addr:10.251.249.111  Bcast:10.251.255.255  Mask:255.255.248.0
          UP broADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4671800 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1085948 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6192981968 (6.1 GB)  TX bytes:950040800 (950.0 MB)

eth1      Link encap:Ethernet  HWaddr 00:16:3e:00:0f:12  
          inet :121.40.58.38  Bcast:121.40.59.255  Mask:255.255.252.0
          UP broADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3434498 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2298996 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2301506180 (2.3 GB)  TX bytes:8048436565 (8.0 GB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4308 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4308 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:351121 (351.1 KB)  TX bytes:351121 (351.1 KB)

网络配置信息

vim /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address 121.40.58.38
netmask 255.255.252.0
up route add -net 0.0.0.0 netmask 0.0.0.0 gw 121.40.59.247 dev eth1

auto eth0
iface eth0 inet 
address 10.251.249.111
netmask 255.255.248.0
up route add -net 172.16.0.0 netmask 255.240.0.0 gw 10.251.255.247 dev eth0
up route add -net 100.64.0.0 netmask 255.192.0.0 gw 10.251.255.247 dev eth0
up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.251.255.247 dev eth0

vim /etc/resolv.conf

options timeout:1 attempts:1 rotate
nameserver 10.143.22.116
nameserver 10.143.22.118

软件安装


快速安装:https://www.vultr.com/docs/setup-nginx-rtmp-on-ubuntu-14-04

一、Nginx:

http://Nginx.org/download/Nginx-1.10.3.tar.gz

Rtmp 模块

https:github.com/arut/Nginx-rtmp-module/archive/v1.1.11.tar.gz

配置环境

apt-get install libreadline-dev libncurses5-dev libpcre3-dev \
libssl-dev perl make build-essential curl

检查配置文件

./configure --with-debug --with-stream --with-http_ssl_module --with-http_stub_status_module --add-module=../Nginx-rtmp-module-1.1.11/

二、Redis 服务器

https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Redis/redis-install.md

三、PHP5-fpm 安装

依赖软件安装

sudo apt-get install PHP5-fpm 
sudo apt-get install PHP5-gd  # Popular image manipulation library; used extensively by wordpress and it's plugins.
sudo apt-get install PHP5-cli   # Makes the PHP5 command available to the terminal for PHP5 scripting
sudo apt-get install PHP5-curl    # Allows curl (file downloading tool) to be called from PHP5
sudo apt-get install PHP5-mcrypt   # Provides encryption algorithms to PHP scripts
sudo apt-get install PHP5-MysqL   # Allows PHP5 scripts to talk to a MysqL Database
sudo apt-get install PHP5-readline  # Allows PHP5 scripts to use the readline function

查看PHP5-fpm运行进程:

www@ubuntu1:~/ssconsole$ ps -aux | grep PHP5
root       5189  0.2  0.1 333992 16520 ?        Ss   09:08   0:00 PHP-fpm: master process (/etc/PHP5/fpm/PHP-fpm.conf)                    
www        5240  0.0  11756   900 pts/1    S+   00 grep --color=auto PHP5

PHP-fpm.conf配置文件路径:/etc/PHP5/fpm/PHP-fpm.conf

开启、关闭PHP5-fpm 服务

sudo service PHP5-fpm stop 
sudo service PHP5-fpm start
sudo service PHP5-fpm restart
sudo service PHP5-fpm status

提示错误信息

2017/03/23 20:07:53 [crit] 18683#0: *1 connect() to unix:/var/run/PHP7.0.9-fpm.sock Failed (13: Permission denied) while connecting to upstream,client: 127.0.0.1,server: localhost,request: "GET /index.PHP HTTP/1.1",upstream: fastcgi://unix:/var/run/PHP7.0.9-fpm.sock:127.0.0.1"

解决办法,修改:www.conf

sudo vi /etc/PHP5/fpm/pool.d/www.conf

修改前:

user = www-data
group = www-data

listen.owner = www-data
listen.group = www-data
;listen.mode = 0660

修改后:

user = www
group = www
 
listen.owner = www
listen.group = www
listen.mode = 0660

重新启动Nginx和PHP5-fpm

sudo service Nginx restart
sudo service PHP5-fpm restart

Nginx 提示错误信息:

Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)

解决办法,执行以下代码,重启即可

sudo fuser -k 80/tcp

浏览器访问:http://192.168.18.150/index.PHP ,出现一下界面表示安装完毕

四、PHP-Redis 扩展

sudo apt-get install PHP5-redis

重启PHP5-fpm 是否安装成功:

www@ubuntu1:/etc/PHP5/fpm/pool.d$ PHP --ri redis

redis

Redis Support => enabled
Redis Version => 2.2.4

安装后的扩展文件目录:/etc/PHP5/fpm/conf.d/20-redis.ini

我们可以看到,PHP5 安装的扩展文件都在这里(和PHP7的不大一样)

五、Phalcon

www@ubuntu1:/etc/PHP5/fpm/pool.d$ sudo apt-get install PHP5-phalcon
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package PHP5-phalcon

看来不行啊!安装一下依赖,直接进行编译安装

get install re2c libpcre3-dev

安装:zephir

https://github.com/phalcon/zephir.git

$ cd zephir
$ ./install-json
$ ./install -c
www@ubuntu1:~/zephir$ zephir

 _____              __    _
/__  /  ___  ____  / /_  (_)____
  / /  / _ \/ __ \/ __ \/ / ___/
 / /__/  __/ /_/ / / / / / /
/____/\___/ .___/_/ /_/_/_/
         /_/

Zephir version 0.9.6a-dev-5628cc90de

编译phalcon 框架

PHPize 找不到

www@ubuntu1:/usr/local/cphalcon$ PHPize
No command PHPize' found,did you mean:
 Command PHPize5' from package PHP5-dev' (main)
PHPize: command not found

安装一个:sudo apt-get install PHP5-dev

切换目录到:/usr/local/cphalcon/build/PHP5/64bits ,执行PHPize 生成配置文件

开始编译:

www@ubuntu1:/usr/local/cphalcon$ sudo zephir build —backend=ZendEngine3

这里比较慢点,稍等....

编译完成后:查找刚才编译的 phalcon.so 文件,使用以下方式

www@ubuntu1:/usr/lib/PHP5/20121212$ sudo find / -name phalcon.so
/usr/lib/PHP5/20121212/phalcon.so
/usr/local/cphalcon/ext/.libs/phalcon.so
/usr/local/cphalcon/ext/modules/phalcon.so

!!!切记不可以把这个扩展文件添加在PHP.ini (如果是PHP7的话,直接是可以的),PHP5是不可以的

新建一个phalcon.ini 的配置文件

sudo vim /etc/PHP5/fpm/conf.d/phalcon.ini

内容如下:

20121212$ cat /etc/PHP5/fpm/conf.d/phalcon.ini extension=phalcon.so

重启PHP5-fpm 安装成功了

其实所有的扩展文件都在这里

六、MysqL

http://www.cnblogs.com/tinywan/p/6641780.html

=====================openresty 系统搭建========================

1、OpenResty编译或运行时所需要的软件包

get install libreadline-dev libncurses5-dev libpcre3-dev \ libssl-dev perl make build-essential

2、下载、解压、切换到工作目录

wget https:openresty.org/download/openresty-1.11.2.1.tar.gz
tar -xvf  openresty-1.11.2.1.tar.gz
cd openresty-2.1

3、检测配置文件信息

./configure     \
--prefix=/opt/openresty \ 
--with-debug    \
--with-lua51        \
--with-luajit \
--without-http_redis2_module \
--with-http_iconv_module \
--with-stream \
--with-http_stub_status_module \
--with-http_xslt_module   \
--with-stream_ssl_module \
--with-http_realip_module \
--with-http_ssl_module \
--add-module=../stream-lua-Nginx-module\
--add-module=../Nginx-rtmp-module-11/

提示错误:./configure: error: the HTTP XSLT module requires the libxml2/libxslt

解决办法

get install libxml2 libxml2-dev libxslt-dev sudo apt-get install libgd2-xpm libgd2-xpm-dev
--with-debug 调试RTMP :error_log logs/error.log debug;

4、在上一步中,最后没有什么 error 的提示就是最好的。若有错误,最后会显示 具体原因可以看源码包目录下的 build/Nginx-VERSION/objs/autoconf.err文件查看。若没有错误,则会出现如下信息:

5、编译:根据上一步命令提示,输入gmake

6、安装:输入gmake install

7、安装完毕

Nginx.conf 配置文件:

自动切片脚本autoRecordedhls.sh:

#!/bin/bash
:<<tinywan
        [1]author:Tinywan
        [2]log_format:
        [0] 语法格式:echo -e \033[31m $msg \033[0m" >>log_file.log
        [1] error===>红色(31m):错误日志信息
        [2] info===>绿色(32m):命令成功执行、URL回调成功、打印正确数据信息
        [3] warn===>黄色(33m):参数不存在、文件不存在、命令拼写错误
        [3] debug===>Blue色(34m): debug
        [3]date:2016-11-04 10:23:10 [date +%Y-%m-%d %H:%M:%s']
tinywan

PATH=/usr/local/bin:/usr/bin:/bin
YM=`date +%Y%m`
FLOG=/home/tinywan/bin/recorded_${YM}.log
#设置日志级别
loglevel=0 #debug:0; info:1; warn:2; error:3
TIME=`date '`
function LOG(){
    local log_type=$1
    local LOG_CONTENT=$2
    logformat=${TIME} \t[${log_type}]\tFunction: ${FUNCNAME[@]}\t[line:`caller 0 | awk '{print$1}'`]\t [log_info: ${LOG_CONTENT}]"
    {
    case $log_type in  
                debug)
                        [[ $loglevel -le 0 ]] && echo -e \033[34m${logformat}\033[0m" ;;
                info)
                        [[ $loglevel -le 1 ]] && echo -e \033[32m${logformat}\033[0m" ;;
                warn)
                        [[ $loglevel -le 2 ]] && echo -e \033[33m${logformat}\033[0m" ;;
                error)
                        [[ $loglevel -le 3 ]] && echo -e \033[31m${logformat}\033[0m" ;;
        esac
        } | tee -a $FLOG
}

echo -e  \r\n \033[34m------------------------------------------------------Shell Script Start -------------------------------------------- \033[0m " >> $FLOG
MIN_DURATION=20

REdis_HOST='
REdis_PORT=6379'
REdis_AUTH=tinywanredis'
REdis_DB=12

STREAM_NAME=$1
FULL_NAME=$2
FILE_NAME=$3
BASE_NAME=$4
DIR_NAME=$5if [ -z ${STREAM_NAME}" ];then
    LOG error STREAM_NAME is null"
    exit 1
fi

#echo -e \033[32m [SUCCESS][$TIME]: $@ \033[0m" >>$FLOG
LOG debug $@

${FULL_NAME}" ]; then
    LOG error FULL_NAME is null1
fi

if [ ! -s File not exists or zero size "
    rm -f ${FULL_NAME}
    exit 1
fi

DURATION=`ffmpeg -i ${FULL_NAME} 2>&1 | awk /Duration/ {split($2,a,":");print a[1]*3600+a[2]*60+a[3]}'`
if [ $(echo $duration < $MIN_DURATION"|bc) = 1 ]; then
    LOG error Duration too short,FULL_NAME=${FULL_NAME},DURATION==${DURATION}1
fi

#echo [DEBUG1][$TIME] Video Record :  FULL_NAME=$FULL_NAME,DURATION=${DURATION}" >> $FLOG

/usr/bin/ffmpeg -y -ss 00:10 -i ${FULL_NAME} -vframes 1 ${DIR_NAME}/${BASE_NAME}.jpg

/usr/bin/ffmpeg -y -i ${FULL_NAME} -vcodec copy -acodec copy ${DIR_NAME}/${BASE_NAME}.mp4

FILE_SIZE=`stat -c %s" ${DIR_NAME}/${BASE_NAME}.mp4`

FILE_TIME=`stat -c %Y" ${FULL_NAME}`

LOG debug Video: FILE_NAME=${FILE_NAME},DURATION=${DURATION},FILESIZE=${FILE_SIZE},FILETIME=${FILE_TIME}"

URL=http://127.0.0.1/recordDone?streamName=${STREAM_NAME}&baseName=${BASE_NAME}&duration=${DURATION}&fileSize=${FILE_SIZE}&fileTime=${FILE_TIME}" 
RESULT=$(curl ${URL} 2>/dev/null)

if [ ${RESULT}" != 200recorded rallBakc Error ${STREAM_NAME}"
else
    LOG info recorded rallBakc OK ${STREAM_NAME}"    
fi

mkdir -p ${DIR_NAME}/${BASE_NAME}
/usr/bin/ffmpeg -i ${FULL_NAME} -flags +global_header -f segment -segment_time 3 -segment_format mpegts -segment_list ${DIR_NAME}/${BASE_NAME}/index.m3u8 -c:a copy -c:v copy -bsf:v h264_mp4toannexb -map 0 ${DIR_NAME}/${BASE_NAME}/%5d.ts

LOG info slice OK"

cd ${DIR_NAME}
find ./ -mindepth 1 -maxdepth 3 -type f -name *.flv" -mmin +10080 | xargs rm -rf

#LOG warn ${TIME}"
exit 1

=============Live HLS直播和M3U8和MP4点播系统=================

详细部署请见我的另外一篇博客:http://www.cnblogs.com/tinywan/p/6639360.html

=============Redis 数据库安装=================

参考我的Github:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Redis/redis-install.md

Ubuntu Server 16.04.1安装配置图解教程:http://www.win789.com/linux/2016/37039.html

Ubuntu 16.04 Server Edition 英文版安装教程:http://www.jb51.net/os/491038.html

贵在坚持,相信自己.

PowerEdge R430 机架式服务器安装( Ubuntu server 14.04.1 、PHP5.5.9、PHP-redis2.8、Phalcon3.1) 未解决问题:换成静态路由的话,怎么就的更多相关文章

  1. HTML5 Web缓存和运用程序缓存(cookie,session)

    这篇文章主要介绍了HTML5 Web缓存和运用程序缓存(cookie,session),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. ios – Objective-C中的Google用户serverAuthCode nil

    我正在尝试将GoogleSignIn框架集成到iOS应用程序中,并对服务器上的用户进行身份验证.我设法登录用户,但在–(void)signIn:(GIDSignIn*)signIndidSignInForUser:(GIDGoogleUser*)用户withError:(NSError*)错误委托方法,user.serverAuthCode为nil,我需要通过此服务器身份验证代码,嗯,验证服务器上

  3. iOS推送通知适用于Dev而不是Enterprise Distribution

    本网站上没有其他问题,我已经能够找到实际上提出了Dev将工作的原因,但企业分布不会.为什么归档总是使aps环境生产?

  4. iOS Safari和/或Microsoft Edge是否支持推送通知?

    从我所做的研究来看,我找不到这个问题的具体答案.桌面版Safari已支持此功能一段时间了,但iOS版本是否也支持从网站推送通知?如果没有,是否有替代解决方案?我也无法在MicrosoftEdge上找到支持此功能的任何内容.我觉得我在某个时间点读过这个,但我现在很难找到任何东西.解决方法MicrosoftEdge目前不支持通知,但目前正在考虑使用用户语音的550票.您可以在status.modern.ie.上找到当前状态

  5. ios – CloudKit – 如何保存记录如果不存在

    我正在尝试创建一个包含唯一值的记录类型,并将作为另一个记录类型的目标引用对象.例如,录制类型–电影将包含用户提交的唯一电影列表.而且FavoriteMovies将包含用户参考和电影参考.用户可以从现有电影列表中进行选择,也可以向其中添加新电影.如果我创建一个新的电影记录,而另一个用户创建一个具有相同名称的新记录(在我检索电影列表之后,但在我尝试添加新电影之前),则会出现问题.这两个新记录被认为是具

  6. ios – testflight库和Xcode 5没有变化现在说“ld:找不到-lTestFlight的库”

    我已经创建了几个月的应用程序,突然Xcode5不想构建它.它只是抱怨以下错误.如果我理解它可以,它会抱怨testflight,但我几周没有改变它.它完美地编译了它.我不得不说我已经尝试将AdobeADMS跟踪库添加到项目中.然后,出现链接器错误.任何提示?

  7. 如何在ios swift项目中为dev n prod使用两个不同的GoogleService-info.plist文件?

    我需要使用两个不同的GoogleService-info.plist来处理dev和prod构建,目前我只是通过在编辑方案中更改“构建配置”来分离dev和prod,但现在我需要有两个不同的.plist文件dev和prod用于处理谷歌分析,pushwoosh等,解决方法对于这种情况,您需要在Dev和Prod的项目中使用带有diffbundleid的不同Targets.之后,您可以链接GoogleSer

  8. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  9. 让你真正明白cinder与swift、glance的区别

    Cinder——提供块存储,类似于Amazon的EBS块存储服务,目前仅给虚机挂载使用。Cinder包含以下三个主要组成部分APIservice:Cinder-api是主要服务接口,负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。Cinder目前提供VolumeAPIV2Schedulerservice:处理任务队列的任务,并根据预定策略选择合适的VolumeService节点来执行任务。目前版本的cinder仅仅提供了一个SimpleScheduler,该调度器选择卷数量

  10. openstack安装liberty--安装对象存储服务swift

    通常使用CACHE技術提高性能Accountservers賬戶服務,管理對象存儲中的賬戶定義。Containerservers容器服務,在對象存儲中管理容器或文件夾映……Objectservers對象服務,在存儲節點管理實際的對象,比如文件。Wsgimiddleware處理認證,通常使用OPENSTACKIdentityswiftclient為用戶提供命令行接口使用RESTAPIswift-init初始化和構建RING文件腳本swift-recon一個命令行工具,用於檢索群集的各種度量和測試信息。

随机推荐

  1. crontab发送一个月份的电子邮件

    ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

  2. 模拟两个ubuntu服务器计算机之间的慢速连接

    我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

  3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

    我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

  4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

    我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

  5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

    &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

  6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

    我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

  7. ubuntu – vagrant无法连接到虚拟框

    当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

  8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

    我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

  9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

    我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

  10. 检查ubuntu上安装的rubygems版本?

    如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

返回
顶部