基于Ubuntu虚拟机安装edx-platform
一. 前提准备
1. 虚拟机中安装Ubuntu12.04,然后再使用Vagrant方式搭建开发环境,请确保这个虚拟机可以使用2GB的内存,否则容易IO Error。
2. 建议用VirtualBox 4.2.12,Vagrant 可以用最新版。
二. 安装软件
三. 安装edx-platform
1. 本地创建edx目录,下载Ubuntu X86虚拟机放到此目录
2. 命令行模式进入edx目录,执行 : vagrant init
自动生成Vagrantfile文件。用本文编辑器修改如下:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "edx_platform_precise32"
#注意,此处要指向虚拟机文件
config.vm.box_url = "precise32.box"
config.vm.network :forwarded_port, guest: 8000, host: 8000
config.vm.network :forwarded_port, guest: 9000, host: 9000
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network :private_network, ip: "192.168.20.40"
nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
# Make it so that network access from the vagrant guest is able to
# use SSH private keys that are present on the host without copying
# them into the VM.
config.ssh.forward_agent = true
config.vm.provider :virtualbox do |vb|
# Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "2048"]
# This setting makes it so that network access from inside the vagrant guest
# is able to resolve DNS using the hosts VPN connection.
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
end
注意:
我用LMS端口是8000, CMS端口是9000,不是默认的8000, 8001
3. 启动虚拟机,命令行执行 : vagrant up
4. 启动Putty, 登录 192.168.20.40:22
账号 : vagrant
密码:vagrant
5. 修改 sourcelist,否则后面的安装都从美国服务器下载,巨慢无比,哥刚开始下了一天啊,还没有下载完,还经常重新下载,坑爹啊~
#备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
sudo gedit /etc/apt/sources.list
6. 安装Git
sudo apt-get install git
7. 创建edx目录
sudo mkdir /opt/edx
cd /opt/edx
8. 克隆edx-platform,等吧,下载200M左右,此处可以上个洗手间。
git clone https://github.com/edx/edx-platform.git
9. 修改权限, 否则后边会报错说目录属性不对。
sudo chown vagrant:vagrant /opt/edx -R
10. 卸载系统默认的1.6.1版本的numpy,prev.txt里面说必须要安装1.6.2版本,否则后面会rake报如下错误:
vagrant@precise32:/opt/edx/edx-platform/scripts$ rake lms
(in /opt/edx/edx-platform)
rake aborted!
./rakelib/helpers.rb:61: syntax error, unexpected tIDENTIFIER, expecting tAMPER
pid = Process.spawn({}, *command, spawn_opts)
查看numpy版本可以用 pip freeze | grep numpy
#卸载numpy 1.6.1
sudo apt-get remove numpy
#安装numpy 1.6.2
sudo pip install --upgrade numpy==1.6.2
11. 编辑 requirements/base.txt , 找到“polib = 1.0.3" ,把这一行注释掉;
12. 编辑 scripts/create_dev_env.sh文件,找到
”pip install -r $BASE/edx-platform/requirements/edx/pre.txt“,在后面添加一行
”pip install http://bitbucket.org/izi/polib/get/1.0.3.tar.gz“
*** 原因:polib依赖项经过pypi的解析得到的下载地址是:http://bitbucket.org/izi/polib/downloads/polib-1.0.3.tar.gz
但是在天朝,这个地址上访问不上的,然而前面的downloads是可以的,polib是必须的依赖项,所以只能是使用变相的方式将其安装上去。
错误如下:
Error timed out while getting http://bitbucket.org/izi/polib/downloads/polib-1.0.3.tar.gz (from https://pypi.python.org/simple/polib/)
Exception:
13. 编辑 rakelib/prereqs.rake, 修改pre.txt, base.txt, post.txt 安装如下:增加sudo, 否则后面会报权限不够错误, 同时去掉无效参数。
sh('sudo pip install -r requirements/edx/pre.txt')
sh('sudo pip install -r requirements/edx/base.txt')
sh('sudo pip install -r requirements/edx/post.txt')
14. 开始安装,下载一堆升级包,这时候你就指导第5步的重要性,但是还要等待很长时间,此处可以吃个饭。
如果出错,重新运行create-dev-env.sh,已安装的文件不会再安装。
./scripts/create-dev-env.sh
15. 运气好的话可以看到Success, 接着可以编译lms 每个命令都下载一堆升级包,编译一大坨文件,此处可以喝杯咖啡。
如果出错,重新运行命令,已安装的文件不会再安装。
#注意:必须用sudo,否则会有权限错误,用cms的课程,必须用cms.dev编译
sudo rake lms[cms.dev,0.0.0.0:8000]
16. 继续编译 cms,接着等,此处可以上个洗手间或再来一杯咖啡,或同时来。
#使用dev环境
sudo rake cms[dev,0.0.0.0:9000]
17. 创建管理员账号
rake django-admin["createsuperuser"]
按照提示创建管理员账号
18. 最终可以访问服务了,可以自己注册账号,但是账号都没有激活而且也不会发激活邮件,要用管理员在后台去激活。
如果vagrant端口映射正确, localhost也可以访问
建议用Chrome, Firefox, IE10以上版本浏览器访问, IE7/8/9不兼容
19. 后台管理网址,用第18步创建的管理员账号登录,随便玩吧~
四. 其他:
1. 如果要把VirtualBox虚拟机制作vagrant 包,可以用如下命令
vagrant package --output ubuntu_32.box --base vagrant-precise32
2. Windows 操作系统的文件夹中打开命令行:
Shift + 鼠标右键点击,在此处打开命令窗口。
五. 参考文档:
补充:
如果要安装Comment_Services, 必须要安装 Ruby 1.9.3, 详细安装请参考
- 基于VirtualBox虚拟机安装Ubuntu教程
基于VirtualBox虚拟机安装Ubuntu图文教程 一. 下载安装VirtualBox 官网下载VirtualBox,目前版本:VirtualBox 6.0.4 for Windows hosts ...
- windows系统中ubuntu虚拟机安装及web项目到服务上(一)
一:ununtu虚拟机安装 安装vm, 桥接,换国内源,安装ssh 服务 装jdk,装tomcat,装mysql, 部署,完成 主要用到的软件工具 Xmanager Enterprise 4,VMwa ...
- Ubuntu 虚拟机安装几点细节整理
虚拟机或者Wubi安装其实都挺简单的,这里还是再次总结下,给遇到麻烦的同学一点参考. 虚拟机安装 虚拟机直接通过新建-标准-选择镜像,Vmware能够自动识别镜像并进行Easy Install安装,E ...
- ubuntu虚拟机安装简单pxe服务器
安装环境: vmware2台虚拟机,一台用来做pxe服务器(安装tftp.dhcp.apache2等服务),另一台用来做安装测试. 虚拟机的网络配置:dhcp的虚拟网络为192.168.10.100/ ...
- Ubuntu虚拟机安装VMware Tools
前言 在用VMware安装好Linux虚拟机后,发现在虚拟机下安装的Ubuntu16.04 64位无法进入全屏模式,同时存在物理机和虚拟机之间无法实现文件传输的问题,通过安装VMware Tools得 ...
- ubuntu 虚拟机安装vmware tools
1.打开ubuntu虚拟机,点击“虚拟机”---> "安装 vmware tools" 2.进入vmware tools光盘,将VMwaretools压缩包复制粘贴到桌面 ...
- ubuntu虚拟机安装ssh教程
大家好,这期给大家带来一期Ubuntu虚拟机中ssh的安装教程,话不多说,开整 第一步:输入su后输入密码进入root权限 第二步:在管理员模式下运行apt-get install openssh-s ...
- windows系统中ubuntu虚拟机安装及web项目到服务上(三)
项目在ubuntu虚拟机下的部署 一:将war从本地通过Xftp 4 传到虚拟机tomcat目录下的webapps目录下 2:修改tomcat下的server.xml <Host name=& ...
- VMware Ubuntu 虚拟机安装 VMwareTools (VMware虚拟机如何与主机互相复制文件)
1.关闭虚拟机 2.CD-ROM开机连接取消对号 3.开启虚拟机 4.此时可能提示安装,点击即可 或者在VMware上方选择 :虚拟机 → 安装VMware Tools 5.虚拟机桌面会弹出相应安装包 ...
随机推荐
- HTTP状态码大全(转自wiki)
1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试 ...
- Android下拉刷新底部操作栏的隐藏问题
最近自己编写下拉刷新的时候,发现了一个问题,就是有一个需求是这样的:要求页面中是一个Tab切换界面,一个界面有底部操作栏,不可下拉刷新,另一个界面没有底部操作栏,但可以下拉刷新. 按照平常的做法,我在 ...
- ASP.NET MVC权限验证 封装类
写该权限类主要目地 为了让权限配置更加的灵活,可以根据SQL.json.或者XML的方式来动态进行页面的访问控制,以及没有权限的相关跳转. 使用步骤 1.要建一个全局过滤器 //受权过滤器 publi ...
- C#设计模式——观察者模式(Observer Pattern)
一.概述在软件设计工作中会存在对象之间的依赖关系,当某一对象发生变化时,所有依赖它的对象都需要得到通知.如果设计的不好,很容易造成对象之间的耦合度太高,难以应对变化.使用观察者模式可以降低对象之间的依 ...
- WCF 4.0 使用说明
WCF 4.0开发说明,工具VS2013 ,IIS,使用http协议 打开VS2013,新建项目Visual C#>Web>Asp.NET Web应用程序,添加相关引用: System.S ...
- sqlsever备份,还原和导入导出方法
一:sqlsever数据库的几种备份和还原方法: 第一种:备份还原方法 1.选择要备份的数据库-任务-备份- 打开之后会看到里面有: 常规:在常规页面中我们可以看到:右下角位置有一个可以更改存储(备份 ...
- html+css—two
1.滚动字幕(不常用) 默认状态:<marquee>向左移动</marquee> //-- hspasc滚动区域height滚动字幕高度 <marquee height= ...
- 【C#进阶系列】08 方法
实例构造与引用类型 之前的章节其实已经写过了引用类型的构造过程: 首先当然是,在堆中,为引用类型的实例对象分配内存,然后初始化对象的附加字段(即类型对象指针和同步块索引). 这个时候为对象分配的内存都 ...
- WinFrom子窗体向父窗体传值
父窗框mainForm;子窗体childForm,利用事件进行传值 在子窗体中的操作: public event EventHandler accept;public string value; pr ...
- linux下mysql忘记root密码解决方法
如果使用 MySQL 数据库忘记了root账号密码,可以通过调节配置文件,跳过密码的方式登数据库, 在数据库里面修改账号密码,一般默认的账号是 root 1.编辑 MySQL 配置文件 my.cnf ...