How to set up SpearmintServer on AWS Amazon Linux EC2 instance - acil-bwh/SpearmintServer GitHub Wiki
Amazon Linux Spearmint Server Setup Instruction:
-
Launch a new EC2 instance with minimum “small” class
-
Login to the new instance using ssh
-
sudo yum update
-
sudo yum -y groupinstall 'Development Tools'
-
sudo yum -y install atlas atlas-devel blas lapack
-
sudo yum -y install httpd httpd-devel mod_wsgi python-pip python-devel mysql-devel mysql-server
-
Launch mysql server and create the user and database
7.1 Database setup
- sudo service mysqld start
- sudo mysql -u root -p -e "CREATE DATABASE spearmintdb;"
- sudo mysql -u root -p -e "CREATE USER 'acil-user' IDENTIFIED BY 'acil-pwd'
- sudo mysql -u root -p -e "GRANT ALL PRIVILEGES ON spearmintdb.* TO 'acil-user'@localhost IDENTIFIED BY 'acil-pwd';FLUSH PRIVILEGES"
7.2 Django Database migration
- git clone https://github.com/acil-bwh/SpearmintServer.git
- cd SpearmintServer/
- sudo python manage.py migrate
NOTE: Make sure that secret.json with the DB password is copied under SpearmintServer/SpearmintServer/
-
sudo pip install numpy scipy pymongo
-
install and run mongodb (http://docs.mongodb.org/manual/administration/install-on-linux):
- Create a /etc/yum.repos.d/mongodb-org-3.0.repo file with content:
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
- sudo yum install -y mongodb-org
- sudo mkdir /data && sudo mkdir /data/db
- sudo mongod --fork --dbpath /data/db --logpath /var/log/mongod --bind_ip 0.0.0.0 Note: --bind_ip 0.0.0.0 allows connections from any IP to the mongodb
-
install Apache mod_wsgi for Python 2.7 in Amazon Linux:
wget https://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz && tar xvzf mod_wsgi-3.4.tar.gz && cd mod_wsgi-3.4 && ./configure --with-python=/usr/bin/python && sudo make install git clone https://github.com/grisha/mod_python.git && cd mod_python && ./configure --with-python=/usr/bin/python && make && sudo make install
-
sudo pip install git+http://github.com/acil-bwh/Spearmint.git@develop
-
sudo pip install git+http://github.com/acil-bwh/SpearmintServer.git
-
create secrets.json in SpearmintServer installation directory (/usr/local/lib/python2.7/site-packages/SpearmintServer)
-
modify /etc/httpd/conf/httpd.conf to add WSGI section
WSGIPassAuthorization On WSGIApplicationGroup %{GLOBAL} WSGIScriptAlias / /usr/local/lib/python2.7/site-packages/SpearmintServer/wsgi.py WSGIPythonPath /usr/local/lib/python2.7/site-packages Alias /static/admin/ /usr/local/lib/python2.7/site-packages/django/contrib/admin/static/admin/ Alias /media/admin/ /usr/local/lib/python2.7/site-packages/django/contrib/admin/static/admin/ Alias /static/ /usr/local/lib/python2.7/site-packages/SpearmintServer/app/static/ <Directory /usr/local/lib/python2.7/site-packages/SpearmintServer> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory>
-
sudo service httpd start
-
Configure services to start by default
- sudo chkconfig httpd on
- sudo chkconfig mysqld on