sudo apt-get update -y
sudo apt-get upgrade -y
reboot
-
Dependencias para desenvolvimento
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 gettext -
Dependencias gerais
sudo apt-get install zlib1g bzip2 openssl ncurses-base sqlite readline-common tk libcgraph6 libgraphviz-dev libatlas-dev libblas-dev libblas3gf liblapack3gf liblapack-dev gfortran libmysqlclient-dev libpq-dev -
SciPy
sudo apt-get install python-scipy -
LXML
sudo apt-get install python-lxml -
Dependencias do GeoDjango
sudo apt-get install libgeos-3.4.2 libgeos-dev
-
Mysql
senha do root do mysql: usar a mesma do sistema
sudo apt-get install mysql-server -
Mongodb
-
Adicionar repositorio e instalar pacotes
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list sudo apt-get update sudo apt-get install mongodb-10gen -
Iniciando mongodb
sudo start mongodb
-
-
nginx
sudo apt-get install nginx-
Iniciar nginx
sudo /etc/init.d/nginx start
-
-
Supervisor
sudo apt-get install supervisor -
RVM
curl -L get.rvm.io | bash -s stable source .rvm/scripts/rvm -
Ruby
- versão utilizada pelo EDX:
rvm install ruby-1.9.3-p374 - versão utilizada pelo cs_comments_service (fórum):
rvm install ruby-1.9.3-p545
- versão utilizada pelo EDX:
-
Node.js
sudo apt-get install nodejs npm sudo ln -s /usr/bin/nodejs /usr/bin/node -
Python pip e virtualenv
sudo apt-get install python-pip python-virtualenv -
Virtualenvwrapper
sudo /usr/bin/pip install virtualenvwrapper source /usr/local/bin/virtualenvwrapper.sh nano .bash_profile-
Deve-se acrescentar as linhas abaixo ao final do arquivo:
export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/.virtualenvs_projects export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 source /usr/local/bin/virtualenvwrapper.sh
-
-
Postgresql
sudo apt-get install postgresql-
Alterar senha do usuário postgres
sudo -u postgres psql ALTER USER postgres WITH PASSWORD 'senha'; \q -
Modificar arquivo de pg_hba.conf, procurar campos peer e substituir por md5
sudo nano /etc/postgresql/9.3/main/pg_hba.conf sudo service postgresql restart
-
-
Criar diretório para aplicações e arquivos estáticos
mkdir -p apps/edx data -
Criar resto da estrutura de diretórios
cd apps/edx mkdir bin data db log uploads staticfiles -
Clonando projeto e mudando para versão específica que utilizamos
cd $HOME/apps/edx git clone -b solaredx https://github.com/ufcvirtual/edx-platform.git -
Criando ambiente virtual Python2.7 com o Virtualenvwrapper
cd $HOME/apps/edx mkvirtualenv edx workon edx -
A seguinte hierarquia deve existir
* apps \ * bin * data * db * edx-platform * log * staticfiles * uploads -
Configurando permissões pro nginx
Não esquecer de alterar o nome do usuário no path
# Configuração de permissões para o nginx sudo chmod o+x /home sudo chmod o+x /home/azureuser sudo chmod o+x /home/azureuser/apps sudo chmod o+x /home/azureuser/apps/edx/ sudo chmod o+x /home/azureuser/apps/edx/staticfiles -
Acessar diretorio do projeto
cd edx-platform -
Instalar dependências do projeto
pip install -r requirements/edx/pre.txt pip install -r requirements/edx/base.txt pip install -r requirements/edx/post.txt bundle install npm install rake install_prereqs -
Criar banco de dados e migrações
./manage.py lms syncdb --migrate ./manage.py cms syncdb --migrate
-
Preparando servidor (ubuntu) para o Elasticsearch
sudo apt-get update sudo apt-get install openjdk-7-jre-headless -y -
Instalando o Elasticsearch
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.deb sudo dpkg -i elasticsearch-1.1.1.deb -
Rodando o Elasticsearch
sudo /etc/init.d/elasticsearch start -
Clonando projeto
cd $HOME/apps git clone https://github.com/edx/cs_comments_service.git cd cs_comments_service git checkout 693cb4a69fac7f6c808efdf8d8027e778e37737a bundle -
Rodando serviço de comentários (manualmente)
unicorn -
Preparando bundle para iniciar o serviço pelo supervisor
rvm wrapper 1.9.3-p545@cs_comments_service app bundle- Para obter o local do app bundle:
which app_bundle
- Para obter o local do app bundle:
-
Criando os scripts de inicialização do LMS e do CMS utilizando o conteúdo dos gist
- Fonte dos arquivos (não esquecer de verificar os paths e nome do usuário e grupos):
cd ~/apps/edx/bin curl https://gist.githubusercontent.com/andreibosco/11376968/raw/bc1c1232c5a40b234c4de27f8168c1163952ef38/gunicorn_lms.sh > gunicorn_lms.sh curl https://gist.githubusercontent.com/andreibosco/11376936/raw/d2cbe5a24e7ed4bbd02eb7bfe30f370185a0574f/gunicorn_cms.sh > gunicorn_cms.sh chmod u+x gunicorn* -
Configurando LMS e CMS no nginx
Não esquecer de verificar as variáveis e paths do arquivo
curl https://gist.githubusercontent.com/andreibosco/11377142/raw/b39a8b8b05352b35d6b12af8a51c5224b3e8ec82/edx.conf > edx.conf sudo mv edx.conf /etc/nginx/sites-available/edx.conf sudo ln -s /etc/nginx/sites-available/edx.conf /etc/nginx/sites-enabled/ -
Compilar assets
cd $HOME/apps/edx/edx-platform workon edx rake cms:gather_assets:dev --trace rake lms:gather_assets:dev --trace -
Gerando arquivos estáticos
cd $HOME/apps/edx/edx-platform workon edx python manage.py lms collectstatic python manage.py cms collectstatic -
Editando arquivos de tradução
-
Local dos arquivos:
$HOME/apps/edx/edx-platform/conf/locale/pt_BR -
Compilar tradução:
cd $HOME/apps/edx/edx-platform workon edx rake i18n:generate --trace
-
-
Baixando arquivos de tradução (apenas se necessário)
Editar o arquivo
$HOME/apps/edx/edx-platform/conf/locale/confige definir a seguinte linha:"locales" : ["pt_BR"],. Em seguida, criar o arquivo$HOME/.transifexrccom os seguintes dados (é necessário ter uma conta no transifex):[https://www.transifex.com] hostname = https://www.transifex.com password = sua_senha token = username = seu_usuarioEm seguir executar os seguintes comandos:
cd $HOME/apps/edx/edx-platform workon edx tx pull --all rake i18n:generate --trace -
Configurando supervisor
O Supervisor é o gerenciador de processos utilizados para gerenciar a execução do LMS e do CMS (não esquecer de verificar os paths e nome do usuário e grupos):
curl https://gist.githubusercontent.com/andreibosco/11376813/raw/14e80fa642af213556bd088c76ac58bfdcca9560/supervisor.conf > edx.conf sudo mv edx.conf /etc/supervisor/conf.d/edx.conf sudo /etc/init.d/supervisor start -
Iniciando serviços
- Status:
sudo supervisorctl status - Iniciar todos os serviços:
sudo supervisorctl start all - Iniciar serviço específico:
sudo supervisorctl start cms - Parar todos os serviços:
sudo supervisorctl stop all
- Status:
Fonte: https://github.com/edx/edx-platform/wiki/Shell-commands
- Sintaxe:
./manage.py [lms|cms] --service-variant lms <cmd> - Ver a lista completa de comandos disponíveis:
./manage.py [lms|cms] help - Criar um novo superuser:
./manage.py lms createsuperuser --username <user> - Criar um novo usuário:
./manage.py lms create_user user@example.com - Definir ou alterar senha:
./manage.py lms changepassword user - Definir usuário como staff:
./manage.py lms set_staff user@example.com - Sincronizar dados de usuários do cms/lms com o serviço de fórum/discussion:
rake django-admin[sync_user_info,lms,dev] - Apagar curso:
./manage.py cms delete_course Organização/CódigoCurso/Periodo commit - Django shell:
./manage.py lms shell
- Listar todos os cursos:
db.modulestore.find( { "_id.category" : "course" }, {'name':'1'} ) - Achar todos os updates para curso de id 999:
db.modulestore.find({'_id.course': '999','_id.name':'updates'}) - Remover cursos de id 999 de todas as organizações (isso não irá remover dados do django, como os grupos do curso):
db.modulestore.remove({'_id.course': '999'})
- Rodar testes:
rspec spec - Apagar o banco de dados:
mongo cs_comments_service_development --eval "db.dropDatabase()" - Reinicializar o banco do serviço:
bundle exec rake db:init - Re-indexar o db:
bundle exec rake db:reindex_search
- Iniciando servidores manualmente para debug
- LMS:
rake lms[cms.dev,0.0.0.0:8000] - CMS:
rake cms[dev,0.0.0.0:8001] - Comando alternativo:
python manage.py lms runserver
- LMS:
-
Arquivos de configuração
Os arquivos de configuração ficam dentro de
cms/envs/private.pyelms/envs/private.py