ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

直播项目环境部署

2021-02-24 18:31:36  阅读:99  来源: 互联网

标签:install 部署 redis 数据库 环境 直播 conf php com


直播项目环境部署

最近总是接到直播项目的开发,在环境部署的过程中踩了不少坑。现在我将环境部署的完整教程分享给大家。
一 、搭建前期准备
注:操作系统centos7.0以上 64位,客户服务器是否需要添加域名白名单(ip可以访问,域名不能访问)
(1)生成软件包信息缓存
(2)安装更新
(3)安装必要软件
(4)安装oh my zsh(有助于补全和选择目录)
二、搭建LNMP环境
安装选项选择
yum makecache
yum update -y
yum install -y zip unzip wget curl git vim zsh nano screen
sh -c “$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-
zsh/master/tools/install.sh -O -)”
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
tar xzvf oneinstack-full.tar.gz
cd oneinstack
./install.sh #注:请勿sh install.sh或者bash install.sh这样执行
1.设置SSH端口(默认22),回车即可
Do you want to enable iptables? [y/n]: n
2.然后选择是否安装 web,输入y
3.输入 1 安装 nginx
4.输入 3 不安装Apache
5.输入 5 不安装tomcat
6.然后选择是否安装数据库database,输入y
7.输入 2 安装mysql-5.7
8.然后输入数据库root密码123456(注:妥善保管)
9.然后输入1 选择从二进制安装
10.然后输入 y 安装PHP
11.输入 5 安装PHP7.0
12.输入 y 安装php 缓存插件
Do you want to instal opcode cache of the PHP? [y/n]:y
13.输入 1 安装Zend OPcache
14.Please select PHP extensions: 只选Redis【这个地方特别注意】
15.输入 n 不安装Pure-FTPd
16.输入 y 安装phpMyAdmin
17. 输入 y 安装redis-server
18.输入 n 不安装memcached-server
19.输入 n 不安装HHVM
三、redis配置
配置redis密码
执行命令修改/usr/local/redis/etc/redis.conf文件,(也可以手动修改redis.conf文件)
echo requirepass redis的密码 >> /usr/local/redis/etc/redis.conf
重启redis
systemctl restart redis-server
注:service redis-server restart 在centos7.x中不支持
四、创建数据库
使用oneinstack一键搭建中的phpMyAdmin插件
vim /etc/my.cnf
在my.cnf 里面设置
[mysqld]下面添加语句
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,N
O_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
访问
http://你的ip地址/phpMyAdmin/
创建数据库用户名和数据库名,密码
在这里插入图片描述
上传之前,需要把源码中的/root/backups/temp/数据库名_时间戳.sql文件中的域名替换
把http://livenew.yunbaozb.com

替换为 www.abc.com(这里指的是自己的域名)
把http://qiniu.yunbaozb.com

替换为 http://qiniu.abc.com(你自己的七牛云加速域名)
导入附近这个函数
getDistance.sql
内容如下:
CREATE FUNCTION getDistance (lat1 FLOAT, lon1 FLOAT, lat2 FLOAT, lon2 FLOAT)
RETURNS FLOAT
DETERMINISTIC
BEGIN
RETURN ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((lat1 * PI() / 180 - lat2 * PI() /
180) / 2), 2)
+ COS(lat1 * PI() / 180) * COS(lat2 * PI() / 180)
* POW(SIN(( lon1 * PI() / 180 - lon2 * PI() / 180 ) / 2),2))),2);
END
注意:必须要使用Navicat导入
五、web站点搭建
在oneinstack目录下添加虚拟机
cd ~/oneinstack
./vhost.sh
选项选择
1.选择1 ,Use HTTP Only
2.然后输入域名
3.输入网站的文件目录,直接回车就行
4.然后添加其他域名,有的话就输入 y ,没有就输入 n
5.是否添加防盗链,输入n
Do you want to add hotlink protection? [y/n]: n
6.Allow Rewrite rule? [y/n]: y
7.Allow Rewrite rule? [y/n]: y
Please input the rewrite of programme :
wordpress,opencart,magento2,drupal,joomla,laravel,thinkphp,discuz,typecho,ecshop
rewrite was exist.
(Default rewrite: other): thinkphp
8.输入 y ,开启日志
Allow Nginx/Tengine/OpenResty access_log? [y/n]: y
nginx thinkphp 静态化
1、修改/usr/local/nginx/conf/rewrite/thinkphp.conf,
vim /usr/local/nginx/conf/rewrite/thinkphp.conf
文件内容如下;
location / {
if (!-e $request_filename) {

rewrite ^(.)$ /index.php?s=$1 last;
break;
}
}
修改为
location / {
if (!-e $request_filename) {
rewrite ^/([0-9]+)$ /index.php?m=Show&a=index&roomnum=$1 last;
#rewrite ^(.
)$ /index.php?s=$1 last;
rewrite ^(.)$ /index.php?s=$1 last;
break;
}
}
2、然后创建pathinfo.conf⽂文件
touch /usr/local/nginx/conf/pathinfo.conf
vim /usr/local/nginx/conf/pathinfo.conf
然后输入以下内容并保存
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "(.+?.php)(/.
)") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
3、然后编辑 /usr/local/nginx/conf/vhost/您的域名.conf 文件,
vim /usr/local/nginx/conf/vhost/您的域名.conf
编辑文件如下.
location ~ .php {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
#include fastcgi_params;
include fastcgi.conf;
}
在include fastcgi.conf; 下⾯面加入一句
include pathinfo.conf;
然后修改/usr/local/php/etc/php.ini,搜索cgi.fix_pathinfo.,去掉前面的分号。
vim /usr/local/php/etc/php.ini
cgi.fix_pathinfo=1
部署直播程序
1.将代码包里面的web文件夹中的东西拷贝到网站根目录。
举例说明:
假设您的站点为: www.abc.com
mv /root/web/data/wwwroot/livenew.yunbaozb.com/* /data/wwwroot/www.abc.com/
//改变读写权限
chmod -R 775 /data/wwwroot/www.abc.com/
//改变所属者和所属组
chown -R www:www /data/wwwroot/www.abc.com
2.还需修改几个文件:
<1>(web)/api/Config/app.php
‘REDIS_HOST’ => “Redis的地址”,
‘REDIS_AUTH’ => “Redis的密码”,
‘REDIS_PORT’ => “Redis的端口”,

‘sign_key’ => ‘76576076c1f5f657b634e966c8836a06’,
‘uptype’=>1,//上传方式:1表示 七牛,2表示 本地
/**

  • 七牛相关配置
    */
    ‘Qiniu’ => array(

‘accessKey’ => ‘七牛云的密钥’,
‘secretKey’ => ‘七牛云的密钥’,
//自定义配置的空间
‘space_bucket’ => ‘七牛云空间名’,
‘space_host’ => ‘http://您的域名(注意要带http,比如:http://www.abc.com)’,
),

‘UCloudEngine’ => ‘local’,
‘UCloud’ => array(
//对应的文件路径
‘host’ => ‘http://您的域名/api/upload’
),
<2>web/api/Config/dbs.php
‘db_appapi’ => array(
‘host’ => ‘数据库的地址’,
‘name’ => ‘数据库名称’,
‘user’ => ‘数据库用户名’,
‘password’ => ‘数据库密码’,
‘port’ => ‘3306’,
‘charset’ => ‘utf8mb4’,
),
<3>web/data/conf/db.php
return array(
‘DB_TYPE’ => ‘mysqli’,
‘DB_HOST’ => ‘数据地址’,
‘DB_NAME’ => ‘数据库用户名’,
‘DB_USER’ => ‘数据库名’,
‘DB_PWD’ => ‘数据库密码’,
‘DB_PORT’ => ‘3306’,
‘DB_PREFIX’ => ‘cmf_’,
‘DB_CHARSET’ => ‘utf8mb4’,
/* redis /
‘REDIS_HOST’ => “Redis地址”,
‘REDIS_AUTH’ => “Redis密码”,
‘REDIS_PORT’ => “Redis端口号”,
//密钥
“AUTHCODE” => ‘rCt52pF2cnnKNB3Hkp’,
//cookies
“COOKIE_PREFIX” => ‘AJ1sOD_’,
);
<4>web/alipay/alipay_app/notify_url.php
修改的内容如下:
$link = mysql_connect(“数据库地址”,“数据库⽤户”,“数据库密码”);
if($link){
mysql_select_db(“数据库名”,$link);
<5>web/wxpay/pay/notify_jsapi.php
需要修改的内容如下:
$link = new mysqli(“数据库地址”,“数据库⽤户”,“数据库密码”,“数据库名”);
$link = mysql_connect(“数据库地址”,“数据库⽤户”,“数据库密码”);
<6>web/wxshare/Application/Common/Conf/config.php
/
数据库配置 */
‘DB_TYPE’ => ‘mysqli’, // 数据库类型
‘DB_HOST’ => ‘数据库地址’, // 服务器地址
‘DB_NAME’ => ‘数据库名’, // 数据库名
‘DB_USER’ => ‘数据库用户名’, // 用户名
‘DB_PWD’ => ‘数据库密码’, // 密码
‘DB_PORT’ => ‘3306’, // 端口
‘DB_PREFIX’ => ‘cmf_’, // 数据库表前缀
‘REDIS_HOST’=>‘Redis地址’,
‘REDIS_AUTH’=>‘Redis密码’,
‘REDIS_PORT’=>‘Redis端口’,
服务重启
注释掉这个文件【02-opcache.ini】的内容
/usr/local/php/etc/php.d/02-opcache.ini
这个PHP缓存,开发测试阶段需要关闭否则会影响问题的修改和测试偏差。
清理掉web缓存
web/data/runtime/目录下的文件清空
service mysqld restart
service php-fpm restart
systemctl restart redis-server
systemctl restart nginx
六、nodejs部署
1.下载nvm一键安装脚本
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
2.然后查看~/.zshrc文件,会看到入如下几⾏
//查看zshrc文件中是否添加
cat ~/.zshrc
//若没有,则手动添加
vim ~/.zshrc
//添加内容
export NVM_DIR="$HOME/.nvm"
[ -s “$NVM_DIR/nvm.sh” ] && . “$NVM_DIR/nvm.sh”
3.重新载入配置文件
source ~/.zshrc
4.然后安装nodejs
nvm install v6.10.2
5.然后使用安装的nodejs
nvm use v6.10.2
6.输入如下命令,如果返回的是版本号,就说明nodejs安装成功
node -v
7.然后安装cnpm
注:只有国内服务器,才安装cnpm,执行下面的命令。国外服务器跳过。
npm install -g cnpm --registry=https://registry.npm.taobao.org
8.然后安装pm2
//国内服务器选执行如下
cnpm install pm2 -g
//国外服务器执行如下
npm install pm2 -g
9.安装nodejs拓展块
删除 /data/wwwroot/www.abc.com(自己创建的站点)/LiveNewIM/node_modules
cd /data/wwwroot/www.abc.com(自己创建的站点)/LiveNewIM
rm -rf node_modules
//查看zshrc文件中是否添加
cat ~/.zshrc
//若没有,则手动添加
vim ~/.zshrc
//添加内容
export NVM_DIR=“ H O M E / . n v m " [ − s " HOME/.nvm" [ -s " HOME/.nvm"[−s"NVM_DIR/nvm.sh” ] && . “$NVM_DIR/nvm.sh”
//推荐国外服务器使用
npm install
npm install md5-node
npm install node-schedule
或者
//国内服务器使用命令
cnpm install
cnpm install md5-node
cnpm install node-schedule
10.修改配置文件,将LiveNewIM目录下的config.js和exposure.js文件里面的信息修改为
自己的,
cd /data/wwwroot/www.abc.com(新建的站点)/LiveNewIM
vim config.js
内容如下:
‘REDISHOST’ : ‘redis地址’,
‘REDISPASS’ : ‘redis密码’,
‘REDISPORT’ : ‘6379’,
‘TOKEN’ : ‘1234567’,
‘WEBADDRESS’: ‘http://www.abc.com(自己的域名)/api/public/’
vim exposure.js
内容如下:
var site=‘http://www.abc.com(自己的网站域名)’;
11.然后,启动nodejs程序
pm2 start s1.js --watch
pm2 start exposure.js --watch
12.保存pm2启动信息
pm2 save
13.设置开机启动
pm2 startup
七、后台信息配置需要修改的地方
1.系统设置—>公共配置—>网站信息,修改为你自己的域名http://www.abc.com
在这里插入图片描述

2.系统设置—>私密设置—>直播配置,填写聊天服务地址,修改为http://www.abc.com:1
9967
在这里插入图片描述

3.系统设置—>私密设置—>直播配置,填写视频推拉流地址(即视频cdn)
4.七牛云信息填写
在这里插入图片描述

5.短视频存储信息填写
后台系统–>私密设置–>视频配置
在这里插入图片描述

恭喜你,搭建完成!

标签:install,部署,redis,数据库,环境,直播,conf,php,com
来源: https://blog.csdn.net/qq_33548469/article/details/114030926

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有