SlideShare a Scribd company logo
1 of 20
Your system
administrator is lying too
          you
 Installing Moodle (On Ubuntu Linux) is easy
Go here
 http://www.slideshare.net/simonsCatalyst
SSH Key
• Windows users:
  – Install http://tinyurl.com/moodle-putty
      • SSH Client
   – Unzip http://tinyurl.com/moodle-ppk
      • Contains .ppk file
• Linux / MacOSX users
   – Download http://tinyurl.com/moodle-rsa
      • RSA SSH key
Who the hell am I?
• A Linux sysadmin, can you tell by the facial hair,
  surly holier-than-thou attitude
• Politics, not IT educated
• Worked for Catalyst for 3 years
• Worked for a Port Company 3 years
• Travelled
• Sold soul to despicable currency traders
• Back at Catalyst to atone for sins
Who the hell are you?
• Tell me about yourselves
Why this workshop?
• Maybe you are curious
• I see people struggling on the Moodle forums
• People think Linux is hard, it's not, it's just
  different.
• Don't install on Windows
   – It costs money
• Don't install on MacOSX
   – Dependency hell
About this workshop
• I don't expect you to learn a hell of a lot, a lot of
  monkey-see, monkey-do.
• I want to demonstrate that a basic Moodle
  installation is not difficult
• We will use Amazon EC2 virtual machines
Outline
•   SSH setup
•   Login
•   Install dependencies
•   Create the dataroot
•   Create our database
•   Unpack moodle
•   Install Moodle
•   EXTRAS: APC, Cronjob
SSH login – Ask me for hostname
•   Windows: Open Putty
    – Expand SSH
        • Click on Auth
            – Browse for that .ppk
               file you unzipped
    – Scroll up to session
        • Click Open, username is
          'ubuntu'
•   Linux / MacOS X command
    prompt
    – ssh ­i installing­
      moodle­is­easy­private 
      ubuntu@<hostname>
Logged in – Run the following
•   sudo apt­get update                http://tinyurl.com/moodle-get-

    – Updates the VM's list of software availible from Ubuntu
                                       it



•   sudo apt­get install postgresql apache2­mpm­
    prefork libapache2­mod­php5 php5­gd php5­curl 
    php5­xmlrpc php5­pgsql php5­intl php5­suhosin
    – Installs the requisite software for Moodle to function
•   sudo /etc/init.d/apache2 restart
    – Restart the webserver to pick up it's new configuration
Make filesystem changes for
moodle
•   sudo mkdir /var/www/moodle
    – There is where the code goes
•   sudo chown ubuntu:ubuntu /var/www/
    – Lets you unpack the code
•   sudo mkdir /var/moodledata
    – This is where Moodle will store files
•   sudo chown www­data:www­data /var/moodledata
    – Let the webserver process write to this place
Create the database
•   sudo su – postgres
     – Switch user to the postgres Unix user
•   createuser ­P moodle
     – Create a user in the database user called moodle
        • -P means prompt for a password
     – Make the password moodle
     – Answer 'n' to all questions
•   createdb ­Omoodle ­Ttemplate0 ­Eutf8 moodle
     – Creates a database called moodle
        • -O owned by the moodle database user you just created
        • -T that is completely blank
        • -E has the utf8 encoding
•   All done? No errors? Run 'exit' (Just once)
Get and install the code
•   cd
     – Just that, puts you back in your home directory
•   wget "http://tinyurl.com/moodle­get­it"
     – Downloads the code
•   cd /var/www
•   sudo chown ubuntu:ubuntu /var/www/moodle
•   tar xvzf /home/ubuntu/moodle-get-it
     – Unpacks the code
•   sudo chown www-data:www-data /var/www/moodle/
     – Temporary permissions change to allow the writing of the
       configuration file
Run the moodle installer
• Back on your laptop, point your web browser at
  your Amazon EC2 machine
   – Something like
   – http://ec2-79-125-48-199.eu-west-
     1.compute.amazonaws.com/moodle
Set moodle install options
• Choose your language
• Defaults on 'confirm paths' are fine
• Database driver should have already selected
  'postgresql'
• Database settings
   – host: localhost
   – name: moodle
   – user: moodle
   – password: moodle
Copyright notice?!
• Congratulations!
  – Everything has gone just great
  – sudo chown ubuntu:ubuntu 
    /var/www/moodle
     • Fixes insecure permissions
  – Read the copyright notice
     • Say 'Thanks Martin!' and click continue
     • You must say thanks
        – Very important
  – Click on the next continue button, just once!
     • Be patient!
The cronjob
• Moodle cron needs the Unix cron to work
• Unix cron speaks an odd language
   – Minute, Hour, Day of month, Month, Day
• 0,15,30,45 * * * * means?
• In /etc/cron.d/ you also specify a username
• Normally you don't redirect to /dev/null !
• 0,15,30,45 * * * * www­data /usr/bin/php /var/www/moodle/admin/cli/cron.php 
   &> /dev/null
APC – What?
• APC keeps a cached compiled copy of the
  Moodle code in memory
   – Improvement in performance
• Very easy to install on Ubuntu
• In Moodle enable the performance info
APC - Install
• sudo apt­get install php­apc
• sudo nano /etc/php5/conf.d/apc.ini
                       conf.d/apc.ini

• Add the following
   – apc.shm_size=128m
   – apc.num_files_hint=15000
• ctrl­x , y, <enter>
• sudo /etc/init.d/apache2 restart
Okay, your questions?

More Related Content

What's hot

Installing WordPress on Mac Mavericks Locally
Installing WordPress on Mac Mavericks LocallyInstalling WordPress on Mac Mavericks Locally
Installing WordPress on Mac Mavericks LocallyKim Muellner
 
Serving Moodle Presentation
Serving Moodle PresentationServing Moodle Presentation
Serving Moodle Presentationwebhostingguy
 
Mambo (2006) Presentation on CMS
Mambo (2006) Presentation on CMSMambo (2006) Presentation on CMS
Mambo (2006) Presentation on CMSJohn Patten
 
Securing Your Moodle
Securing Your MoodleSecuring Your Moodle
Securing Your Moodlemoorejon
 
Install Word Press with xampp
Install Word Press with xamppInstall Word Press with xampp
Install Word Press with xamppMehdi Sharifirad
 
WordPress and MAMP
WordPress and MAMPWordPress and MAMP
WordPress and MAMPJim Raffel
 
WordPress MU 101
WordPress MU 101WordPress MU 101
WordPress MU 101Pete Mall
 
Word press maintenance mode after upgrade
Word press maintenance mode after upgradeWord press maintenance mode after upgrade
Word press maintenance mode after upgradeJitesh Dhamniya
 
Optimizing Drupal Performance. Tips and Tricks
Optimizing Drupal Performance. Tips and TricksOptimizing Drupal Performance. Tips and Tricks
Optimizing Drupal Performance. Tips and TricksTimur Kamanin
 
Optimizing Drupal Performance (English)
Optimizing Drupal Performance (English)Optimizing Drupal Performance (English)
Optimizing Drupal Performance (English)Timur Kamanin
 
WordPress: a stepping stone to Web Development
WordPress: a stepping stone to Web DevelopmentWordPress: a stepping stone to Web Development
WordPress: a stepping stone to Web Developmentremixwolf
 
Wordpress Website Development Services Hyderabad | Wordpress Website Develop...
 Wordpress Website Development Services Hyderabad | Wordpress Website Develop... Wordpress Website Development Services Hyderabad | Wordpress Website Develop...
Wordpress Website Development Services Hyderabad | Wordpress Website Develop...webdesigning
 
How to install wordpress on wampserver
How to install wordpress on wampserverHow to install wordpress on wampserver
How to install wordpress on wampservershreyakp
 
php with wordpress and mysql ppt by Naveen Tokas
 php with wordpress and mysql ppt by Naveen Tokas php with wordpress and mysql ppt by Naveen Tokas
php with wordpress and mysql ppt by Naveen TokasNAVEEN TOKAS
 

What's hot (20)

Installing WordPress on Mac Mavericks Locally
Installing WordPress on Mac Mavericks LocallyInstalling WordPress on Mac Mavericks Locally
Installing WordPress on Mac Mavericks Locally
 
Serving Moodle Presentation
Serving Moodle PresentationServing Moodle Presentation
Serving Moodle Presentation
 
Mambo (2006) Presentation on CMS
Mambo (2006) Presentation on CMSMambo (2006) Presentation on CMS
Mambo (2006) Presentation on CMS
 
Securing Your Moodle
Securing Your MoodleSecuring Your Moodle
Securing Your Moodle
 
Installation of Openbiblio using Easyphp
Installation of Openbiblio using EasyphpInstallation of Openbiblio using Easyphp
Installation of Openbiblio using Easyphp
 
Install Word Press with xampp
Install Word Press with xamppInstall Word Press with xampp
Install Word Press with xampp
 
WordPress and MAMP
WordPress and MAMPWordPress and MAMP
WordPress and MAMP
 
Introduction to WordPress
Introduction to WordPressIntroduction to WordPress
Introduction to WordPress
 
Installation of wordpress
Installation of wordpressInstallation of wordpress
Installation of wordpress
 
WordPress MU 101
WordPress MU 101WordPress MU 101
WordPress MU 101
 
Word press maintenance mode after upgrade
Word press maintenance mode after upgradeWord press maintenance mode after upgrade
Word press maintenance mode after upgrade
 
Drupal
DrupalDrupal
Drupal
 
Wordpress customer support
Wordpress customer support Wordpress customer support
Wordpress customer support
 
Optimizing Drupal Performance. Tips and Tricks
Optimizing Drupal Performance. Tips and TricksOptimizing Drupal Performance. Tips and Tricks
Optimizing Drupal Performance. Tips and Tricks
 
Optimizing Drupal Performance (English)
Optimizing Drupal Performance (English)Optimizing Drupal Performance (English)
Optimizing Drupal Performance (English)
 
WordPress: a stepping stone to Web Development
WordPress: a stepping stone to Web DevelopmentWordPress: a stepping stone to Web Development
WordPress: a stepping stone to Web Development
 
Wordpress Website Development Services Hyderabad | Wordpress Website Develop...
 Wordpress Website Development Services Hyderabad | Wordpress Website Develop... Wordpress Website Development Services Hyderabad | Wordpress Website Develop...
Wordpress Website Development Services Hyderabad | Wordpress Website Develop...
 
Ithemes presentation
Ithemes presentationIthemes presentation
Ithemes presentation
 
How to install wordpress on wampserver
How to install wordpress on wampserverHow to install wordpress on wampserver
How to install wordpress on wampserver
 
php with wordpress and mysql ppt by Naveen Tokas
 php with wordpress and mysql ppt by Naveen Tokas php with wordpress and mysql ppt by Naveen Tokas
php with wordpress and mysql ppt by Naveen Tokas
 

Similar to Installing Moodle is Easy

Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)Jun Hong Kim
 
Using Puppet in Small Infrastructures
Using Puppet in Small InfrastructuresUsing Puppet in Small Infrastructures
Using Puppet in Small InfrastructuresRachel Andrew
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linuxplarsen67
 
Deploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeDeploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeWO Community
 
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GITWong Hoi Sing Edison
 
02 Hadoop deployment and configuration
02 Hadoop deployment and configuration02 Hadoop deployment and configuration
02 Hadoop deployment and configurationSubhas Kumar Ghosh
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012Philip Polstra
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidMatthew Johnson
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxWO Community
 
Hacking and Forensics on the Go - 44CON 2012
Hacking and Forensics on the Go - 44CON 2012Hacking and Forensics on the Go - 44CON 2012
Hacking and Forensics on the Go - 44CON 201244CON
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanMihai Criveti
 
LuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDaysLuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDaysLuis Rodríguez Castromil
 
Single node hadoop cluster installation
Single node hadoop cluster installation Single node hadoop cluster installation
Single node hadoop cluster installation Mahantesh Angadi
 
Web 3, Week 1: Amazon Web Services for Beginners
Web 3, Week 1: Amazon Web Services for BeginnersWeb 3, Week 1: Amazon Web Services for Beginners
Web 3, Week 1: Amazon Web Services for Beginnersjkosoy
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in controlAll Things Open
 

Similar to Installing Moodle is Easy (20)

Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)Hadoop meet Rex(How to construct hadoop cluster with rex)
Hadoop meet Rex(How to construct hadoop cluster with rex)
 
Using Puppet in Small Infrastructures
Using Puppet in Small InfrastructuresUsing Puppet in Small Infrastructures
Using Puppet in Small Infrastructures
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Deploying to Ubuntu on Linode
Deploying to Ubuntu on LinodeDeploying to Ubuntu on Linode
Deploying to Ubuntu on Linode
 
3 technical-dns-workshop-day2
3 technical-dns-workshop-day23 technical-dns-workshop-day2
3 technical-dns-workshop-day2
 
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
 
02 Hadoop deployment and configuration
02 Hadoop deployment and configuration02 Hadoop deployment and configuration
02 Hadoop deployment and configuration
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
 
Hadoop on osx
Hadoop on osxHadoop on osx
Hadoop on osx
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue Kid
 
Adhocr T-dose 2012
Adhocr T-dose 2012Adhocr T-dose 2012
Adhocr T-dose 2012
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS Linux
 
Polstra 44con2012
Polstra 44con2012Polstra 44con2012
Polstra 44con2012
 
Hacking and Forensics on the Go - 44CON 2012
Hacking and Forensics on the Go - 44CON 2012Hacking and Forensics on the Go - 44CON 2012
Hacking and Forensics on the Go - 44CON 2012
 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
 
LuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDaysLuisRodriguezLocalDevEnvironmentsDrupalOpenDays
LuisRodriguezLocalDevEnvironmentsDrupalOpenDays
 
Moving to moodle 2
Moving to moodle 2Moving to moodle 2
Moving to moodle 2
 
Single node hadoop cluster installation
Single node hadoop cluster installation Single node hadoop cluster installation
Single node hadoop cluster installation
 
Web 3, Week 1: Amazon Web Services for Beginners
Web 3, Week 1: Amazon Web Services for BeginnersWeb 3, Week 1: Amazon Web Services for Beginners
Web 3, Week 1: Amazon Web Services for Beginners
 
Sudo – Giving access while staying in control
Sudo – Giving access while staying in controlSudo – Giving access while staying in control
Sudo – Giving access while staying in control
 

Recently uploaded

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Installing Moodle is Easy

  • 1. Your system administrator is lying too you Installing Moodle (On Ubuntu Linux) is easy
  • 3. SSH Key • Windows users: – Install http://tinyurl.com/moodle-putty • SSH Client – Unzip http://tinyurl.com/moodle-ppk • Contains .ppk file • Linux / MacOSX users – Download http://tinyurl.com/moodle-rsa • RSA SSH key
  • 4. Who the hell am I? • A Linux sysadmin, can you tell by the facial hair, surly holier-than-thou attitude • Politics, not IT educated • Worked for Catalyst for 3 years • Worked for a Port Company 3 years • Travelled • Sold soul to despicable currency traders • Back at Catalyst to atone for sins
  • 5. Who the hell are you? • Tell me about yourselves
  • 6. Why this workshop? • Maybe you are curious • I see people struggling on the Moodle forums • People think Linux is hard, it's not, it's just different. • Don't install on Windows – It costs money • Don't install on MacOSX – Dependency hell
  • 7. About this workshop • I don't expect you to learn a hell of a lot, a lot of monkey-see, monkey-do. • I want to demonstrate that a basic Moodle installation is not difficult • We will use Amazon EC2 virtual machines
  • 8. Outline • SSH setup • Login • Install dependencies • Create the dataroot • Create our database • Unpack moodle • Install Moodle • EXTRAS: APC, Cronjob
  • 9. SSH login – Ask me for hostname • Windows: Open Putty – Expand SSH • Click on Auth – Browse for that .ppk file you unzipped – Scroll up to session • Click Open, username is 'ubuntu' • Linux / MacOS X command prompt – ssh ­i installing­ moodle­is­easy­private  ubuntu@<hostname>
  • 10. Logged in – Run the following • sudo apt­get update http://tinyurl.com/moodle-get- – Updates the VM's list of software availible from Ubuntu it • sudo apt­get install postgresql apache2­mpm­ prefork libapache2­mod­php5 php5­gd php5­curl  php5­xmlrpc php5­pgsql php5­intl php5­suhosin – Installs the requisite software for Moodle to function • sudo /etc/init.d/apache2 restart – Restart the webserver to pick up it's new configuration
  • 11. Make filesystem changes for moodle • sudo mkdir /var/www/moodle – There is where the code goes • sudo chown ubuntu:ubuntu /var/www/ – Lets you unpack the code • sudo mkdir /var/moodledata – This is where Moodle will store files • sudo chown www­data:www­data /var/moodledata – Let the webserver process write to this place
  • 12. Create the database • sudo su – postgres – Switch user to the postgres Unix user • createuser ­P moodle – Create a user in the database user called moodle • -P means prompt for a password – Make the password moodle – Answer 'n' to all questions • createdb ­Omoodle ­Ttemplate0 ­Eutf8 moodle – Creates a database called moodle • -O owned by the moodle database user you just created • -T that is completely blank • -E has the utf8 encoding • All done? No errors? Run 'exit' (Just once)
  • 13. Get and install the code • cd – Just that, puts you back in your home directory • wget "http://tinyurl.com/moodle­get­it" – Downloads the code • cd /var/www • sudo chown ubuntu:ubuntu /var/www/moodle • tar xvzf /home/ubuntu/moodle-get-it – Unpacks the code • sudo chown www-data:www-data /var/www/moodle/ – Temporary permissions change to allow the writing of the configuration file
  • 14. Run the moodle installer • Back on your laptop, point your web browser at your Amazon EC2 machine – Something like – http://ec2-79-125-48-199.eu-west- 1.compute.amazonaws.com/moodle
  • 15. Set moodle install options • Choose your language • Defaults on 'confirm paths' are fine • Database driver should have already selected 'postgresql' • Database settings – host: localhost – name: moodle – user: moodle – password: moodle
  • 16. Copyright notice?! • Congratulations! – Everything has gone just great – sudo chown ubuntu:ubuntu  /var/www/moodle • Fixes insecure permissions – Read the copyright notice • Say 'Thanks Martin!' and click continue • You must say thanks – Very important – Click on the next continue button, just once! • Be patient!
  • 17. The cronjob • Moodle cron needs the Unix cron to work • Unix cron speaks an odd language – Minute, Hour, Day of month, Month, Day • 0,15,30,45 * * * * means? • In /etc/cron.d/ you also specify a username • Normally you don't redirect to /dev/null ! • 0,15,30,45 * * * * www­data /usr/bin/php /var/www/moodle/admin/cli/cron.php  &> /dev/null
  • 18. APC – What? • APC keeps a cached compiled copy of the Moodle code in memory – Improvement in performance • Very easy to install on Ubuntu • In Moodle enable the performance info
  • 19. APC - Install • sudo apt­get install php­apc • sudo nano /etc/php5/conf.d/apc.ini conf.d/apc.ini • Add the following – apc.shm_size=128m – apc.num_files_hint=15000 • ctrl­x , y, <enter> • sudo /etc/init.d/apache2 restart