PowerEdge R430 機架式服務器安裝( Ubuntu server 14.04.1 、PHP5.5.九、PHP-redis2.八、Phalcon3.1)

未解決問題:換成靜態路由的話,怎麼就 apt-get udpate 出現錯誤信息!php

解決辦法:麼有設置網關html

1、Ubuntu 系統下載地址:mysql

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

二、uiso9_cn_9.6.6.3300.exe 下載nginx

三、ubuntu server12.04系統U盤安裝詳細教程git

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

四、Ubuntu 14.04 Server開發者安裝指南web

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

五、網卡信息看查看(cat /proc/version Ubuntu 系統查看)sql

2、有多塊硬盤,安裝系統的時候先安裝一個硬盤(例如:有一個固態硬盤和我普通硬盤,這時候先把普通硬盤卸載下來,只安裝一個固態硬盤就能夠)

  開機、選擇F10 (Dell 服務器自帶的一個控制系統),爲了建立一個RAID 0 以下所示:

建立好後,直接退出,從新啓動便可。

3、上一步結束以後,選擇F11,安裝系統就能夠了(USB安裝)

 

具體安裝步驟:

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

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

4、系統安裝好後,查看硬盤信息,沒有普通硬盤,個人錯,是我忘記沒有插入普通硬盤。

關機(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

建立完畢,

5、重啓系統,查看硬盤信息,已是有了的

查看磁盤具體信息

下面使用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

一、 建立分區

使用分區工具(如:fdisk等)建立LVM分區,方法和建立其餘通常分區的方式是同樣的,區別僅僅是LVM的分區類型爲8e。以下列圖所示:

Disk /dev/sdb doesn't contain a valid partition table(磁盤/ dev / sdb不包含有效的分區表)

 查看磁盤分區表

使用fdisk建立分區,根據設備文件的絕對路徑(/dev/sdb)進入分區管理

 

6、網絡、網卡配置

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.0.0 gw 121.40.59.247 dev eth1 auto eth0  (內網) iface eth0 inet static address 10.251.249.160 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

一、網絡配置,參照這個博客

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.127.127.254 讓後從新啓動網卡: /etc/init.d/networking restart ifconfig em1 down ifconfig em1 up ifconfig #查看 service networking restart #不用sudo 若是不行,就用命令行 ***2,命令行方式 ifconfig em1 127.127.127.127 netmask 255.255.255.0 route add default gw 127.127.127.254 #添加網關 重啓網卡如上命令。 5,如今ping一下網關能通就好,而後設置DNS服務器,編輯文件: /etc/resolv.conf 添加以下: nameserver 114.114.114.114 #這個能夠用 重啓網絡,這樣應該能夠聯網了。

Linux不能上網提示ping:unknown host 檢查步驟??

問題: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.255.255.0 gateway 192.168.0.1 dns-nameserver 8.8.8.8 8.8.4.4

 

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

vim /etc/resolvconf/resolv.conf.d/base 在其中添加或修改: nameserver 8.8.8.8 8.8.4.4

最後:dig 看看是否設置成功

 

二、這裏須要兩個網卡,分別爲:

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 服務器上去,

一、按照下面的步驟便可完成推流和播流效果(注意:如下都是在10.10.10.1網段網完成的)

 查看本機(筆記本電腦IP):

本機訪問直播服務器地址:10.10.10.100

 

OBS推流地址信息:

 

VLC播放結果:

播放地址:

播放結果:

 

二、192.168.18.1 網段的播流效果(注意:如下都是在192.168.18.1網段(至關於外網))

 播放地址:

播放效果:

 7、靜態網卡配置

默認的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 爲新建的網卡配置信息:

# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto em1 iface em1 inet static address 192.168.18.125 netmask 255.255.255.0 auto em2 iface em2 inet static address 10.10.10.125 netmask 255.255.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】在服務器上會顯示出:em一、em二、em三、em四、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 addr: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 static 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

1、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/

2、Redis 服務器

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

3、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  0.0  11756   900 pts/1    S+   09:08   0: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:", host: "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 ,出現一下界面表示安裝完畢

4、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的不大同樣)

 

5、Phalcon擴展安裝

1、命令行安裝

一、存儲庫安裝

curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash

二、要安裝Phalcon

sudo apt-get update sudo apt-get install php5-phalcon

三、更多信息:https://docs.phalconphp.com/en/3.2/installation

2、編譯安裝

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

看來不行啊!安裝一下依賴,直接進行編譯安裝

sudo apt-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

內容以下:

www@ubuntu1:/usr/lib/php5/20121212$ cat /etc/php5/fpm/conf.d/phalcon.ini extension=phalcon.so

重啓php5-fpm 安裝成功了

 

 其實全部的擴展文件都在這裏

6、Mysql

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

 

=====================openresty 系統搭建========================

一、OpenResty編譯或運行時所須要的軟件包

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

二、下載、解壓、切換到工做目錄

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

三、檢測配置文件信息

./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-1.1.11/

提示錯誤:./configure: error: the HTTP XSLT module requires the libxml2/libxslt

解決辦法

sudo apt-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;

四、在上一步中,最後沒有什麼 error 的提示就是最好的。如有錯誤,最後會顯示 具體緣由能夠看源碼包目錄下的 build/nginx-VERSION/objs/autoconf.err文件查看。若沒有錯誤,則會出現以下信息:

五、編譯:根據上一步命令提示,輸入gmake

六、安裝:輸入gmake install

 七、安裝完畢

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 '+%Y-%m-%d %H:%M:%S'` 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='127.0.0.1' 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 $@ if [ -z "${FULL_NAME}" ]; then LOG error "FULL_NAME is null" exit 1 fi if [ ! -s "${FULL_NAME}" ]; then LOG error "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}" rm -f ${FULL_NAME} exit 1 fi #echo "[DEBUG1][$TIME] Video Record : FULL_NAME=$FULL_NAME, FULL_NAME=${FULL_NAME}, DURATION=${DURATION}" >> $FLOG /usr/bin/ffmpeg -y -ss 00: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}" != "200" ]; then LOG error "recorded 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

相關文章
相關標籤/搜索