{"id":1794,"date":"2023-03-15T12:30:00","date_gmt":"2023-03-15T17:30:00","guid":{"rendered":"https:\/\/www.linuxcloudvps.com\/blog\/?p=1794"},"modified":"2023-08-29T08:43:02","modified_gmt":"2023-08-29T13:43:02","slug":"how-to-install-moodle-on-almalinux-9","status":"publish","type":"post","link":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/","title":{"rendered":"How to Install Moodle on AlmaLinux 9"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create online courses, training, learning and assignments. Originally, Moodle was known as an acronym for Modular Object-Oriented Dynamic Learning Environment. In this tutorial, we will show you how to install Moodle on AlmaLinux 9.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h1 class=\"wp-block-heading\">Prerequisites<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An <a href=\"https:\/\/www.rosehosting.com\/almalinux-hosting\/\" title=\"\">AlmaLinux 9 VPS<\/a><\/li>\n\n\n\n<li>root access or a regular user with sudo privileges<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">Step 1. Log in to your server via SSH<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">First, you will need to log in to your AlmaLinux 9 VPS via SSH as the root user:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ssh root@IP_Address -p Port_number<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You will need to replace &#8216;IP_Address&#8217; and &#8216;Port_number&#8217; with your server&#8217;s respective IP address and SSH port number. Additionally, replace &#8216;root&#8217; with the username of the system user with sudo privileges.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can check whether you have the proper AlmaLinux version installed on your server with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># cat \/etc\/almalinux-release<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">[root@almalinux8 ~]# cat \/etc\/almalinux-release \nAlmaLinux release 9.1 (Lime Lynx)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We will use &#8216;root&#8217; in this article to execute the shell commands. If you want to use your own regular user with sudo privileges to run the commands, make sure to append &#8216;sudo&#8217; in front of the commands.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Step 2. Update the system<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Before starting, let&#8217;s check if all AlmaLinux OS packages installed on the server are up to date. You can do this by running the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># dnf update\n# dnf upgrade<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We also need to install the additional packages.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># dnf install epel-release git<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Step 3. Install PHP<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The latest Moodle version supports PHP 8, and AlmaLinux 9 ships PHP 8.0 in the repository. To install it, let&#8217;s execute the following command.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># dnf install php-{bcmath,common,curl,fpm,gd,intl,mbstring,mysqlnd,soap,xml,xsl,zip,cli,devel,pear,json,opcache,sodium} libsodium libsodium-devel<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now that PHP 8 and its extensions are installed, we need to modify the PHP variable max_input_vars. The default value is 1000, and we need to increase it by at least 5000.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># nano \/etc\/php.ini<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then, append this line below.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">max_input_vars = 10000<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Save the file, then exit from the editor. And we can start PHP-FPM and enable it on boot.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># systemctl enable --now php-fpm<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Step 4. Install and Configure Nginx<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In this tutorial, we will use nginx as the web server. Let&#8217;s create an nginx server block for our Moodle website.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># nano \/etc\/nginx\/conf.d\/moodle.conf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Insert the following into the file.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">server{\n&amp;nbsp;&amp;nbsp; listen 80;\n&amp;nbsp;&amp;nbsp; server_name moodle.yourdomain.com;\n&amp;nbsp;&amp;nbsp; root \/opt\/moodle;\n&amp;nbsp;&amp;nbsp; index index.php;\n\n&amp;nbsp;&amp;nbsp; location \/ {\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try_files $uri $uri\/ \/index.php?$query_string;\n&amp;nbsp;&amp;nbsp; }\n\n&amp;nbsp;&amp;nbsp; location ~ ^(.+\\.php)(.*)$ {\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_split_path_info ^(.+\\.php)(.*)$;\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_index index.php;\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_pass php-fpm;\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include \/etc\/nginx\/mime.types;\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include fastcgi_params;\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_param PATH_INFO $fastcgi_path_info;\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Save the file and exit from the nano editor. Do not forget to start and enable nginx.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># systemctl enable --now nginx<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Step 5. Install SSL\/TLS Certificate<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is an optional but highly recommended step. We are going to use a free SSL\/TLS certificate from Let&#8217;s Encrypt for our Moodle website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, we need to install it.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># dnf install python3-certbot-nginx<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now, let&#8217;s generate an SSL\/TLS certificate for our Moodle website.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># cerbot --nginx<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You will be prompted to choose which website we are going to install the certificate for. In the example below, we only have one nginx server block.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[root@rh ~]# certbot --nginx\nSaving debug log to \/var\/log\/letsencrypt\/letsencrypt.log\n\nWhich names would you like to activate HTTPS for?\nWe recommend selecting either all domains, or all domains in a VirtualHost\/server block.\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n1: moodle.yourdomain.com\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nSelect the appropriate numbers separated by commas and\/or spaces, or leave input\nblank to select all options shown (Enter 'c' to cancel): 1\nRequesting a certificate for moodle.yourdomain.com\n\nSuccessfully received certificate.\nCertificate is saved at: \/etc\/letsencrypt\/live\/moodle.yourdomain.com\/fullchain.pem\nKey is saved at: \/etc\/letsencrypt\/live\/moodle.yourdomain.com\/privkey.pem\nThis certificate expires on 2023-05-08.\nThese files will be updated when the certificate renews.\nCertbot has set up a scheduled task to automatically renew this certificate in the background.\n\nDeploying certificate\nSuccessfully deployed certificate for moodle.yourdomain.com to \/etc\/nginx\/conf.d\/moodle.conf\nCongratulations! You have successfully enabled HTTPS on https:\/\/moodle.yourdomain.com\n\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\nIf you like Certbot, please consider supporting our work by:\n* Donating to ISRG \/ Let's Encrypt: https:\/\/letsencrypt.org\/donate\n* Donating to EFF: https:\/\/eff.org\/donate-le\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s it. An SSL\/TLS certificate has been issued and enabled.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, you will see that certbot also update your moodle nginx server block; it also redirects HTTP to HTTPS. You can confirm this by opening \/etc\/nginx\/conf.d\/moodle.conf<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Step 6. Install MariaDB Server<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Moodle supports several database servers, and this time we are going to use MariaDB. Let&#8217;s run this command below to install the MariaDB server.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># dnf install mariadb-server<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once installed, we can start the service and then create a database for this Moodle installation purpose.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># systemctl enable --now mariadb<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">After the service is running, we can run the commands below in the MariaDB shell.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># mysql<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">MariaDB [(none)]&gt; CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nMariaDB [(none)]&gt; CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'm0d1fyth15';\nMariaDB [(none)]&gt; GRANT ALL ON moodle.* TO 'moodle'@'localhost';\nMariaDB [(none)]&gt; FLUSH PRIVILEGES;\nMariaDB [(none)]&gt; \\q<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Step 7. Install Moodle<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">In this tutorial, we are going to use Git to install Moodle. With this method, it will be easier to upgrade Moodle in the future.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, we are going to install Moodle in <strong>\/opt\/moodle<\/strong> and save the Moodle data in <strong>\/opt\/moodledata<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># cd \/opt\n# git clone https:\/\/github.com\/moodle\/moodle.git<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The command above will clone Moodle from the GitHub repository to \/opt\/moodle and you will see an output similar to this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[root@almalinux opt]# git clone https:\/\/github.com\/moodle\/moodle.git\nCloning into 'moodle'...\nremote: Enumerating objects: 1346551, done.\nremote: Counting objects: 100% (4\/4), done.\nremote: Compressing objects: 100% (4\/4), done.\nremote: Total 1346551 (delta 0), reused 0 (delta 0), pack-reused 1346547\nReceiving objects: 100% (1346551\/1346551), 646.21 MiB | 7.88 MiB\/s, done.\nResolving deltas: 100% (948479\/948479), done.\nUpdating files: 100% (25395\/25395), done.<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once cloned, we can go into moodle directory then check the available Moodle branch.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># cd moodle\/\n# git branch -a<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">It will show you an output like this.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">* master\nremotes\/origin\/HEAD -&gt; origin\/master\nremotes\/origin\/MOODLE_13_STABLE\nremotes\/origin\/MOODLE_14_STABLE\nremotes\/origin\/MOODLE_15_STABLE\nremotes\/origin\/MOODLE_16_STABLE\nremotes\/origin\/MOODLE_17_STABLE\nremotes\/origin\/MOODLE_18_STABLE\nremotes\/origin\/MOODLE_19_STABLE\nremotes\/origin\/MOODLE_20_STABLE\nremotes\/origin\/MOODLE_21_STABLE\nremotes\/origin\/MOODLE_22_STABLE\nremotes\/origin\/MOODLE_23_STABLE\nremotes\/origin\/MOODLE_24_STABLE\nremotes\/origin\/MOODLE_25_STABLE\nremotes\/origin\/MOODLE_26_STABLE\nremotes\/origin\/MOODLE_27_STABLE\nremotes\/origin\/MOODLE_28_STABLE\nremotes\/origin\/MOODLE_29_STABLE\nremotes\/origin\/MOODLE_30_STABLE\nremotes\/origin\/MOODLE_310_STABLE\nremotes\/origin\/MOODLE_311_STABLE\nremotes\/origin\/MOODLE_31_STABLE\nremotes\/origin\/MOODLE_32_STABLE\nremotes\/origin\/MOODLE_33_STABLE\nremotes\/origin\/MOODLE_34_STABLE\nremotes\/origin\/MOODLE_35_STABLE\nremotes\/origin\/MOODLE_36_STABLE\nremotes\/origin\/MOODLE_37_STABLE\nremotes\/origin\/MOODLE_38_STABLE\nremotes\/origin\/MOODLE_39_STABLE\nremotes\/origin\/MOODLE_400_STABLE\nremotes\/origin\/MOODLE_401_STABLE\nremotes\/origin\/master<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Choose the latest stable branch, then checkout. At the time of writing this article, the last stable version is 401.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># git branch --track MOODLE_401_STABLE origin\/MOODLE_401_STABLE\n# git checkout MOODLE_401_STABLE<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, check the status using this command below.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># git status<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">You will see an output like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">On branch MOODLE_401_STABLE\nYour branch is up to date with 'origin\/MOODLE_401_STABLE'.<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">nothing to commit, working tree clean<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not, it is time to change the file permission.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># mkdir -p \/opt\/moodledata\n# chown -R apache. \/opt\/moodle*<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose you wonder why the permission is set to apache, not nginx. It is because PHP-FPM uses the user &#8216;apache&#8217; by default. You can modify it to &#8216;nginx&#8217;. Just make sure to match the files\/directories ownership with php-fpm user.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, it is time to go to https:\/\/moodle.yourdomain.com and finish the installation instruction wizard.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_choose_language.jpg\" alt=\"\" class=\"wp-image-44897\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Click Next to continue.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_confirm_paths.jpg\" alt=\"\" class=\"wp-image-44898\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Click Next again.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_choose_database_driver.jpg\" alt=\"\" class=\"wp-image-44899\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">In this step, we need to choose MariaDB instead of MySQL.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_database_setting.jpg\" alt=\"\" class=\"wp-image-44900\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">In this step, you need to fill them in with the database credentials we created in the previous step. You can let the database port and unix socket empty, then click on the Next button.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_terms_and_conditions.jpg\" alt=\"\" class=\"wp-image-44901\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Click Continue<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_server_checks.jpg\" alt=\"\" class=\"wp-image-44902\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>If everything is okay, click Continue to proceed. The installation will install the required Moodle modules, and it will take a few minutes to complete.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_module_installation.jpg\" alt=\"\" class=\"wp-image-44903\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>After installing the modules, click Continue to proceed to the next step.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_installation_information.jpg\" alt=\"\" class=\"wp-image-44904\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>In this step, you need to fill in the required fields before you can continue.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_home_settings.jpg\" alt=\"\" class=\"wp-image-44905\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>Make sure to fill them all, then click on the Save changes button.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_site_registration.jpg\" alt=\"\" class=\"wp-image-44906\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><br>You can fill them and continue or skip the registration<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2023\/02\/moodle_welcome.jpg\" alt=\"\" class=\"wp-image-44907\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Finally, you will be brought to the dashboard<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Step 8. Install Cron<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">To make Moodle run properly, we need to configure Moodle cronjobs. Without setting it up, your Moodle website might not run properly.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># crontab -u apache -e<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Append this line to the file editor.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">* * * * * \/usr\/bin\/php \/var\/www\/html\/moodle\/admin\/cli\/cron.php &gt;\/dev\/null<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Save the file, then exit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We trust that our article today successfully demonstrated how to install Moodle on AlmaLinux 9 in a straightforward and effective manner. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We would now like to hear from you. Is there a detail you think we overlooked or a step you are unsure about that needs further clarification? Do you have suggestions for other guides or topics you&#8217;d like us to explore? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please feel free to share your thoughts in the comment section below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create online courses, training, learning and assignments. Originally, Moodle was known as an acronym for Modular Object-Oriented Dynamic Learning Environment. In this tutorial, we will show you how to install Moodle on AlmaLinux &#8230; <a title=\"How to Install Moodle on AlmaLinux 9\" class=\"read-more\" href=\"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/\" aria-label=\"More on How to Install Moodle on AlmaLinux 9\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":1795,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[207,260,13],"tags":[232,112],"class_list":["post-1794","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide","category-linux","category-tutorials","tag-almalinux","tag-moodle"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Install Moodle on AlmaLinux 9 | LinuxCloudVPS Blog<\/title>\n<meta name=\"description\" content=\"Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Install Moodle on AlmaLinux 9 | LinuxCloudVPS Blog\" \/>\n<meta property=\"og:description\" content=\"Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/\" \/>\n<meta property=\"og:site_name\" content=\"LinuxCloudVPS Blog\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/LinuxCloudVPS\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-15T17:30:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-29T13:43:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/03\/install-moodle-on-almalinux-9.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"742\" \/>\n\t<meta property=\"og:image:height\" content=\"372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@LinuxCloudVPS\" \/>\n<meta name=\"twitter:site\" content=\"@LinuxCloudVPS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#\\\/schema\\\/person\\\/ed907227ee7d151c617e6d0fe74f531a\"},\"headline\":\"How to Install Moodle on AlmaLinux 9\",\"datePublished\":\"2023-03-15T17:30:00+00:00\",\"dateModified\":\"2023-08-29T13:43:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/\"},\"wordCount\":982,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/install-moodle-on-almalinux-9.webp\",\"keywords\":[\"almalinux\",\"moodle\"],\"articleSection\":[\"Guide\",\"Linux\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/\",\"url\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/\",\"name\":\"How to Install Moodle on AlmaLinux 9 | LinuxCloudVPS Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/install-moodle-on-almalinux-9.webp\",\"datePublished\":\"2023-03-15T17:30:00+00:00\",\"dateModified\":\"2023-08-29T13:43:02+00:00\",\"description\":\"Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/install-moodle-on-almalinux-9.webp\",\"contentUrl\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/install-moodle-on-almalinux-9.webp\",\"width\":742,\"height\":372,\"caption\":\"install moodle on almalinux\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/how-to-install-moodle-on-almalinux-9\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Install Moodle on AlmaLinux 9\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/\",\"name\":\"LinuxCloudVPS\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#organization\",\"name\":\"LinuxCloudVPS\",\"url\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/logo.png\",\"width\":217,\"height\":25,\"caption\":\"LinuxCloudVPS\"},\"image\":{\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/www.facebook.com\\\/LinuxCloudVPS\",\"https:\\\/\\\/x.com\\\/LinuxCloudVPS\",\"http:\\\/\\\/www.linkedin.com\\\/company\\\/linuxcloudvps-com\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/#\\\/schema\\\/person\\\/ed907227ee7d151c617e6d0fe74f531a\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\\\/\\\/www.linuxcloudvps.com\\\/\"],\"url\":\"https:\\\/\\\/www.linuxcloudvps.com\\\/blog\\\/author\\\/r0s3admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Install Moodle on AlmaLinux 9 | LinuxCloudVPS Blog","description":"Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/","og_locale":"en_US","og_type":"article","og_title":"How to Install Moodle on AlmaLinux 9 | LinuxCloudVPS Blog","og_description":"Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create","og_url":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/","og_site_name":"LinuxCloudVPS Blog","article_publisher":"http:\/\/www.facebook.com\/LinuxCloudVPS","article_published_time":"2023-03-15T17:30:00+00:00","article_modified_time":"2023-08-29T13:43:02+00:00","og_image":[{"width":742,"height":372,"url":"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/03\/install-moodle-on-almalinux-9.webp","type":"image\/webp"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@LinuxCloudVPS","twitter_site":"@LinuxCloudVPS","twitter_misc":{"Written by":"admin","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#article","isPartOf":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/"},"author":{"name":"admin","@id":"https:\/\/www.linuxcloudvps.com\/blog\/#\/schema\/person\/ed907227ee7d151c617e6d0fe74f531a"},"headline":"How to Install Moodle on AlmaLinux 9","datePublished":"2023-03-15T17:30:00+00:00","dateModified":"2023-08-29T13:43:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/"},"wordCount":982,"commentCount":2,"publisher":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#primaryimage"},"thumbnailUrl":"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/03\/install-moodle-on-almalinux-9.webp","keywords":["almalinux","moodle"],"articleSection":["Guide","Linux","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/","url":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/","name":"How to Install Moodle on AlmaLinux 9 | LinuxCloudVPS Blog","isPartOf":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#primaryimage"},"image":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#primaryimage"},"thumbnailUrl":"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/03\/install-moodle-on-almalinux-9.webp","datePublished":"2023-03-15T17:30:00+00:00","dateModified":"2023-08-29T13:43:02+00:00","description":"Moodle is an open-source platform for online learning. It is a Learning Management System used by educational institutions that enable them to create","breadcrumb":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#primaryimage","url":"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/03\/install-moodle-on-almalinux-9.webp","contentUrl":"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/03\/install-moodle-on-almalinux-9.webp","width":742,"height":372,"caption":"install moodle on almalinux"},{"@type":"BreadcrumbList","@id":"https:\/\/www.linuxcloudvps.com\/blog\/how-to-install-moodle-on-almalinux-9\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.linuxcloudvps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Install Moodle on AlmaLinux 9"}]},{"@type":"WebSite","@id":"https:\/\/www.linuxcloudvps.com\/blog\/#website","url":"https:\/\/www.linuxcloudvps.com\/blog\/","name":"LinuxCloudVPS","description":"","publisher":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.linuxcloudvps.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.linuxcloudvps.com\/blog\/#organization","name":"LinuxCloudVPS","url":"https:\/\/www.linuxcloudvps.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.linuxcloudvps.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/08\/logo.png","contentUrl":"https:\/\/www.linuxcloudvps.com\/blog\/wp-content\/uploads\/2023\/08\/logo.png","width":217,"height":25,"caption":"LinuxCloudVPS"},"image":{"@id":"https:\/\/www.linuxcloudvps.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/www.facebook.com\/LinuxCloudVPS","https:\/\/x.com\/LinuxCloudVPS","http:\/\/www.linkedin.com\/company\/linuxcloudvps-com"]},{"@type":"Person","@id":"https:\/\/www.linuxcloudvps.com\/blog\/#\/schema\/person\/ed907227ee7d151c617e6d0fe74f531a","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/www.linuxcloudvps.com\/"],"url":"https:\/\/www.linuxcloudvps.com\/blog\/author\/r0s3admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/posts\/1794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/comments?post=1794"}],"version-history":[{"count":2,"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/posts\/1794\/revisions"}],"predecessor-version":[{"id":1945,"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/posts\/1794\/revisions\/1945"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/media\/1795"}],"wp:attachment":[{"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/media?parent=1794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/categories?post=1794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxcloudvps.com\/blog\/wp-json\/wp\/v2\/tags?post=1794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}