米络直播平台的linux配置流程

产品名称Product name 密级Confidentiality level
普通
产品版本Product version

在线教育直播web服务器部署说明文档

Prepared by
拟制 柴帅 Date
日期 2018-9-13
Reviewed by
评审人 Date
日期
Approved by
批准 Date
日期

All rights reserved
版权所有侵权必究

Revision Record 修订记录
Date
日期 Revision Version
修订版本 CR ID
CR号 Sec No.
修改章节 Change Description
修改描述 Author
作者
2018-09-10 2.0 Lnmp配置初稿 林承益

目录

在线教育直播web服务器部署说明文档 - 1 -
Revision Record 修订记录 - 2 -
一、Linux环境 - 3 -
1.服务器环境部署 - 3 -
1.1 服务器系统要求 - 3 -
1.2 Lanmp环境的部署 - 4 -
1.3 安装nodejs - 6 -
2. 程序部署 - 8 -
2.1 站点创建 - 8 -
2.2 数据库数据导入 - 9 -
2.3 修改php配置文件 - 10 -
2.4 nodejs 定时任务与上传任务启动 - 13 -
2.5 已直播课次信息统计的脚本部署与定时 - 13 -
2.6 后台访问 - 14 -
参考文档 - 14 -

一、 Linux环境
1.服务器环境部署
1.1 服务器系统要求
系统需求:
• CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin/Aliyun/Amazon/Mint Linux发行版
• 需要5GB以上硬盘剩余空间,MySQL 5.7,MariaDB 10至少9GB剩余空间
• 需要128MB以上内存(128MB小内存VPS,Xen需有SWAP,OpenVZ至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
• 安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存!。
• VPS或服务器必须已经联网且必须设置的是网络源不能是光盘源,同时VPS/服务器DNS要正常!
• Linux下区分大小写,输入命令时请注意!
• 如有通过yum或apt-get安装的MySQL/MariaDB请自行备份数据等相关文件!
• CentOS 5,Debian 6及之前版本其官网已经结束支持无法使用!

建议使用centOS6.5_x64。

1.1Lnmp环境的部署
Lnmp是一个集成环境,它集成了我们使用php开发web的一系列工具,我们就不需要去单独安装各个工具。这里采用的是lnmp1.2版本(官网提供的地址:http://soft.vpser.net/lnmp/lnmp1.2.tar.gz),需要手动部署。
下载安装包
创建一个文件夹
cd /home
mkdirlnmp1.2
cd lnmp1.2

下载安装包
wgethttp://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz
1.2.1解压
tarzxvflnmp1.2-full.tar.gz

1.2.2安装
为了保持远程终端会话, 使用screen命令,
登陆后运行:screen -S lnmp
(如断线可使用screen -r lnmp恢复)

1 执行下面命令,开始安装lnmp(代表linuxnginx,mysql,php)
sh./install.sh lnmp

2. 首先数据库的密码设置,如下图:

输入mysql数据库密码: 123456

是否安装innoDB,默认是yes。
I选择mysql数据库版本:选择:5.6.xx, 选择3
II 选择php版本, 5.6.x, 选择

配置完成后,然后就选择任意按键,静静的等待安装完成,安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。

1.2.3检查nginx安装是否成功

如上图所示,Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间及Install lnmp V1.5 completed! enjoy it.的话,说明已经安装成功。
通过web访问http://ip:端口号,是否可以看到ngnix页面,看到表示安装成功。
1.2.4 结合nginx与php-fpm服务
1更改nginx.conf配置文件,首先备份一下nginx.conf 将已上线的nginx.conf拷贝到/user/local/nginx/conf/。
重启一下ngnix服务,输入以下命令:
servicengnix reload.
拷贝K16 web业务代码到/web/目前下, 全部给可读写权限。

2由于原来安装的php-fpm没正常运行导致下面问题,
再次通过web访问http://ip:端口号, 出现了
重新运行php-fpm,后也出现了以下问题:

解决办法:
1, 杀掉之前所有的php-fmp服务, 使用命令: killallphp-fpm
2, 通过百度云盘下载最新的php-fpm配置文件,替换/usr/local/php/etc/php-fpm.con.
3, 重启php-fpm服务,执行service php-fpm start命令,或者直接php-fpm.
看到下面服务器监听开起来了,表示php-fpm服务正常。

1.2.5安装Memcached及配置PHP的Memcache扩展
1, 系统安装memcache软件。
1.分别下载memcached和libevent
wget http://memcached.org/files/memcached-1.4.25.tar.gz
wgethttps://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
2.先安装libevent:

tar zxvf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable

./configure --prefix=/usr

make

make install

3.测试libevent是否安装成功
ls -al /usr/lib |grep libevent

4.安装memcached,同时需要安装中指定libevent的安装位置:

tar zxvf memcached-1.4.25.tar.gz

cd memcached-1.4.25

./configure --with-libevent=/usr

make

make install

5.测试是否成功安装memcached:

ls -al /usr/local/bin/mem*

6.启动memcached
/usr/local/bin/memcached -d -m 10 -u root-p 11211 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址
-p是设置Memcache监听的端口,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件
2, 手动安装php-memcache扩展:(需要先安装zlib库文件)
wgethttp://zlib.net/fossils/zlib-1.2.8.tar.gz
tar zxvf zlib-1.2.8.tar.gz #解压包
cd zlib-1.2.8#进入到解压的目录
./configure --prefix=/usr/local/zlib
make; make install #编译+安装

第一, 下载php扩展memcache3.0.8
第二, wgethttp://pecl.php.net/get/memcache-3.0.8.tgz
第三, 解压缩 tarzxvfmemcache-3.0.8.tgz
cd memcache-3.0.8#进入到解压的目录
/usr/local/php/bin/phpize#动态为php添加扩展。phpize路径可能不一致,请根据自己的实际情况
./configure --enable-memcache -with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
#php-config请根据自己环境情况填写
第四, make; make install #编译+安装
第五,配置php.ini文件
首先通过phpinfo函数,找到php.ini的路径,我的是:/user/local/php/etc/php.ini
在其中添加如下内容:

  1. 修改extension_dir路径:
    extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/”
  2. extension=memcache.so
    [Memcache]
    memcache.allow_failover = 1
    memcache.max_failover_attempts=20
    memcache.chunk_size =8192

第三,重启一下nginx服务器
第四,检查php-memcache扩展是否安装成功

在网站目录下新建一个phpinfo.php测试页面,写上下面代码,保存。

Zip, Gd2, redis,openssl扩展库继续安装。
1.2.6安装redis及配置PHP的Redis扩展
需要先在安装tcl组件。

  1. wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
  2. sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
  3. cd /usr/local/tcl8.6.1/unix/
  4. sudo ./configure
  5. sudo make
  6. sudo make install

1.下载Redis
wget http://download.redis.io/releases/redis-2.8.19.tar.gz
2.解压和编译
tar -zxvf redis-2.8.19.tar.gz
cd redis-2.8.19
make(如果遇到错误,可以用maketest等待的时间可能几分钟左右。)
3.安装配置
在redis目录执行make install

(注意:当make install 到最后会卡在那,若很久没反应,ctrl+c退出安装,重新make instll)
然后执行./utils/install_server.sh配置Redis配置之后Redis能随系统启动
回车会出现6379等等界面一路回车即可
出现Installation successful!说明安装完成,如下图所示:

Redis服务查看、开启、关闭
1、通过ps -ef|grepredis命令查看Redis进程;
2、开启Redis服务操作通过/etc/init.d/redis_6379 start命令,也可通过(service redis_6379 start);
3、关闭Redis服务操作通过/etc/init.d/redis_6379 stop命令,也可通过(service redis_6379 stop);
安装PHP redis扩展
1.下载扩展
wget http://pecl.php.net/get/redis-2.2.5.tgz
2.解压
tar zxvf redis-2.2.5.tgz
3.进入目录执行phpize (phpize可通过which phpize查看)
cd redis-2.2.5
/usr/local/php/bin/phpize
4.配置(php-config可通过which php-config查看)
./configure --with-php-config=//usr/local/php/bin/php-config
5.编译安装
make && make install
安装完成后出现以下路径
最后在系统加载的php.ini中添加
extension=“redis.so
(注意若phpinfo信息中没有redis新,去除双引号 extension=redis.so
如果要卸载redis只需要在把安装目里面和redis有关的文件删掉就可以默认安装在/usr/local/bin目录下
1.2.7安装PHP的zip,opessl, gd2(短信服务)扩展
安装openssl
1、cd /root/tar
wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz
tar -zxvf openssl-1.0.1ej.tar.gz
cd 路径php-5.6.9/ext/openssl/
cp config0.m4 config.m4
cp ./* openssl-1.0.1e文件夹里面
cp ./.lib openssl-1.0.1e文件夹里面
/usr/local/php/bin/phpize
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
make
sudo make install
出现以下界面表示安装完成。

重启php-fpm, servicephp-fpmrestart。
查看phpinfo,看是否安装成功,如果出现下面界面表示安装成功。

安装php-zip 扩展
版本为1.15.2
找到php-5.6.9安装包的代码路径,我的路径在
/home/lnmp1.2/lnmp1.2-full/src/php-5.6.9/ext/zip
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
sudo make install

检查是否安装成功,同样通过phpinfo查询。

Gd扩展的的安装
版本为2.1.0
找到php-5.6.9安装包的代码路径,我的路径在
/home/lnmp1.2/lnmp1.2-full/src/php-5.6.9/ext/gd
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
sudo make install

同样,需要重启一下php-fpm,最好也重启一下nginx服务。

关于网页打开无法显示验证码的问题,主要原因如下:
1, GD是否安装成功。
2, 确定php文件是否去BOM头。
3, php.ini中如果安装了zlib,需设置zlib.output_compression = off,主要
在使用ob_clean();的时候,缓存不够导致。

4, 如果上述都解决不了这个图片显示的问题,最好start与clean一起使用。可以参考如下链接说明:https://blog.csdn.net/ljfrocky/article/details/41774505
所以现在我们可以得出一个结论:如果在PHP脚本中直接调用ob_clean(),同时服务器的php.ini开启了zlib压缩输出,就会导致后面输出的内容全部乱码,这时候,要不你就把zlib压缩输出关了,要不就在ob_clean()之前加上ob_start(),不然没法解决这个问题。不过考虑到程序猿通常没有修改服务器配置的权限,所以在coding的时候,记得使用ob_clean()之前一定要先调用ob_start()。 ------目前就是这个坑导致的。

2.数据库创建与导入
2.1数据库数据导入
1、登陆mysql数据库
mysql -u 用户名 –p
输入密码;
创建数据库:

CREATE DATABASE edulive;

show databases; --可以看见当前用户的数据库

查看user表
可以看到在user表中已创建的root用户。
(1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。
2、实现远程连接(授权法)
将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。

将权限改为ALL PRIVILEGES,MySQL远程配置如下
mysql> use mysql;
Database changed
mysql>GRANT ALL PRIVILEGES ON . TO root@’%’ IDENTIFIED BY ‘123456’;
mysql>FLUSH PRIVILEGES;
这样机器就可以以用户名root密码root远程访问该机器上的MySql.

三,数据库迁移
useedulive;
sourcetianyicloud_edulive_ok_withdata.sql;

四、修改了root 的host 为%,赋予了权限,依然navcat链接不上,
与防火墙有关
第一步:关闭防火墙systemctl stop firewalld
第二部:开启防火墙systemctl start firewalld
第三部:增加3306端口: firewall-cmd --zone=public --add-port=80/tcp --permanent
第四部:关闭防火墙 systemctl stop firewalld

2.3 修改php配置文件
2.3.1 修改php.ini
out_buffing = on
session.auto_start = on
session.save_path配置成memcache的地址
2.3.2 修改数据库配置文件
修改 /web/data/conf/db.php

修改/web/api/api/Config/dbs.php

如果需要开始php调试模式,打开/web/index.php文件,如下图所示:

(注意正式release后需要关闭,否则业务超级后台无法登陆。)
2.3.3 修改业务逻辑配置文件
修改 /web/data/application/Common/Conf/config.php
1.定制模板

localhost代表需要定制模板的站点,比如陆丰的站点,lufengnew这个不需要改
2.上传服务器地址

3.会议接口配置

4.memcache配置

5.支付宝配置,已经配好不用修改

6.cdn文件加速配置
具体可参见周起色对的7月3号的邮件

2.3.4修改移动端接口配置文件
修改 /www/web/k12_techbridge_cn/api/Config/app.php
1.会议配置

2.Android移动客户端版本配置

2.5 已直播课次信息统计的脚本部署与定时
2.5.1脚本的部署
1.进入hack目录: Cd /root/hack(该目录示例目录,新环境下需自己新建),再从192.168.0.19/webcode/webmeeting/branches/edulive/static(网站目录分支)获取static目录下的construct.php、DAOPDO.class.php、log.class.php将其放入到hack目录下,然后打开DAOPDO.class.php文件第八行到第十三行为数据库配置信息,需修改成对应环境的数据库配置,并确保php.ini下soap、pdo扩展已经开启,具体开启。
2.给文件增加权限
chmod +x 上述的前三个文件,并用vi编辑器查看文件格式,按esc,再按:,进入命令行输入set ff,若为dos建议建议改为unix.
3.执行sql文件
同时执行网站目录下db文件下的sql脚本文件及update相关的sql脚本文件.
4.启动定时脚本
service crond status 查看是否在运行,没有则开启service crond start,并确保开机自动开启改服务.
5.查看定时脚本
crontab -l查看已有定时器
6.增加自己的定时任务
crontab -e 增加加自己的定时器,新增一行0 0 * * * cd /root/hack && /www/wdlinux/php/bin/php /root/hack/construct.php,保存退出(注意bin/php要为对应目录下的php,此为示例)
7.查看定时任务的执行日志
可通过tail -f /var/log/cron观察该定时任务是否每30min执行一次,相应的,hack目录下log_0,若脚本执行数据插入库中成功也会提示insert success!如无合适的数据插入则会提示no content to insert.

2.6 超级后台访问
2.5.1 超级后台访问地址
http://domain/superadmin
默认账号:admin2
密码:123456
2.7部分配置文件修改
2.7.1 登录时后台请求地址.php?g=superadmin&m=public&a=dologin
不是index.php

修改php.ini中cgi.fix_pathinfo=1,重启服务器service nginx restart
2.7.1
当出通过IP访问的时候,现首页无法访问或后天出现用户名不存在,可能是nginx配置有关。
修改/usr/local/nginx/conf/fastcgi.conf里面的SERVER
/usr/local/nginx/conf/fastcgi_params里面的SERVER

将“ S E R V E R N A M E ” 改 为 “ SERVER_NAME”改为“ SERVERNAMEhost”, 然后重启一下nginx
service nginx restart

参考文档

1.wdcp安装说明
http://www.wdlinux.cn/wdcp/install.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值