BitNami Moodle

    Moodle is a Course Management System that is designed using sound pedagogical principles to help educators create effective online learning communities. It can scale from one computer to a 50,000-student university and is used in 175 countries around the world.

    Please, take a look to the Quick Start Guide to know the basic use of this Stack.

    How to start/stop the servers?

    Graphical tool

    The Stacks include a graphical tool to manage the servers easily. You can find the "manager-windows.exe", "manager-osx" or "manager-linux" tool in your installation directory. Using this tool, you can Start, Stop or Restart the servers and check the log files. You can click on the icon to start it.

    manager-servers.png

     

    manager-osx.png

     

     

     

     

     

     

     

     

     


    win_platform.png

    On Windows: You can also start the Manager tool from shortcuts: Start -> Program Files -> BitNami Stack -> Manager tool

    Command line tool

    If you prefer, you can use the "ctlscript.sh" utility from the command line. This script is in the installation directory.

    linux_platform.png

    On Virtual Machines and Cloud images:

    $ sudo /opt/bitnami/ctlscript.sh start

    A native installer on Linux:

    $ cd ~/application-version
    $ ./ctlscript.sh start
    

    mac_platform.png

     

    On OS X: You can start the Manager tool from the installation directory or you can use the "ctlscript.sh" utility from a Terminal.

    host:~ user$ cd /Applications/application-version
    host:~ user$ ./ctlscript.sh start

    How to change the default URL?

    Automatic approach

    The  Virtual Appliances, BitNami Cloud Hosting and AMI images ship a tool called "updateip". Using this tool you be able to configure the URL automatically. It includes a new option to remove the "/moodle" prefix from the URL. If you want to modify that you can run the following command:

    $ sudo /opt/bitnami/apps/moodle/updateip --appurl /
    

    Now you will be able to access to the Moodle application at http://YOUR_DOMAIN instead of http://YOUR_DOMAIN/moodle.

    Manual approach

    This approach describes how to configure your application to run in the root URL directly. The details are described below.

    Native Installer

    If you want to change the default URL from http://your_domain/moodle to http://your_domain, you should add a "DocumentRoot" entry in your application conf file. Edit the /installdir/apps/moodle/conf/httpd-prefix.conf file to add this line and commenting the "Alias" entries. Modify the

    httpd_prefix.conf file content:

    DocumentRoot "/installdir/apps/moodle/htdocs"
    # Alias /moodle/ "/installdir/apps/moodle/htdocs/"
    # Alias /moodle "/installdir/apps/moodle/htdocs"
    
    (...)
    

    Some applications also require changes in their configuration files or in the database.

    Virtual Machine

    If you want to change the default URL from http://your_domain/moodle to http://your_domain, you should add a "DocumentRoot" entry in your application conf file. Edit the /opt/bitnami/apps/moodle/conf/httpd-prefix.conf file (moodle.conf in previous versions) to add this line and commenting the "Alias" entries. You can use the "nano" editor:

    $ sudo nano /opt/bitnami/apps/moodle/conf/httpd-prefix.conf
    

    httpd-prefix.conf file content:

    DocumentRoot "/opt/bitnami/apps/moodle/htdocs"
    # Alias /moodle/ "/opt/bitnami/apps/moodle/htdocs/"
    # Alias /moodle "/opt/bitnami/apps/moodle/htdocs"
    
    (...)
    

    Some applications also require changes in their configuration files or in the database.

    Cloud Image/BitNami Hosting

    If you want to change the default URL from http://your_domain/moodle to http://your_domain, you should add a "DocumentRoot" entry in your application conf file. Edit the /opt/bitnami/apps/moodle/conf/httpd-prefix.conf file (moodle.conf in previous versions) to add this line and commenting the "Alias" entries. You can use the "nano" command line editor or you can also edit this file from your favorite FTP program.

    $ sudo nano /opt/bitnami/apps/moodle/conf/httpd-prefix.conf
    

    httpd-prefix.conf file content:

    DocumentRoot "/opt/bitnami/apps/moodle/htdocs"
    # Alias /moodle/ "/opt/bitnami/apps/moodle/htdocs/"
    # Alias /moodle "/opt/bitnami/apps/moodle/htdocs"
    
    (...)
    

    Some applications also require changes in their configuration files or in the database.

    Tabs end

     

    In the Moodle case, it is also necessary to specify the new URL in the /installdir/apps/moodle/htdocs/config.php file:

    $CFG->wwwroot   = 'http://NEW_DOMAIN';
    

    The Virtual Appliances, BitNami Cloud Hosting and AMI images ship a tool called "updateip" which updates the IP automatically during the boot. You can also configure the Moodle application using this tool. Note that this tool changes the URL to http://NEW_DOMAIN/moodle. If you have your application in the root URL you should change the config.php file manually.

    $ /opt/bitnami/updateip --machine_hostname NEW_DOMAIN
    

    If you have configured Moodle to use an static domain name or IP, you should remove or rename the "/opt/bitnami/apps/moodle/updateip" in recent versions (or /opt/bitnami/updateip in previous versions).

    How to create a full backup of Moodle?

    Because BitNami stacks are self-contained, the simplest option for performing your backups is to copy or compress the BitNami Stack installation directory. To do so in a safe manner, you will need to stop all servers, so this method may not be appropriate if you have people accessing the application continously.

    linux_platform.pngOn Virtual Machines and Cloud Images:

    sudo /opt/bitnami/ctlscript.sh stop

    mac_platform.png

    On OS X:

    $ cd installdir
    $ ./ctlscript.sh stop
    $ cp -r installdir application-backup
    

    Or you can create a tarball:

    $ tar -czvf application-backup.tar.gz installdir
    

    Or a zip file:

    $ zip -r application-backup.zip installdir/*

    To restore this backup you only need to uncompress the backup in the same location. It is important to use the same path that was used when the stack was originally installed.

    For example if you have a backup in a Red Hat machine, you can copy it to an Ubuntu Linux machine (a different distro!) in the same location. Then start the servers and that’s all.

    On Virtual Machines and Cloud Images:

    $ sudo /opt/bitnami/ctlscript.sh start

    On OS X:

    $ cd installdir
    $ ./ctlscript.sh start
    

    You just need to be carefull to keep the same permissions for the files and folders. If you installed as root make sure that in the new machine you copy the files also as root. And this case, if you are also moving MySQL or PostgreSQL, you will need to create those users in the new machine (if they don't exist yet).

    win_platform.png On Windows you should follow the same process. Stop the servers using the shortcuts and copy the whole installation directory. To restore the system, copy the directory to a different Windows machine in the same location and follow these steps from a command prompt:

    $ cd installdir
    $ serviceinstall.bat INSTALL
    

    You can access your BitNami Application at the usual URL.

    If you want to create only a database backup, check the following link for MySQL /Components/MySQL#How_to_create_a_database_backup or for PostgreSQL /Components/PostgreSQL#How_to_create_a_database_backup.3f

    How to upgrade Moodle?

    It is strongly recommended that you create a backup before starting the update process. If you have important data, it is advisable that you create and try to restore a backup to ensure that everything works properly.

    There are two different ways to upgrade your application.

    1. If you want to upgrade the application and all Moodle Stack components PHP, MySQL, Apache… You can follow the steps described at How to migrate the Moodle Stack?
    2. In case you only want to upgrade the application code without modifying any other Stack components,  you should follow the guide which is in the application page itself.

    For upgrading the Moodle application you can follow this quick guide. Before upgrading your current installation it is important to create a backup of the server. This guide shows how to upgrade Moodle in a Bitnami cloud server

    - Move your current Moodle files:

    $ sudo mv /opt/bitnami/apps/moodle/htdocs /opt/bitnami/apps/moodle/htdocs.backup
    

    - Download the new Moodle version. In this case we use the link to the latest 2.6.1 version.

    $ wget http://download.moodle.org/download.php/direct/stable26/moodle-latest-26.tgz

    - Create a new folder and uncompress the files:

    $ sudo mkdir /opt/bitnami/apps/moodle/htdocs
    $ sudo tar -xzvf moodle-latest-26.tgz -C /opt/bitnami/apps/moodle/htdocs --strip 1

    - Copy your previous configuration file and your modules or themes:

    $ sudo cp /opt/bitnami/apps/moodle/htdocs.backup/config.php /opt/bitnami/apps/moodle/htdocs
    $ sudo cp -rp /opt/bitnami/apps/moodle/htdocs.backup/theme/mytheme /opt/bitnami/apps/moodle/htdocs/theme/
    $ sudo cp -rp /opt/bitnami/apps/moodle/htdocs.backup/mod/mymod /opt/bitnami/apps/moodle/htdocs/mod/

    - Then go to your application from a browser and follow the steps to upgrade the database to the latest version.

    Note: If you want to install modules or plugins from the Moodle administration panel, check the section below.

    How to migrate your Moodle installation?

    There are two importants steps when migrating a Moodle Stack: migrate the database and migrate the Moodledata folder (you may want to migrate the Themes and Modules folders if you have them installed and you want to keep them). To make the process easier, we are going to divide them in four substeps.

    1. Export the database

    You can do it manually or using phpMyAdmin. If you use the phpMyAdmin option, export it as .sql file.

    2. Copy the moodledata folder

    In this step, you just need to copy the moodledata folder, located in YOUR_INSTALLATION_DIRECTORY/apps/moodle/moodledata, to the machine where you have installed the new Moodle. When doing this step, copy the exported database file too. If you have themes or modules installed and you want to keep them, you also have to copy them.

    3. Import the database

    First of all, you have to delete the tables in the bitnami_moodle database. To do so, the easiest way could be accessing phpMyAdmin, choosing the bitnami_moodle database, selecting all the tables and dropping them.

    Other option could be to do it manually. When we use BITNAMI_USER_PASSWORD here, you have to substitute it for the password that is in the config.php file (YOUR_INSTALLATION_DIRECTORY/apps/moodle/htdocs/config.php), $CFG->dbpass    = 'BITNAMI_USER_PASSWORD';

    mysql -u root -p
    mysql> drop database bitnami_moodle;
    mysql> create database bitnami_moodle;
    mysql> grant all privileges on bitnami_moodle.* to 'bitnami'@'localhost'
    identified by 'BITNAMI_USER_PASSWORD';
    mysql> flush privileges;
    mysql> exit;
    

    After that, import the database. You can do it manually or using phpMyAdmin.

    4. Substitute moodledata (and others) folder

    Finally, you just need to substitute the moodledata folder, as well as the Themes and Modules folders if you want.

    Once this steps are done, restart the Apache server and access Moodle through the browser. If you login as administrator, you will be asked to update your database. Click to do it and the migration of your Moodle stack will be completed.

    Thanks to @aguayomanel and @pivot_1990_69 for their guides.

    How to configure the email settings for Moodle?

    This is required so your application can send notifications via email. If you are using the Native installers, you can configure it during the installation. If you are using the Virtual Machines or AMI's you can configure the email settings manually. You can find below an example of configuring the email using a GMail account.


    Open a BitNami console and run the following command:

    $ mysql -u root -p -D "bitnami_moodle" -e "INSERT INTO mdl_config VALUES (NULL,'smtphosts','smtp.gmail.com:465'), (NULL,'smtpuser','my_account@gmail.com'), (NULL,'smtppass','my_password'), (NULL,'noreplyaddress','my_account@gmail.com')"

    The password is the same that you set during the installation or "bitnamI" if you are using the virtual appliance or AMI.

    Then it is necessary to modify the following file: your_installdir/apps/moodle/lib/phpmailer/class.smtp.php. Search this code block:

    // connect to the smtp server
        $this->smtp_conn = @fsockopen($host,    // the host of the server
                                     $port,    // the port to use
                                     $errno,   // error number if any
                                     $errstr,  // error message if any
                                     $tval);   // give up after ? secs
    

    and add the following line:

    // connect to the smtp server
        $host = 'ssl://' . $host;
        $this->smtp_conn = @fsockopen($host,    // the host of the server
                                     $port,    // the port to use
                                     $errno,   // error number if any
                                     $errstr,  // error message if any
                                     $tval);   // give up after ? secs
    

    How to secure your installation?

    One of our main goals is to configure BitNami applications in the most secure way. However sometimes we need to find a compromise between security and easy to use.

    This is the case with Moodle since its version 2.5. In Moodle 2.5 a new feature for installing add-ons from the admin web interface has been implemented. However to allow this feature on Unix, it is required to grant write permissions to the web server group. You can make more secure your configuration by disabling this feature and installing Moodle plugins copying the files to the right directory. However this will require to upload the files to your server using other tools like SFTP client tools or scp.

    How to install a plugin in Moodle?

    You can follow the official Moodle documentation.  Below you can find relevant information about the BitNami configuration.

    From the web interface

    Since Moodle 2.5 you can install any plugin from the Moodle administration panel. This is the default configuration for virtual machines, cloud images. With the native stack this method is available if you select "development" mode during the installation.

    Manually uploading the files

    With this method you need to copy and uncompress the plugin to the server file system in the correct folder. You can check that the module has been correctly installed in Settings > Site administration > Notifications (as Moodle admin user). With the native stack this method is available if you select "production" mode during the installation. In virtual machines and cloud images you can disable the web installer tool method and sse a SFTP client or use scp for manually copying the files.

    How to disable the admin web interface option for installing add-ons?

    For hidding this option from the admin web interface edit the configuration file /installdir/apps/moodle/htdocs/config.php and set:

    $CFG->disableonclickaddoninstall = true;
    

    On Unix systems you also should remove the write permissions from the web server group in the Moodle folders:

    find /installdir/apps/moodle/htdocs -type d 755
    

    Where /installdir/ is the installation directory. In virtual machines and cloud images the installation directory is /opt/bitnami.

    How to enable SSL?

    You can see how to configure Apache to enable SSL connections at How to enable SSL to access through https?

    How to debug Moodle errors?

    Once Apache starts, it will create two log files, the access_log and the error_log /installdir/apache2/logs directory or in /var/log/httpd if you are using Amazon Linux or Red Hat Enterprise cloud images.

    In Virtual Machines, Cloud Images and Ubuntu based Bitnami Cloud Hosting images installdir is /opt/bitnami.

    The access_log file is used to track client requests. When a client requests a document from the server, Apache records several parameters associated with the request in this file, such as: the IP address of the client, the document requested, the HTTP status code, and the current time.

    The error_log file is used to record important events. This file includes error messages, startup messages, and any other significant events in the life cycle of the server. This is the first place to look when you run into a problem when using Apache.

    If no error is found, you will see a message similar to:

    Syntax OK
    /installdir/ctlscript.sh : httpd started
    

    The main MySQL log file is created at /installdir/mysql/data/mysqld.log file.

    How to increase the allowed size of the uploaded files?

    You can modify the following option in the php.ini file to increase the allowed size for uploads:

    ; Maximum size of POST data that PHP will accept.
    post_max_size = 16M
    
    ...
    
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 16M
    

    How to install cron task for Moodle?

    Moodle requires to run a cron task that must be run regularly. The Administrator user can do that from the Admin panel -> Site Adminitration -> Notifications. In case you want to run this task in the background, you can create a cron task.

    To edit the crontab you can run the following command and add the following line.

    $ sudo crontab -e
    
    */15 * * * *  su daemon -c '/opt/bitnami/php/bin/php /opt/bitnami/apps/moodle/htdocs/admin/cli/cron.php >/dev/null'
    

    This cron entry will run the script every 15 minutes.

    If you see the following error: "PHP Notice: Undefined index: HTTP_HOST in /opt/bitnami/apps/moodle/htdocs/config.php" It is necessary to specify your domain name in the config.php file.

    $CFG->wwwroot   = 'http://YOUR_DOMAIN/moodle';
    
    Tag page (Edit tags)
    • No tags
    Page statistics
    42792 view(s), 23 edit(s) and 16158 character(s)

    Comments

    You must login to post a comment.

    Attach file

    Attachments