企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[https://x1.php168.com/cms/show-302.html](https://x1.php168.com/cms/show-302.html)  **视频版 有部分命令执行的时间比较长 可以快进过去 可以先看一次视频 然后对着这里的命令进行输入即可 ** **不支持录制回放 只有win版支持 [https://www.kancloud.cn/php168/x1\_of\_qibo/1459144](https://www.kancloud.cn/php168/x1_of_qibo/1459144) ** 说明比较长,需要一定的操作动手能力才行。 基础条件 第一个必须是linux服务器 第二个安装了宝塔面板 第三编译安装nginx1.7.6+php5.6## **第一步** 修改/www/server/panel/install/nginx.sh文件 如下图位置的文件 ![](https://img.kancloud.cn/e4/e5/e4e5f6db1a8ce337409d8ea014111417_834x549.png) 点编辑 找到 ./configure 部分 免费版7.1版大约在205行 我们添加一个 --add-module=/www/server/nginx_plus/nginx-rtmp-module 添加完成后如下:请勿直接复制 版本不一样 其他的配置也不一样 ~~~ ~~~ ./configure --add-module=/www/server/nginx_plus/nginx-rtmp-module --user=www --group=www --prefix=${Setup_Path} ${ENABLE_LUA} --add-module=${Setup_Path}/src/ngx_cache_purge --add-module=${Setup_Path}/src/nginx-sticky-module --with-openssl=${Setup_Path}/src/openssl --with-pcre=pcre-${pcre_version} ${ENABLE_HTTP2} --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt="-Wl,-E" --with-cc-opt="-Wno-error" ${jemallocLD} ${ENABLE_NGX_PAGESPEED} ${ADD_EXTENSION} ~~~ ~~~ 可以看出就是在 --user=www 前面加上了 \--add-module=/www/server/nginx_plus/nginx-rtmp-module空格隔开 添加完了 记得保存 ## **第二步** 打开XSHELL 命令工具 或者宝塔后台的 宝塔终端 输入你服务器的root密码登录。 执行git clone[https://github.com/arut/nginx-rtmp-module](https://github.com/arut/nginx-rtmp-module)/www/server/nginx_plus/nginx-rtmp-module/  语句,直到100%完成 ![](https://img.kancloud.cn/60/bc/60bc2bcf19479d21c2f73daa2a320509_784x162.png) ## **第三步** 第二步完成后 输入命令  sh /www/server/panel/install/nginx.sh install 1.17   回车进行nginx的编译 就不截图了和上面一样 等待编译完成 完成后大概是这样的编译时间很快几分钟的事 ![](https://img.kancloud.cn/17/ce/17ceb887abf0c49c577a5f5c040b3c9f_747x419.png) 注意,安装成功后就不要使用宝塔后台的NGINX切换版本功能了 以上部分参考 [https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=33703](https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=33703) 并进行了修正。 ## 4**第四步** www 文件夹下建立 tmp 文件夹 tmp文件夹下建立 live 文件夹 ![](https://img.kancloud.cn/e6/d8/e6d8e49ee74a9670022961252d1d2568_629x405.png) 继续打开 /www/server/nginx/conf 目录下的 nginx.conf 文件 在 ~~~ events     {         use epoll;         worker_connections 51200;         multi_accept on;     } ~~~ 下面加上 ~~~ rtmp {          server {              listen 1935;  #监听的端口            chunk_size 4000;                    application hls {             live on;             hls on;             hls_path /www/tmp/live;#视频流存放地址             hls_fragment 1s;             hls_playlist_length 2s;             hls_continuous on; #连续模式。             hls_cleanup on;    #对多余的切片进行删除。             hls_nested on;     #嵌套模式。         }     }   } ~~~ ![](https://img.kancloud.cn/76/be/76befe1b88c200140170c5338e6b7bd9_802x659.png) 在 ~~~  access_log  /www/wwwlogs/access.log;     } ~~~ 下面加上 ~~~ server     {         listen 8080;         ####要配置https格式访问的话就要把下面的启用,即把开头的#号删除,同时修改域名及证书 #listen 8082 ssl; #https协议的端口号 比如 https://xx.com:8082/         #server_name svn.php168.com; #填写绑定证书的域名 #ssl_certificate    C:/nginx-rtmp-win32-dev/conf/svn.php168.com.crt; #换成自己的证书 注意路径 #ssl_certificate_key    C:/nginx-rtmp-win32-dev/conf/svn.php168.com.key; #换成自己的证书 #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #ssl_prefer_server_ciphers on; #ssl_session_cache shared:SSL:10m; #ssl_session_timeout 10m; #error_page 497  https://$host$request_uri;            location / {             root html;         }         location /stat {             rtmp_stat all;             rtmp_stat_stylesheet stat.xsl;         }         location /stat.xsl {             root /www/server/nginx_plus/nginx-rtmp-module/;         }           location /hls {  #添加视频流存放地址。         types {             application/vnd.apple.mpegurl m3u8;             video/mp2t ts;         }         #访问权限开启,否则访问这个地址会报403         autoindex on;         alias /www/tmp/live;#视频流存放地址,与上面的hls_path相对应,这里root和alias的区别可自行百度         expires -1;         add_header Cache-Control no-cache;         #防止跨域问题         add_header 'Access-Control-Allow-Origin' '*';         add_header 'Access-Control-Allow-Credentials' 'true';         add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';         add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';   } } ~~~ rtmp 的配置比较多 可以自行百度进行参数的设置这里仅仅是示例 添加完成后的完整配置:(可以对照着修改) ~~~ user  www www; worker_processes auto; error_log  /www/wwwlogs/nginx_error.log  crit; pid        /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events     {         use epoll;         worker_connections 51200;         multi_accept on;     } rtmp {          server {              listen 1935;  #监听的端口            chunk_size 4000;                    application hls {             live on;             hls on;             hls_path /www/tmp/live;#视频流存放地址             hls_fragment 1s;             hls_playlist_length 2s;             hls_continuous on; #连续模式。             hls_cleanup on;    #对多余的切片进行删除。             hls_nested on;     #嵌套模式。         }     }   } http     {         include       mime.types; #include luawaf.conf; include proxy.conf;         default_type  application/octet-stream;         server_names_hash_bucket_size 512;         client_header_buffer_size 32k;         large_client_header_buffers 4 32k;         client_max_body_size 50m;         sendfile   on;         tcp_nopush on;         keepalive_timeout 60;         tcp_nodelay on;         fastcgi_connect_timeout 300;         fastcgi_send_timeout 300;         fastcgi_read_timeout 300;         fastcgi_buffer_size 64k;         fastcgi_buffers 4 64k;         fastcgi_busy_buffers_size 128k;         fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on;         gzip on;         gzip_min_length  1k;         gzip_buffers     4 16k;         gzip_http_version 1.1;         gzip_comp_level 2;         gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;         gzip_vary on;         gzip_proxied   expired no-cache no-store private auth;         gzip_disable   "MSIE [1-6]\.";         limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m;         server_tokens off;         access_log off; server     {         listen 888;         server_name phpmyadmin;         index index.html index.htm index.php;         root  /www/server/phpmyadmin;         #error_page   404   /404.html;         include enable-php.conf;         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$         {             expires      30d;         }         location ~ .*\.(js|css)?$         {             expires      12h;         }         location ~ /\.         {             deny all;         }         access_log  /www/wwwlogs/access.log;     }     server     {         listen 8080;         ####要配置https格式访问的话就要把下面的启用,即把开头的#号删除,同时修改域名及证书 #listen 8082 ssl; #https协议的端口号 比如 https://xx.com:8082/         #server_name svn.php168.com; #填写绑定证书的域名 #ssl_certificate    C:/nginx-rtmp-win32-dev/conf/svn.php168.com.crt; #换成自己的证书 注意路径 #ssl_certificate_key    C:/nginx-rtmp-win32-dev/conf/svn.php168.com.key; #换成自己的证书 #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #ssl_prefer_server_ciphers on; #ssl_session_cache shared:SSL:10m; #ssl_session_timeout 10m; #error_page 497  https://$host$request_uri;            location / {             root html;         }         location /stat {             rtmp_stat all;             rtmp_stat_stylesheet stat.xsl;         }         location /stat.xsl {             root /www/server/nginx_plus/nginx-rtmp-module/;         }           location /hls {  #添加视频流存放地址。         types {             application/vnd.apple.mpegurl m3u8;             video/mp2t ts;         }         #访问权限开启,否则访问这个地址会报403         autoindex on;         alias /www/tmp/live;#视频流存放地址,与上面的hls_path相对应,这里root和alias的区别可自行百度         expires -1;         add_header Cache-Control no-cache;         #防止跨域问题         add_header 'Access-Control-Allow-Origin' '*';         add_header 'Access-Control-Allow-Credentials' 'true';         add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';         add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';   }     } include /www/server/panel/vhost/nginx/*.conf; } ~~~ 最后记得点保存。 ![](https://img.kancloud.cn/7d/58/7d5846733793ced27ef224f3a1a12b81_772x416.png) 点他后面的设置按钮  先点重载配置 再点重启 ![](https://img.kancloud.cn/2f/7a/2f7a0e2d0214420ad5b5a99584b9108b_461x253.png) ## **最后一步** ![](https://img.kancloud.cn/a1/a4/a1a483ca4e39fa9a2b9ce49c77b9bf7c_797x379.png) 在这里我们可以添加一个 ip或者你域名的网站   推流地址:rtmp://122.51.110.79/hls/selfserver162    ip可以是你这里绑定的域名或者ip  selfserver162 是流名称 播放地址:[http://122.51.110.79/hls/selfserver162/index.m3u8](http://122.51.110.79/hls/selfserver162/index.m3u8)  selfserver162 是流名称 后台插件设置 ![](https://img.kancloud.cn/dd/67/dd67d772cfc13ef95221dbd51432c2fc_833x311.png) https://x1.php168.com/public/uploads/files/20200205/69_202002051909190ee29.rar 下载以上附件解压 放到你新创建的这个网站根目录。 宝塔后台添加一个定时任务一分钟执行一次就好 或者在xshell cd到你刚刚创建的网站根目录执行   nohup php zhibo.php & 任何按任意键返回控制台 再关闭xshell即可 定时任务和命令模式只能选择一个 zhibo.php 请打开修改17  18  19行为自己的网址 $web_url 为你展示直播的网站 $play_server 和$stat_url 为你最后一步在直播服务器创建的网站域名或者ip 步骤比较多 中间也修正过多次 应该是没有遗漏了 出问题概不负责 也是瞎鼓捣的 提供一个测试直播服务器  [http://122.51.110.79](http://122.51.110.79/)  直播插件选择自建服务器 输入这个ip即可 有效期一个月 1核1G1M宽带的 1块钱买了一个月测试了下自建服务器 没有用了 补充SSL的配置教程: zhibo.php  仅修改 protected static $play_server='[https://suifeng.cnsheep.cn](https://suifeng.cnsheep.cn/):8082';  这里改为你的SSL网址+8082端口号 www 目录下新建 crt目录 里面新建2个文件 live.crt 和live.key 把我们申请到的证书写到文件中 或者直接上传到这里也可以随便都可以。 ![](https://img.kancloud.cn/80/d1/80d10c7b9daf65a33e14738da269fd5a_298x311.png) /www/server/nginx/conf/nginx.conf  的配置如下:对照着改一下 别直接复制过去 ~~~ user  www www; worker_processes auto; error_log  /www/wwwlogs/nginx_error.log  crit; pid        /www/server/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events     {         use epoll;         worker_connections 51200;         multi_accept on;     } rtmp {          server {              listen 1935;  #监听的端口            chunk_size 4000;                    application hls {             live on;             hls on;             hls_path /www/tmp/live;#视频流存放地址             hls_fragment 2s;             hls_playlist_length 5s;             hls_continuous on; #连续模式。             hls_cleanup on;    #对多余的切片进行删除。             hls_nested on;     #嵌套模式。         }     }   } http     {         include       mime.types; #include luawaf.conf; include proxy.conf;         default_type  application/octet-stream;         server_names_hash_bucket_size 512;         client_header_buffer_size 32k;         large_client_header_buffers 4 32k;         client_max_body_size 50m;         sendfile   on;         tcp_nopush on;         keepalive_timeout 60;         tcp_nodelay on;         fastcgi_connect_timeout 300;         fastcgi_send_timeout 300;         fastcgi_read_timeout 300;         fastcgi_buffer_size 64k;         fastcgi_buffers 4 64k;         fastcgi_busy_buffers_size 128k;         fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on;         gzip on;         gzip_min_length  1k;         gzip_buffers     4 16k;         gzip_http_version 1.1;         gzip_comp_level 2;         gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;         gzip_vary on;         gzip_proxied   expired no-cache no-store private auth;         gzip_disable   "MSIE [1-6]\.";         limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m;         server_tokens off;         access_log off; server     {         listen 888;         server_name phpmyadmin;         index index.html index.htm index.php;         root  /www/server/phpmyadmin;         #error_page   404   /404.html;         include enable-php.conf;         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$         {             expires      30d;         }         location ~ .*\.(js|css)?$         {             expires      12h;         }         location ~ /\.         {             deny all;         }         access_log  /www/wwwlogs/access.log;     }     server     {         listen 8080;         ####要配置https格式访问的话就要把下面的启用,即把开头的#号删除,同时修改域名及证书 listen 8082 ssl; #https协议的端口号 比如 https://xx.com:8082/         server_name suifeng.cnsheep.cn; #填写绑定证书的域名 ssl_certificate    /www/crt/live.crt; #换成自己的证书 注意路径 ssl_certificate_key    /www/crt/live.key; #换成自己的证书 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497  https://$host$request_uri;            location / {             root html;         }         location /stat {             rtmp_stat all;             rtmp_stat_stylesheet stat.xsl;         }         location /stat.xsl {             root /www/server/nginx_plus/nginx-rtmp-module/;         }           location /hls {  #添加视频流存放地址。         types {             application/vnd.apple.mpegurl m3u8;             video/mp2t ts;         }         #访问权限开启,否则访问这个地址会报403         autoindex on;         alias /www/tmp/live;#视频流存放地址,与上面的hls_path相对应,这里root和alias的区别可自行百度         expires -1;        add_header Cache-Control no-cache; #add_header Access-Control-Allow-Origin *; add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';  } } include /www/server/panel/vhost/nginx/*.conf; } ~~~ 改完后 重启服务器 记得安全组放行8082端口 在xshell cd到你刚刚创建的网站根目录执行   `nohup php zhibo.php & ` 任何按任意键返回控制台 再关闭`xshell`即可 ![](https://img.kancloud.cn/7c/a9/7ca9f31e1236496cdd15336adfac43ba_925x219.png)