edX Managing the Production Stack
NOTE: This is only for the production stack configuration, not for devstack.
Managing the server
manage.py commands
login to the server and change to the /edx/app/edxapp/edx-platform directory to use manage.py
- list all manage.py commands -
sudo -u www-data /edx/app/edxapp/venvs/edxapp/bin/python ./manage.py lms --settings aws help - create a new user -
sudo -u www-data /edx/app/edxapp/venvs/edxapp/bin/python ./manage.py lms --settings aws create_user -e user@example.com - launch the django shell -
sudo -u www-data /edx/app/edxapp/venvs/edxapp/bin/python ./manage.py lms --settings aws shell -e user@example.com - run migrations -
sudo -u www-data /edx/app/edxapp/venvs/edxapp/bin/python ./manage.py lms syncdb --migrate --settings aws
See help and help <cmd> for more information!
See what services are running
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf status
you should see something like the following:
certs RUNNING pid 19862, uptime 0:00:04
discern RUNNING pid 19926, uptime 0:00:02
discern_celery RUNNING pid 19857, uptime 0:00:04
edxapp:cms RUNNING pid 19884, uptime 0:00:03
edxapp:lms RUNNING pid 19879, uptime 0:00:03
edxapp_worker:cms_default_4 RUNNING pid 19915, uptime 0:00:03
edxapp_worker:cms_high_1 RUNNING pid 19901, uptime 0:00:03
edxapp_worker:cms_low_3 RUNNING pid 19890, uptime 0:00:03
edxapp_worker:lms_default_3 RUNNING pid 19897, uptime 0:00:03
edxapp_worker:lms_high_4 RUNNING pid 19922, uptime 0:00:03
edxapp_worker:lms_high_mem_2 RUNNING pid 19894, uptime 0:00:03
edxapp_worker:lms_low_1 RUNNING pid 19908, uptime 0:00:03
forum RUNNING pid 19855, uptime 0:00:04
ora RUNNING pid 19875, uptime 0:00:04
ora_celery RUNNING pid 19866, uptime 0:00:04
xqueue RUNNING pid 19853, uptime 0:00:04
xqueue_consumer RUNNING pid 19860, uptime 0:00:04
xserver RUNNING pid 19854, uptime 0:00:04
Restarting Services
- LMS/CMS -
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf restart edxapp: - Workers -
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf restart edxapp_worker:
(Note: the colon character : at the end of the line is mandatory!)
Updating Versions using edX repos
Use the /edx/bin/update to update repo versions on the server.
Allowed repo names [cs_comments_service,ease,discern,xqueue,xserver,edx-platform,configuration,edx-ora]
Examples:
sudo /edx/bin/update edx-platform master- change edx-platform to use the latest on the master branchsudo /edx/bin/update cs_comments_service master- change the forums service to use the latest on the master branch
Using an edx-platform fork
sudo rm -rf /edx/app/edxapp/edx-platform- change the remote you need to remove the existing edx-platform checkout- Add the following line to
/edx/etc/server-vars.yml-edx_platform_repo: "https://github.com/<user>/edx-platform.git" sudo /edx/bin/update edx-platform master- update edx-platform using the forked repo
Compile assets manually
To compile javascript and css outside of the update script run the following commands:
sudo -u edxapp bashsource /edx/app/edxapp/edxapp_envcd /edx/app/edxapp/edx-platformrake lms:gather_assets:awsrake cms:gather_assets:aws
Troubleshooting
Unable to connect to the LMS
Check to see if nginx is running:
sudo service nginx statussudo service nginx start
NGINX logs are located in /edx/var/log/nginx NGINX configurations are located in /edx/app/nginx/sites-enabled
Check to see if the lms/cms is running
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf status edxapp:
If you are still unable to connect to the LMS run the following commands:
sudo service nginx stopsudo service supervisor stopsudo service supervisor.devpi stopsudo pkill -u www-datasudo service nginx startsudo service supervisor startsudo service supervisor.devpi start- stop everything except the LMS and CMS
sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf stop discern discern_celery \
forum ora ora_celery xqueue xqueue_consumer xserver edxapp_worker:
sudo tail -f /edx/var/log/{lms,cms,nginx}/*log
While tailing the log files try to connect your browser to the LMS or Studio
Log files
- The production stack sends all application logs to rsyslog which writes config files to the
/edx/var/logdirectory. - Supervisor logs stderr and stdout, its logs are located in
/edx/var/log/supervisor
本文档详细介绍了edX平台在生产环境下的配置及管理流程,包括使用manage.py进行服务器管理的各项命令、查看运行服务状态的方法、重启服务的操作指南、版本更新步骤以及手动编译资产的过程。
1477

被折叠的 条评论
为什么被折叠?



