• edusoho企培版纯内网部署教程(解决播放器,上传,后台卡顿问题)


    重点在后面的内网配置及代码改动

    1.先配置linux环境(php nginx mysql)

    1. php7.1  7.2  7.3 选择你要的版本。 7以下 和7.4及以上不支持(装了跑不起来的,不信可以试试)
    2. mysql5.7-mysql8.0 之间选择你要的版本
    3. nginx
    4. 注意: 需要修改部分配置
    5. php
    6. //修改/etc/php/7.1/fpm/php.ini文件配置项
    7. vim /etc/php/7.1/fpm/php.ini
    8. post_max_size = 1024M
    9. memory_limit = 1024M
    10. upload_max_filesize = 1024M
    11. //修改 PHP-FPM 监听方式为127.0.0.1:9000:
    12. sudo sed -i 's/listen = .*/listen = 127.0.0.1:9000/g'
    13. /etc/php/7.1/fpm/pool.d/www.conf
    14. //重启php
    15. sudo service php7.1-fpm restart
    16. nginx
    17. vim /etc/nginx/nginx.conf
    18. 添加`client_max_body_size 1024M;`到http下,如下所示
    19. http {
    20. ##
    21. # Basic Settings
    22. ##
    23. client_max_body_size 1024M; #添加后nginx可以允许上传更大的文件
    24. ...
    25. }

    2.下载edusoho企培版

    1. cd /var/www
    2. //这里是21.4.5 你可以选择下载最新的也可以安装这个版本跑通以后,后台再去升级,因为官方下载的包也不是最新的版本
    3. wget https://download.edusoho.com/edusoho-ct-21.4.5.zip
    4. //没有zip 安装zip
    5. sudo apt install zip
    6. unzip edusoho-ct-21.4.5.zip
    7. cd edusoho
    8. // 给权限
    9. sudo chown -R www-data:www-data .
    10. sudo chmod -R 777 .

    3.配置edusoho的nginx

    1. cd /etc/nginx/sites-enabled
    2. sudo vim edusoho
    3. 粘贴下面内容
    4. server {
    5. listen 80;
    6. # [改] 网站的域名 或服务器ip
    7. server_name 121.199.50.180;
    8. #301跳转可以在nginx中配置
    9. # 程序的安装路径
    10. root /var/www/edusoho/web;
    11. # 日志路径
    12. access_log /var/log/nginx/edusoho.com.access.log;
    13. error_log /var/log/nginx/edusoho.com.error.log;
    14. location / {
    15. index app.php;
    16. try_files $uri @rewriteapp;
    17. }
    18. location @rewriteapp {
    19. rewrite ^(.*)$ /app.php/$1 last;
    20. }
    21. location ~ ^/udisk {
    22. internal;
    23. root /var/www/edusoho/app/data/;
    24. }
    25. location ~ ^/(app|app_dev)\.php(/|$) {
    26. fastcgi_pass 127.0.0.1:9000;
    27. fastcgi_split_path_info ^(.+\.php)(/.*)$;
    28. include fastcgi_params;
    29. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    30. fastcgi_param HTTPS off;
    31. fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect;
    32. fastcgi_param HTTP_X-Accel-Mapping /udisk=/var/www/edusoho/app/data/udisk;
    33. fastcgi_buffer_size 128k;
    34. fastcgi_buffers 8 128k;
    35. }
    36. # 配置设置图片格式文件
    37. location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {
    38. # 过期时间为3年
    39. expires 3y;
    40. # 关闭日志记录
    41. access_log off;
    42. # 关闭gzip压缩,减少CPU消耗,因为图片的压缩率不高。
    43. gzip off;
    44. }
    45. # 配置css/js文件
    46. location ~* \.(css|js)$ {
    47. access_log off;
    48. expires 3y;
    49. }
    50. # 禁止用户上传目录下所有.php文件的访问,提高安全性
    51. location ~ ^/files/.*\.(php|php7.0)$ {
    52. deny all;
    53. }
    54. # 以下配置允许运行.php的程序,方便于其他第三方系统的集成。
    55. location ~ \.php$ {
    56. # [改] 请根据实际php-fpm运行的方式修改
    57. fastcgi_pass 127.0.0.1:9000;
    58. fastcgi_split_path_info ^(.+\.php)(/.*)$;
    59. include fastcgi_params;
    60. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    61. fastcgi_param HTTPS off;
    62. fastcgi_param HTTP_PROXY "";
    63. }
    64. }

    浏览器输入ip或域名就开始你的安装流程了 直接下一步下一步 就完工了

    重点:内网配置 纯内网部署(注意仅限于不能接外网的情况下)

    1.下载sdk文件:

     链接: https://pan.baidu.com/s/1akGId9DOrtN60iec_Acu1A 提取码: n27n 

    sdk功能是持续在更新的 目前这个是2021-11-01版本,能正常使用 如需最新需要联系官方获取

    2.替换文件 :

    替换项目目录web/service-cdn

    3. 创建文件(不用管它干嘛用的,没有这个你打不开下一步)

    app/data 下新建dev.lock 文件

    4. 修改配置 :

    进入你的网校地址 /app_dev.php/admin/setting/developer 修改气球云SDK的CDN地址为 域名/service-cdn/ 例子dev.edudev.com/service-cdn/   切记不带http://

    修改是否无外网配置

    5.修改部分代码

    1. 修改src/Biz/CloudPlatform/Client/FailoverCloudAPI.php 文件中的 getServerList方法
    2. public function getServerList($nextRefreshTime = 0)
    3. {
    4. $prevApiUrl = $this->apiUrl;
    5. $this->setApiUrl($this->rootApiUrl);
    6. $servers = parent::_request('GET', '/server_list', array(), array());
    7. $servers = '{"root":"http:\/\/api.edusoho.net","leafs":[{"url":"http:\/\/leafapi1.edusoho.net","used_count":0},{"url":"http:\/\/leafapi2.edusoho.net","used_count":0}],"current_leaf":"http:\/\/leafapi2.edusoho.net","failed_count":0,"failed_expired":0,"next_refresh_time":1652733014}';
    8. $servers = json_decode($servers, true);
    9. $this->setApiUrl($prevApiUrl);
    10. if (empty($servers) || empty($servers['root']) || empty($servers['current_leaf']) || empty($servers['leafs'])) {
    11. $servers = $this->getServerListFromCdn();
    12. if (empty($servers) || empty($servers['root']) || empty($servers['leafs'])) {
    13. throw new \RuntimeException('Requested API Server list from CDN failed.');
    14. }
    15. }
    16. if (empty($servers['current_leaf'])) {
    17. $servers['current_leaf'] = $servers['leafs'][array_rand($servers['leafs'])]['url'];
    18. }
    19. foreach ($servers['leafs'] as &$leaf) {
    20. $leaf['used_count'] = 0;
    21. unset($leaf);
    22. }
    23. $servers['failed_count'] = 0;
    24. $servers['failed_expired'] = 0;
    25. if (empty($nextRefreshTime)) {
    26. //确保每天的凌晨0~5点之间的时间内更新
    27. $hour = rand(0, 5);
    28. $minute = rand(0, 59);
    29. $second = rand(0, 59);
    30. $nextRefreshTime = strtotime(date('Y-m-d 0:0:0', strtotime('+1 day'))) + $hour * 3600 + $minute * 60 + $second;
    31. }
    32. $servers['next_refresh_time'] = $nextRefreshTime;
    33. return $servers;
    34. }

    6.修复内网情况下后台所有页面卡顿问题

    1. 修改
    2. src/CorporateTrainingBundle/Resources/views/admin/default/corporate-training-admin-index.html.twig
    3. 换上下面所有代码
    4. {% extends 'admin/admin-layout.html.twig' %}
    5. {% block title %}{{ 'homepage.header.admin_menu'|trans }}{% endblock %}
    6. {% set panel = 'dashboard' %}
    7. {% set script_controller = 'corporatetrainingbundle/controller/default/admin-index' %}
    8. {% do script(['libs/fullcalendar.js', 'corporatetrainingbundle/js/admin/default/index.js', 'corporatetrainingbundle/js/admin/quick-entrance/index.js']) %}
    9. {% block container %}
    10. {{ web_macro.flash_messages() }}
    11. <link href="{{ asset('assets/libs/gallery/morris/0.5.0/morris.css') }}" rel="stylesheet"/>
    12. {# 域名检查提示 #}
    13. {# {{ render(controller('AppBundle:Admin/Default:validateDomain')) }}#}
    14. {% if onlineAdvisoryAuthInfo.level is defined %}
    15. {% set setting = setting('auto_upgrade') %}
    16. {% set onlineAdvisoryAuthInfo = online_advisory_auth_info() %}
    17. {% set showAutoUpgradeNotify = onlineAdvisoryAuthInfo.isCustom != '是' and onlineAdvisoryAuthInfo.level != 'none' and not setting.notification_shown|default(false) %}
    18. <div class="alert alert-success row {% if not has_permission('admin_optimize_settings') or not showAutoUpgradeNotify%}hidden{% endif %}"
    19. data-show-modal="{% if has_permission('admin_optimize_settings') and (onlineAdvisoryAuthInfo.level == 'none' or onlineAdvisoryAuthInfo.level|default('') == 'license') and not setting.notification_shown|default(false) %}1{% else %}0{% endif %}"
    20. id="js-auto-upgrade-box" style="border:none;border-radius:0;padding: 10px 31px 10px 31px;line-height:32px;" data-notify-url="{{ path('admin_auto_upgrade_notify') }}">
    21. <div class="pull-left">{{ 'admin.app_upgrades.auto_upgrade_tips'|trans({'%settingUrl%': path('admin_optimize')})|raw }}</div>
    22. <a href="javascript:;" class="btn color-success pull-right" id="js-auto-upgrade-confirm-btn"
    23. data-url="{{ path('admin_optimize_auto_upgrade') }}">我知道了</a>
    24. </div>
    25. {% endif %}
    26. <div class="admin-index">
    27. <div class="admin-index__left">
    28. {# 待办工作 #}
    29. <div class="admin-index-block to-do-work">
    30. {{ render(controller('CorporateTrainingBundle:Admin/Train/MyWorks:myWorks')) }}
    31. </div>
    32. {% if app.user.manageOrgIds|default() %}
    33. {# 数据统计 #}
    34. {% include 'admin/default/data-overview.html.twig' %}
    35. {# 学习趋势图 and 排行榜 #}
    36. <div class="echart-rank clearfix">
    37. {% include 'admin/default/corporate-training-echart-rank.html.twig' %}
    38. </div>
    39. {% endif %}
    40. {# 系统状态 #}
    41. <div>
    42. {% cache 'system/version' 600 %}
    43. {# {{ render(controller('CorporateTrainingBundle:Admin/Analysis:systemStatus')) }}#}
    44. {% endcache %}
    45. </div>
    46. {# 经营建议(高级去版权不显示)#}
    47. {% if not setting('copyright.thirdCopyright', false) == 1 %}
    48. {# <div class="js-admin-advice" data-url="{{ path('admin_business_advice') }}"></div>#}
    49. {% endif %}
    50. </div>
    51. {# <div class="admin-index__right index-right">#}
    52. {# {% include "admin/default/admin-index-right.html.twig" %}#}
    53. {# </div>#}
    54. </div>
    55. {% endblock %}
    56. {% do load_script('widget/tooltip-widget') %}

    最后 去创建课程 上传视频音频。 播放正常就ok了 

    有问题欢迎私信

  • 相关阅读:
    Flutter快学快用20 原生通信:应用原生平台交互扩充 Flutter 基础能力
    Eigen C++之Eigen库基本使用(下)
    城市公交查询系统的设计与实现(Java+Web+MySQL+J2EE)
    基于matlab如何判断闰年方法
    嵌入式面试常见问题(四)
    docker架构
    【LeetCode】94. 二叉树的中序遍历
    element-table 行的拖拽更改顺序(无需下载sortableJs
    对微信支付和支付宝支付SDK的封装
    mybatis一级缓存、二级缓存的意义是什么?
  • 原文地址:https://blog.csdn.net/wolf23151269/article/details/125514114