Created
November 22, 2015 02:10
-
-
Save raphaelchaib/8a42166b68fd1e845ad4 to your computer and use it in GitHub Desktop.
Setup OpenScholar on EC2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| #Ravi Menon | |
| #20/Aug/2014 | |
| MYSQL_ROOT_PASSWD=~/.mysql_root | |
| install_dependencies() { | |
| #Refresh Ubuntu package list | |
| sudo apt-get update | |
| #Generate strong MySQL root password | |
| if [ ! -f $MYSQL_ROOT_PASSWD ]; then | |
| echo $(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;) > $MYSQL_ROOT_PASSWD | |
| sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $(< $MYSQL_ROOT_PASSWD)" | |
| sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $(< $MYSQL_ROOT_PASSWD)" | |
| fi | |
| #Install the LAMP stack | |
| sudo apt-get install apache2 -y | |
| sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql -y | |
| sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-gd php5-curl -y | |
| #Install git | |
| sudo apt-get build-dep git-core -y | |
| sudo apt-get install git-core -y | |
| #Install drupal | |
| sudo apt-get install drush -y | |
| #Install miscellaneous packages | |
| sudo apt-get install expect | |
| return | |
| } | |
| install_openscholar() { | |
| OPENSCHOLAR_DIR=/tmp/openscholar | |
| sudo rm -rf $OPENSCHOLAR_DIR | |
| git clone https://github.com/openscholar/openscholar.git $OPENSCHOLAR_DIR | |
| cd $OPENSCHOLAR_DIR | |
| #Latest version as on 23 Aug, 2014 | |
| git checkout tags/SCHOLAR-3.15.1 | |
| sudo ./scripts/build | |
| #Fix symlinks and create missing directories | |
| sudo rm ./www/profiles/openscholar && sudo mv ./openscholar ./www/profiles/ | |
| sudo mkdir ./www/sites/default/files && sudo chmod a+w $_ | |
| sudo cp ./www/sites/default/default.settings.php ./www/sites/default/settings.php && sudo chmod a+w $_ | |
| #REMEMBER TO REMOVE WORLD WRITE PERMISSIONS AFTER INSTALLATION | |
| sudo mv $OPENSCHOLAR_DIR/www /var/www/openscholar | |
| return | |
| } | |
| configure_apache() { | |
| #Add settings and enable site | |
| sudo echo -e \ | |
| "<VirtualHost *:80> | |
| #ServerName www.example.com | |
| ServerAdmin webmaster@localhost | |
| DocumentRoot /var/www/openscholar/ | |
| ErrorLog ${APACHE_LOG_DIR}/openscholar_error.log | |
| CustomLog ${APACHE_LOG_DIR}/openscholar_access.log combined | |
| </VirtualHost>" | sudo dd of=/etc/apache2/sites-available/openscholar.conf | |
| sudo a2dissite 000-default && sudo a2ensite openscholar | |
| #Enable rewrite module and allow .htaccess override | |
| sudo a2enmod rewrite | |
| sudo bash -c "echo -e \"<Directory /var/www/openscholar/>\nAllowOverride All\n</Directory>\" >> /etc/apache2/apache2.conf" | |
| sudo service apache2 reload | |
| return | |
| } | |
| configure_mysql() { | |
| #Create website database | |
| mysql -u root -p$(< $MYSQL_ROOT_PASSWD) -e \ | |
| "DROP DATABASE IF EXISTS noiselab; | |
| CREATE DATABASE noiselab;" | |
| #Website user | |
| MYSQL_OPENSCHOLAR_PASSWD=~/.mysql_openscholar | |
| if [ ! -f $MYSQL_ROOT_PASSWD ]; then | |
| echo $(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;) > $MYSQL_OPENSCHOLAR_PASSWD | |
| mysql -u root -p$(< $MYSQL_ROOT_PASSWD) -e \ | |
| "CREATE USER 'openscholar'@'localhost' IDENTIFIED BY '$(< $MYSQL_OPENSCHOLAR_PASSWD)'; | |
| GRANT ALL PRIVILEGES ON noiselab.* TO 'openscholar'@'localhost'; | |
| FLUSH PRIVILEGES;" | |
| fi | |
| return | |
| } | |
| main () { | |
| install_dependencies | |
| install_openscholar | |
| configure_apache | |
| configure_mysql | |
| return | |
| } | |
| main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment