`

在ubunut 12.04 server 上部署 edx

edx 
阅读更多
前言:
  这个部署只是针对 2014年1月左右的代码, 因为脚本比较老,当然现在github上的开源edx 部署起来比去年的较容易, 最近更新的edx,生产环境我用了半天时间部署完成, 但是去年的edx, 我花了1天半时间, 这也并不是去年要安装的东西多, 而是很多包安装的时候没有现在的脚本优化的那么好, 还有影响最大的是网络和机器配置问题, 不管是新的edx还是旧的edx代码,部署起来都差不多, 脚本改变的不是很大,就看问题怎么解决

开源地址: https://github.com/edx/edx-platform

1. 环境要求:

Ubuntu 12.04 amd64 (oraclejdk required)

Minimum 2GB of memory, 4GB recommended for production servers (with only 2GB some swap space is required, at least during installation)

At least one 2.00GHz CPU or EC2 compute unit

Minimum 25GB of free disk, 50GB recommended for production servers

这是官网要求的参数, 而且系统必须是12.04 64位的, 开发环境在14.04 上弄过, 但是生产环境我就没有去研究过, 内存至少2G 还有2G交换空间, 如果没有交换空间, 装的时候有时候会报内存益出, 硬盘25G, 现在国内很多服务器自带20G, 根本不够, 装到一半的时候没有空间了, 后来又加了50G的空间

2. 更新,升级系统到最新状态
sudo apt-get update –y
sudo apt-get upgrade –y
sudo reboot

3. 安装项目基本要求环境

sudo apt-get install -y build-essential software-properties-common python-software-properties curl git-core libxml2-dev libxslt1-dev python-pip python-apt python-dev

wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py -O - | sudo python

sudo pip install --upgrade pip
sudo pip install --upgrade virtualenv

4. 脚本准备
git clone -b release https://github.com/edx/configuration
这是github上面最新的脚本,
我使用的是去年时候git clone的脚本

cd configuration/
sudo pip install -r requirements.txt

这步还有以后遇到的问题, 默认的安装包是从官网下载,国内网速比较坑, 直接指定 pip国内源安装

sudo pip install -i http://pypi.douban.com/simple/ -r requirements.txt

国内源:
http://pypi.douban.com/  豆瓣
http://pypi.hustunique.com/  华中理工大学
http://pypi.sdutlinux.org/  山东理工大学
http://pypi.mirrors.ustc.edu.cn/  中国科学技术大学
http://mirrors.aliyun.com/pypi/simple/ 阿里云

之后编译没有通过的时候, 修改pip的源, 修改的地方有几处,每个角色需要改, 分别在/edx/app/角色名称 目录下的.pip目录里,里面没有pip.conf文件, 需要建立
你可以 vim 或者touch一个pip.conf
例如:
cd /edx/app/edxapp
ll
会看到有个.pip目录
cd .pip
vim pip.conf

添加如下:
[global]
index-url = http://pypi.douban.com/simple

还有脚本里的,如果有官网源: http://e.pypi.python.org/simple
全部替换为国内源

vim edxapp/defaults/main.yml
edxapp_pypi_local_mirror:  'http://pypi.douban.com/simple'

5. 软件准备
执行脚本的时候, 有几个需要安装的软件下载比较慢, 提前下载

elasticsearch-0.90.11.deb 
jdk-7u51-linux-x64.tar.gz
mongodb-10gen_2.4.7_amd64.deb
nltk-data-20131113.tar.gz
rabbitmq-server_3.2.2-1_all.deb

期中mongodb和rabbitmq-server 我手动安装, 因为mongodb的源原来是官网的,安装相当的慢
sudo dpkg -i mongodb-10gen_2.4.7_amd64.deb
只要执行这句就行了, 初始化的时候在执行脚本的时候会初始化

当然也可以改为 国内的源
mongodb 国内源:
deb http://mirrors.bistu.edu.cn/mongodb/repo/ubuntu-upstart dist 10gen'

安装rabbitmq-server
sudo dpkg -i rabbitmq-server_3.2.2-1_all.deb   (会报缺少依赖)
执行
sudo apt-get install erlang-nox
sudo apt-get -f install  安装依赖

其他几个需要打包到一个目录下(我存放目录/edx/soft), 修改脚本的位置
cd /var/tmp/configuration/playbooks/roles

./oraclejdk/defaults/main.yml:
oraclejdk_url: "file:///edx/soft/jdk-7u51-linux-x64.tar.gz"

./ora/defaults/main.yml:      ora_nltk_download_url: file:///edx/soft/nltk-data-20131113.tar.gz

./discern/defaults/main.yml: discern_nltk_download_url: file:///edx/soft/nltk-data-20131113.tar.gz

./elasticsearch/defaults/main.yml:     elasticsearch_url: "file:///edx/soft/{{ elasticsearch_file }}"


6. 执行脚本
cd configuration/playbooks

sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost,"

如果安装过程中出错了,再次执行时候可以从出错的地方继续
sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost," --start-at-task="edxapp | install python base-requirements"

执行这个脚本会有很多次,不必担心,过程会很漫长
执行完之后,你的edx就可以访问了
lms端: ip
cms端: ip:18010

7. 注意事项
安装的时候你可以打开两个窗口,一个在执行脚本,一个可以通过ps ax|grep install 之类的查看进程, 看看到底这步在干什么,方便你解决可能出现的错误

当看到
16746 pts/0    S+     0:03 /edx/app/discern/venvs/discern/bin/python /edx/app/discern/venvs/discern/bin/pip install -r /edx/app/discern/ease/requirements.txt
进程有这些,而且卡在这里很久,或者出错了

这可能是你的pip源没有配好,源很慢,你可以直接执行这句,使用国内比较快的源
/edx/app/discern/venvs/discern/bin/python /edx/app/discern/venvs/discern/bin/pip install
-i http://pypi.douban.com/simple/
-r /edx/app/discern/ease/requirements.txt

每个角色都有个一个环境, 这里是discern, 使用的它目录下venvs的python和pip去执行
执行完这句之后, 从出错的地方继续执行脚本


又比如:
TASK: [edxapp | syncdb and migrate]
这条命令会报 _mysql_exceptions.OperationalError: (1044, "Access denied for user 'edxapp001'@'localhost' to database 'edxapp'")
用户没有权限,使用root登录mysql,执行如下命令
mysql> GRANT ALL PRIVILEGES ON edxapp.* TO 'edxapp001'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

等等

安装过程中需要安装ruby
ruby 默认的是国外的源,比较慢,可以换为国内淘宝的源
这里使用rbenv安装ruby
查看ruby 版本
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]
查看gem 版本
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem -v
1.8.23
查看gem 源
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem source -l
*** CURRENT SOURCES ***

http://rubygems.org/

删除源 http://rubygems.org/
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem source --remove http://rubygems.org/

添加源
/edx/app/forum/.rbenv/versions/1.9.3-p448/bin/gem sourc -a https://ruby.taobao.org/

此外还要修改Gemfile里的配置,
vim /edx/app/forum/cs_comments_service/Gemfile


source 'https://rubygems.org'
替换为
source 'https://ruby.taobao.org/'



分享到:
评论

相关推荐

    libc6 for ubuntu12.04

    在Ubuntu 12.04(代号Precise Pangolin)这样的Linux发行版中,libc6是系统的基本组成部分,确保所有依赖于它的应用程序能够正常运行。这个库的更新通常涉及到安全修复、性能改进以及对新硬件和新功能的支持。 **...

    ubuntu1204serverguide

    **Ubuntu Server Guide** 是一个全面且详尽的手册,旨在为用户提供如何在其 Ubuntu 系统上安装和配置各种服务器应用的指导。这份文档是面向任务的,通过一系列步骤帮助用户根据自己的需求定制系统。 #### 二、支持 ...

    Ubuntu Server 12.04安装图解

    **Ubuntu Server 12.04安装图解** Ubuntu Server 12.04,代号"precise pangolin",是Ubuntu发行版的一个长期支持(LTS)版本,为服务器环境提供了稳定、安全且高效的操作系统。这个版本的生命周期长达五年,确保了...

    Ubuntu12.04server详解安装图文教程.pdf

    《Ubuntu 12.04 Server 详尽安装指南》 Ubuntu操作系统分为桌面版和服务器版,其中Ubuntu Server 12.04是一款专为服务器环境设计的操作系统,以其稳定性和安全性著称。本教程将深入浅出地指导你如何进行Ubuntu ...

    ubuntu12.04共享虚拟机上网

    ubuntu12.04 server版本,虚拟机共享宿主机的无线网上网,亲测,有图。

    ubuntu 12.04 使用手册1—4

    《Ubuntu 12.04 使用手册1—4》是一套专为Ubuntu 12.04 LTS(长期支持版)用户编写的详尽指南,旨在帮助初学者和进阶用户掌握这一开源操作系统的基本操作与高级技巧。Ubuntu 12.04,代号“Precise Pangolin”,是...

    ubuntu12.04 SSH升级到OpenSSH_7.9p1, OpenSSL 1.1.1b

    原来的ssh扫描报太多漏洞了,整理了下一键安装的脚本直接升级到最新的;...#update Ubuntu12.04 : OpenSSH_7.9p1, OpenSSL 1.1.1b 26 Feb 2019 #old : OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012

    Ubuntu12.04 nginx python uwsgi Django安装步骤

    在本文中,我们将介绍如何在 Ubuntu 12.04 环境下安装 Nginx、Python、uWSGI 和 Django。这些技术栈组合是非常流行的 Web 应用程序开发环境。 一、安装 Nginx Nginx 是一个轻量级的反向代理服务器,可以用来处理 ...

    Ubuntu12.04菜鸟使用手册合集

    在Ubuntu 12.04中,有两种主要的安装方式:标准的图形化安装和命令行安装。图形化安装适合大多数用户,它通过友好的向导式界面引导用户完成分区、网络设置等步骤。命令行安装则适用于有经验的用户,它提供了更多...

    ubuntu12.04服务器入门指南

    这份指南详细介绍了如何在Ubuntu 12.04系统上安装和配置各种服务器应用,从而满足用户特定的需求。它是通过一系列具体任务来指导用户完成系统配置和定制的,具有步骤导向的特点。 该文档由Ubuntu官方文档团队负责...

    学习ubuntu12.04入门指南

    在Ubuntu 12.04中,首次启动时会引导用户进行一系列设置,包括语言选择、键盘布局、网络连接以及用户账户创建。安装完成后,用户将被带到Unity桌面环境,这是Ubuntu特有的用户界面,提供了一种高效的多任务工作方式...

    在 Ubuntu 12.04 Server 上安装部署 Ruby on Rails 应用

    本教程只适合 Ubuntu Server 用于部署项目到线上,建议使用同样的 Ubuntu 版本,以免遇到一些版本不同带来的问题。 本教程适合新手初次部署 Rails 应用; 本文测试通过环境 Ubuntu 12.04 Server, 服务器安装测试于 ...

    Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程

    Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+Ubuntu标准教程Ubuntu12.04菜鸟使用手册合集+...

    zabbix2.03在ubuntu12.04上的安装(最新)

    在Ubuntu 12.04上安装Zabbix 2.0.3的详细步骤涉及到多个环节,包括系统准备、依赖库安装、Zabbix源码编译、数据库设置、配置文件修改以及服务启动与优化。以下是整个过程的详细说明: 1. **系统用户与组创建**: ...

    ubuntu12.04常用命令

    在Linux环境中,特别是Ubuntu 12.04系统中,经常需要查看文件内容。本篇文章将重点介绍如何使用`head`、`tail`以及`sed`等命令来查看文件的部分内容。 ##### 1. `head` 命令 `head`命令用于查看文件的前几行内容。...

    Ubuntu 12.04 菜鸟完全使用教程

    Ubuntu 12.04(Precise Pangolin)是Ubuntu发布史上较为经典的一个版本,于2012年4月发布,拥有长期支持(LTS)特性,直到2017年4月停止官方支持。对于Linux新手来说,Ubuntu 12.04是一个良好的起点,其用户界面友好...

    Ubuntu12.04下编译成功的APUE附带源码

    在Ubuntu 12.04这个稳定且广泛应用的操作系统版本上编译APUE的源码,为开发者提供了一个理想的实践平台,特别是对那些想要学习Linux C编程的初学者和进阶者。 首先,我们需要理解Ubuntu 12.04(代号Precise ...

    Ubuntu 12.04 菜鸟使用手册(全)

    1. **Ubuntu论坛**: 用户可以在论坛上提问、分享经验。 2. **Ubuntu官方文档**: 提供详细的系统指南和技术帮助。 以上是Ubuntu 12.04菜鸟使用手册的主要内容,通过这些指导,新用户可以顺利地掌握Ubuntu的基本操作...

Global site tag (gtag.js) - Google Analytics