Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Beginning Administration 1 FAQ.

Beginning Administration 1 FAQ

From MoodleDocs

There is always an element of frustration at the beginning of taking on a Moodle. For many of us, we are employed to do something else, but fall into this. While we have some knowledge or skills, we can often be stumped by the simple things. Not because we are not skilled, just we do not understand enough of the jargon surrounding Moodle to make it work for us. What many people have found is that they are pushing against a door that was never shut. Not a good analogy perhaps, but it does describe what can happen when we begin Administration of a Moodle.

Most of the questions and answers here can be located somewhere in the Forums, or the Moodle Docs, if you want to spend the time looking for them. All this FAQ does is concentrate some of the questions you may be asking in one place. Thanks to all the unknowing and unknown contributors.

This page has grown a bit quickly and is now over sized. So second and third pages have been added named Beginning Administration 2 FAQ Beginning Administration 3 FAQ. A number of questions relating to specific, popular, areas have now been moved. One is the Front Page FAQ and the Xampp Installer FAQ, others will probably follow.

For the moment, ALL answers here relate specifically to Moodle 1.9.x and some earlier versions (e.g. 1.7 and 1.8). Moodle 2.0 questions are not answered here.

Beginning Administration 2 FAQ

Xampp Installer FAQ

I want to create a new site in Moodle, but which version should I use? 1.9 or 2.0.

You should use Moodle 1.9. We will not see a production version of Moodle 2.0 much before July 2010, at best. There will be many changes made to the Application Program Interface and underlying structure in Moodle 2.0. The development work is going to take a while. If you have some good PHP skills you might want to consider getting involved in this Open Source project.

Of course if you want to play with Moodle 2.0 and watch it develop, download it, try it but do not make it your production Moodle site :)

What do I really need to know about HTML, Javascript, PHP and MySQL or networking to be a successful Administrator?

Not a lot. Certainly you should know something about HTML and there are lots of web sites and books on this subject. Generally speaking in Moodle, Javascript is a mid-level skill and, PHP and MySQL are advanced skills. If you are really interested in gaining more skills in these programs, there are lots of free to low cost to professional certification paths to follow. There are web sites around that will get you started with minimal cost. There are plenty of books as well. Individualized professional coaching/mentoring/consulting or certified training in several areas is obviously more expensive. Understanding Networking will also come in handy. The more your site is customized from the standard Moodle package, the more you may need these skills.

What tools do I need to use in the Administration of my Moodle

Different environments will allow to you use some different tools, but essentially, you can get away with just a text editor. There are any number of text editors, but use one that can save the files in a UTF-8 format. Notepad++, TextPad are two that come to mind and there are a lot more, but not Windows' native Notepad.

Should I use a test site to try things out?

As a general tip, if you have a production site, that is a site that is being used by students or other enrolled persons on a regular basis, then it is a good investment to have a test site. This test site is used by you, the administrator, alone. In it, you can replicate your production site or any aspect of it, by taking a backup of something from your production site and restoring it to your test site. Trial something in this test Moodle first. This way you will always be on top of changes before you make them. If something goes wrong with your test site, it is simple to reinstall.

For some circumstances, the Windows Xaampp installer may be a better choice for a Windows environment, and while it may not replicate specific server environmental problems, it is handy for a lot of other things. As an alternative, in either a Linux or Windows environment, if you need something specific, once your site is working, back it up and then restore it under a different folder in the web root. As long as no-one knows it is there, and there are no public links to it, then you are the only one who may access it. Of course, you can always makes sure that no-one but you can enter the test site. You may not want to do that on one server - due to hosting constraints, so you may chose to create a separate installation on a different computer, which does make it easier to wreck your test site then restore it quickly.

Top

How do I set Moodle & Moodledata folder permissions in the server environment.

You should already have gone through the Installing Moodle guide and this should have provided you with some information. However, due to the manner in which Moodle has been created it tends to concentrate on the LAMP configuration.

The other question is how can I set permissions in IIS.

This discussion in the Using Moodle Forum about this topic could be really valuable for IIS users.


We have an older version of Moodle, but as a new Administrator, I want to upgrade to the latest version, but how?

Practice first before Upgrading a production site! There are risks in upgrading any software package. Also, as a new administrator, you may not completely understand what has been installed on your production Moodle site. A combination of upgrading a version 1.6 site to 1.9 that has 6 Contributed code modules added to it can be a complicated process.

The quickest way would be to backup your current database, install the latest version onto a separate computer and restore the backup to it. You can then test your new Moodle, easily and safely. When satisfied that it is working as it should, migrate the new Moodle to the server, replacing your old Moodle. Do the next new administrator a favor and document your process and changes you made.

One issue will be problems in the database. Some tables may have incrementally changed so restoring may become a lot more difficult than it should be. It may be less difficult in the long run to create a new site, then back up each course from the old site and restore each course to the new site. Or if you have a knowledge of SQL, you may be able to create your own SQL queries to rewrite the older tables and store the data in a format the new database can accept.

Top


I have Ubuntu 8.04 server set up as LAMP server and used apt-get to install Moodle. MySQL is on another server, but Moodle won't work.

apt-get is an Advanced Packaging Tool that automates the installation process for many Linux distros. While it is an excellent tool under many circumstances, it is not perfect, so it may very well be the problem when setting up a Moodle where parts of it are located on different servers. Manual installations can be a bit more time consuming, but have a much greater chance of success. Having said that, check the config.php file and make sure that each path is pointing to the correct place e.g.

  $CFG->wwwroot = 'http://yourwebsiteURL';
  $CFG->dirroot = '/home/yourAccountName/public_html';
  $CFG->dataroot = '/http://yourMySQLServeraddress/path/moodledata';

I have a valid web address, but as I install, I am getting an error message telling me I do not.

Chances are that it is the config.php file that is pointing in the wrong direction. If you can use a text editor that can save in a UTF-8 format, open the config.php file and it may read something like:

 $CFG->wwwroot   = 'localhost';
 $CFG->dirroot   = 'var/www/Moodle/moodle';
 $CFG->dataroot  = 'var/www/Moodle/moodledata';
 

when it should look something like:

   $CFG->wwwroot = 'http://yourwebsiteURL';
   $CFG->dirroot = '/home/yourAccountName/public_html';
   $CFG->dataroot = '/home/yourAccountName/moodledata';
   

If you are being hosted then the provider may allow you access to something like CPanel in a Linux environment.

This will also repair the error message:

 The 'Data Directory' you specified could not be found or created. 
 Either correct the path or create that directory manually.

In a Windows environment it may look something like:

   $CFG->wwwroot = 'http://yourwebsiteURL';
   $CFG->dirroot   = 'C:\Moodle\server\moodle';
   $CFG->dataroot  = 'C:\Moodle\server/moodledata';

Site migrated to new ISP, now can't login and getting the error message "Unfortunately, cookies are currently not enabled in your browser"

With all these kinds of errors the first thing to do is to check the config.php file. Make sure that the file is pointing to the right places. It should look something like:

  $CFG->wwwroot = 'http://yourwebsiteURL';
  $CFG->dirroot = '/home/yourAccountName/public_html';
  $CFG->dataroot = '/home/yourAccountName/moodledata';
  

Another possible cause of this problem is that sessions are not configured properly on the server. You can test this by calling the script http://yourserver/moodle/lib/session-test.php.

If your server is on shared hosting check that you have sufficient disk space quota. An insufficient quota will prevent new sessions being created and nobody will be able to login.

Carefully check the permissions in your 'moodledata' area. The web server needs to be able to write to the 'sessions' subdirectory.

Finally, check the bottom of the config.php file. Make sure there is nothing after the ?>, this means no characters, no spaces, no carriage returns.

Top


I want to use a dedicated server for Moodle, but how reliable is Moodle together with EasyPHP?

See Installation guide for Windows using EasyPHP. A dedicated machine for your production Moodle site is a good idea. EasyPHP, Fantastico and even XAMPP are designed to get a site up and running quickly but will still need to be adjusted for a production site.

Another option for an intranet (classroom or school based network) clean install on a new XP Pro server would be one of the Windows Installer Package. This package uses the XAMPP installer to automatically install and configure Apache Server, MySQL and PHP. Once installation is complete and setup and running, all you may need do is to edit the config.php file to show your IP address.

The XAMPP installer package may reduce effective security on an public internet site, so be careful with it. The other issue is the the XAMPP installer is resource hungry, so it does not easily handle a lot of users simultaneously. However unless your Students are whiz-kids, and really know their PHP and MySQL, one of the Windows package should be secure enough for your intranet.


I have a lot of Staff, how can I enter them as Users quickly?

You can set up a bulk upload of Users, irrespective of what their Role in the Moodle will be by using a flat file. It is simple to do, but like a lot of things with PHP, it must be exactly right or it does not work.

  1. Create a new file in a text editor (but not Windows Notepad, it does not render the UTF-8 character set.)
  2. Add fields in this order, and they must be separated by a comma, username, password, firstname, lastname, email
  3. Save the file in a UTF-8 format, this is apparently safer than other formats and use the file extension *.csv
  4. Go to Administration > Users > Accounts > Upload users
  5. Browse for the file and click "Upload Users".
 As an alternative, you can also use MS-Excel, saving the file as a csv.

As the file is uploaded, Moodle will do validity checks on usernames, passwords and email addresses. Ensure that all fields have legal characters, no underscores or slashes.

If you want to make sure that Users will change their passwords as soon as they log-on, use the same password for all Users - "changeme" (without the quotes, of course).

If you want to make sure that Users enter the correct email address, then you can leave this field blank, in 1.9.+ only apparently.

For more information you can look at Upload users.

Can I issue fake email addresses for Users who have no email when I upload the User file?

Yes. A generic fake email like aname@myhome.org is acceptable in Moodle. The address must look like an email address format. Further information on alternatives can be found at the No Email page. (And a quiet aside "How about gmail or yahoo mail or even hotmail", is anyone without an email today?)

Top

How do I give my users a dummy email when I'm using LDAP?

When using Active Directory you can map the email address field to "userPrincipalName". This will populate your users email address with their AD username@yourdomain email.

We are getting the message: ERROR: Could not instantiate mail function.

If you are using a Linux distro, then ensure that your SMTP server is working as it should. If you are using Windows then you have to install an SMTP server. This server can be any valid Windows mail server. Mercury mail is one such. If you need to then you can go to your email program and look at its preferences and see where it is pointing to use this same mail server.

The email server is working, but the emails are not getting where they should be going

Usually your firewall is preventing emails getting out. Check to make sure the firewall has an exception rule set. If it does, then check your virus software, McAfee's has a small firewall that can prevent emails being sent.

When I try to select some pages in the Admin block, I get a "Timed Out" message and the screen reverts to the login page

This could be caused by many things. The best guess, would be that the installation process made some mistakes. For example, a MySQL, PHP or Apache setting or combination of settings were not configured correctly for the site. If it is a new site, it is probably better to not waste time on trying to find out which line in a config file needs to be changed, but first try and reinstall.

Why am I just not getting how Permissions and Roles work?

A new site administrator's understanding of permissions and Roles is usually based on their networking environment knowledge. In short: we log in, we are given a set of permission based on that log in and these permissions determine what we can do in a single context. This "linear" explanation is based on what we see, not what really happens, of course.

In Moodle, permissions are also known as "capabilities" and they reside with the Role and can be dependent upon the users location/activity in Moodle. The log-in ID does not carry any traditional network permissions with it, but an initial Role. So stop worrying about trying to learn about permissions, concentrate on the Role and how they work. Once you have a solid grasp of that, then you can worry about setting permissions.

Roles are context based. The best advice is DO NOT assign any roles from the Front Page. If you assign a Role in the Front Page, that Role is assigned to every part of the site. A best practice is to only assign Roles within the context of a Course or a Block.

What different roles can apply to users as they log in and move around inside the Moodle?

Only one of many roles (a set of permissions) can be given to a users at log in. As the user moves to different pages, they can be specifically or be generically (they belong to a group of users) assigned new roles for that just that area. Here are some concepts that might help.

Before anyone logs in to the Moodle, sitting at the log in page, or public front page, depending how you have set your Moodle up, they should have the role of "Guest". It is possible to change this but be careful.

In Moodle, when anyone with a user name and password logs into the Moodle, they become an "Authenticated User". How they are authenticated is different from their Role.

For reasons explained below, you may want your Users to become "Students" while in the Front Page. (Be careful here, read on below before assigning roles.)

When they click to go to a Category page, they revert to an "Authenticated User". Once there, their User Name is scanned and their permissions are calculated and if they have permissions, they can have sufficient rights to be a "Teacher" or a "Course Creator" or even an "Administrator".

When they click to go to a Course, they may have the rights to be an "Administrator", a "Course Creator", a "Teacher" or a "Student" in that Course.

This does not mean they have any of those rights in any other page or Course.

Top

How can I be sure I am assigning Roles correctly?

Assigning Roles should be based purely on the page or activity (the context) and the role you want that person(s) to play.

The first question is "what do I want this person to be able to do?" For most people using the Moodle, the obvious Role will be that of Student. Others will need to be Course Creators or Teachers. Some Teachers will be Course Creators. Really, the first question should be "what do I want this person to be able to do HERE?"

Essentially, if you get it wrong, then your courses can be wrecked. The basic rules are simple, "Do not assign a role in the Front Page." and "Assign roles in the context of the course or page."

Be aware, if you create an Administrator role in a Category, that will apply across all sub-Categories and Courses in that Category. It will not apply to ANY other Category, sub-Categories or Courses. If someone is assigned the Role of "Teacher" at a Category level, that Role will apply in ALL sub-Categories and Courses in that Category.

How to diagnose a Hacked Moodle Site?

This item is not designed to frighten anyone about Moodle security, just sometimes a hacker can be a little better than our protective systems. Like any popular web based program, Moodle is in a constant game of "catch-up" with latest hacker techniques. Please check the Security page for more tips and procedures.

First thing to do is to check the config.php file in your Moodle folder. This controls the basic settings. Check for anything that is written between these two lines:

<?php /// Moodle Configuration File
 
unset($CFG);

If something is there delete it. Once it is deleted, check the file permissions and make sure that the file is owned by the administrator and is set for read only.

There are other ways Moodle has been hacked, but usually, the files targeted are the config.php and index.php. Unfortunately, sometimes all the .php files are attacked. Upgrading Moodle, backing up everything, checking permissions and folder locations are some of the things you can do to either reduce the risk or recover quickly. With a large installed base of users and an active community, most hacks are discovered and reported quickly, and solutions found.

For more information, go to Hacked site recovery page. This offers more detailed information.

How do I set the maximum upload file size limit?

This is probably the most frequently asked question, and the answer is not that straightforward. The changes that need be made are the same in all versions of Moodle, just in different OS' they need be made in different places. Upload file sizes are restricted in a number of ways and each one in this list restricts the following ones:

 Server level
 Moodle site level
 Course level
 Activity level

Perhaps the best place to find this information is at File upload size There is a full explanation for a number of different OSs but there are a few missing.

This is a contentious issue, mainly because you might think that it should be set inside the Moodle. Unfortunately, this is not so, these are environment issues that need to be set in the server and PHP folders, Moodle cannot work outside itself.

Top

Installation on a Windows or a Linux server

A great many Moodle documentation pages are on this subject. The Windows version of Moodle is workable, but for a larger production (a site with many users, courses and volume) Linux is the strongly recommended operating system. The simple truth is that it is easier to mirror and load share using Linux than Windows. Building and learning how to use Moodle is easier in Windows. However in the longer term, a Linux based installation is far stronger and thus a much better learning environment to start with for any Administrator. It is suggested that if you can, set up a Moodle in both environments, Ubuntu, SuseLinux and Debian are now relatively easy to install and configure. As for Windows, XP seems more stable than Vista. Use a Home versions in either MS operating system is not recommended.

Linux is probably better at things like clustering and mirroring. Moodle Clusters or Mirroring Moodle are two pages which are developing information about these topics that are useful for larger or more active sites.

I upgraded Ubuntu from 8.10 to 9.04 and have lost my Moodle - where did it go?

In this situation, usually, you will get the Apache "It works" message but when you try to access the Moodle, it will come back with an error message telling you it cannot locate the Moodle. You can try to locate the Moodle yourself, and update the various files, like config.php:

 unset($CFG);
 $CFG->dbtype = 'mysql';
 $CFG->dbhost = 'localhost';
 $CFG->dbname = 'moodle';
 $CFG->dbuser = 'moodleuser';
 $CFG->dbpass = 'xxxx';
 $CFG->prefix = 'mdl_';
 $CFG->dbpersist = "false";
 $CFG->wwwroot = 'http://10.90.56.110';
 $CFG->dirroot = '/var/www/moodle';
 $CFG->dataroot = '/var/moodledata';
 $CFG->directorypermissions = 00777;
 $CFG->admin = 'admin';
 require_once("$CFG->dirroot/lib/setup.php")

Reedit and change wwwroot to to what your IP address is, even if it has not changed, re-enter the path.

Check the actual location and make sure the dirroot and dataroot are also correct. Try it and if it works, then you have successfully re-configured the Moodle, but do not count on it. This method seems pretty hit and miss.

It may be faster and safer to just reinstall the Moodle, so make sure you have a backup prepared to go if needed.

I have just taken over a Moodle and now can't log in to it as Admin and others get the message "Your session has timed out. Please login again.".

You should already know the version of Moodle you are using, (if you are not sure then go to Notifications and in the bottom left corner of the centre block you will see the Version + (build number)).

If you are using v1.6, you may want to consider dropping the site entirely. Reinstalling a newer version should solve the essential problem. v1.6 experimented with cookieless sessions which work by appending a session id to either every url or to hidden form fields in html pages. This allowed php to track every session and record it. The problem is that that data is stored in the moodledata folder, and that takes up space which eventually takes up so much room the server will object and deny people access. To immediately solve this problem enter the /moodledata/sessions folder and delete all the "session" files.

If this is the problem, then you may be getting messages from your ISP telling you that you are now over quota, so you need to reduce the amount of filespace that your Moodle is occupying.

If you are already using a later version of Moodle, then you should be communicating with your ISP to see what the problem may be. Alternatively, you may be able to access the log files, in which case you may be able to query each element of the Moodle. It is also recommended that you constantly update your Moodle site. You can start considering this option using CVS files.

Top

Help! My site broke - How do I fix it?

Moodle was made to be broken - seriously. Quite often these statements are made:

My site has suddenly broken, only the header will display on any page except for user login.
As soon as anyone is logged in, only the header shows.
The site was working perfectly but not now.

Or variations on that theme.

Why these things happen is usually you have done something or changed something or someone else has done it and the site falls over. You can spend hours trying to fix it, but in most cases it is just better to dump it and start again, a lot less time consuming.

  1. Completely delete your entire Moodle, everything must go.
  2. Reinstall Moodle using exactly the same settings you started with.
  3. Overwrite the database from your Site backup.

Alternatively, you can just restore from your Site backup.

This is why you must backup regularly. The bigger the database, the more frequent the backups required.

TIP: Keep two Moodles, one public and one private. Do things to the private Moodle and test them out. If it works then you can employ the same change in your public Moodle. If it doesn't then you have not damaged anything. It is much easier to deliberately break and repair or re-install your small private Moodle than to try and do it to a public Moodle.

Another reason a site is broken is because it has been hacked, which is another issue.

All students are enrolling in every course

Your site is probably assigning a student role initially to a new users. You might want to change this setting. This is another example of the contextual nature of Roles.

First check to see who is assigned the student role at the site level. Go to the site administration block > users > permissions > assign system roles - there should be nobody in the student role. Move users you do not want to have student role (be able to enroll in most courses), out of this role into the Potential user column.

To change the default user role, in the site administration block > users > permissions > user policies, look for "Default role for all users". Make sure the default user in "Authenticated user" and not "Student".

Confused about why this is logical? We have been checking the default user setting for the entire Moodle site. In MoodleSpeak, the site context always applies until another context specifically changes the role. Remember, students take courses. Some sites want all new users to be able to be automatically enrolled in all site courses. So from the first moment that users logs into these sites, the site role default is that of student. Other Moodle sites want to be more selective. Thus they might assign the default site role as "authenticated user". This will allow each course to determine the new role (probably a student role) when the user tries to enter it.

In correcting the student issue, you may have created another problem.: your Site news forum has disappeared. See below.

Top

I want to hide the Latest News Block from anyone not logged in.

This example will work for all blocks.

  1. Log in as an Administrator then turn editing on
  2. Click on the assign roles icon (usually the first icon and looks like Assignrolescmf01.gif one of these) in the header of the block to be hidden, in this case the Latest News block. This takes you to the Assign roles page.
  3. Click the "Override permissions" tab.
  4. Select the role "Guest".
  5. Reset the capability moodle/block:view to prevent.
  6. Click the "Save changes" button.

This should hide the block from everyone until they have logged in.

My site news forum disappeared from the front page for students

The site news forum disappeared from the Front Page after a successful log in for your students. You have forced all logged in users to be subscribed via the forum settings. Check to see if some of all of your users are no longer "students" or teachers in the Context of the Front Page.

Go to Site Administration block > Front Page > Front Page settings> Default frontpage role. Change to Student.

This affects a number of things. Please note that a role in the Front page is like a role in a course and it does not apply to other courses.

The Staff at my School want to see what other Staff Members are doing. Can I set this up easily?

Yes, you can. In many instances a lot of Staff Members will want to look at what their colleagues are doing and make sure they are working within whatever academic parameters need to be met. While this may seem intrusive for a lot of teachers, it is one way of getting a cross-fertilization of ideas across different curricular areas.

However, as the number of courses grow, this can mean that the teachers "My courses" block can grow to a ridiculous length. To get around this issue, set up a special user that is enrolled in all courses. If all Staff know the User ID they can access other courses easily. To limit this though, you may consider using a different special users for each subject area or discipline or category. Make that ID available only to those people delivering courses in that subject, discipline, or category. You might also create a special role for that user to limit their activities.

I just migrated my Moodle to a server and now no-one can see it. What happened?

Usually the issue is a simple one and can be fixed with your text editor:

  1. Open your text editor and navigate to your config.php file in the Moodle root.
  2. Look for the line $CFG->wwwroot = 'http://localhost/';
  3. Change the "localhost" to your server IP address, e.g.$CFG->wwwroot = 'http://10.45.78.165/';
  4. Save and exit your file editor

This should now work. What it should also do is to update all your internal links, courses, images and everything to reflect the IP address.

I am having trouble with adding blocks now and do not know why

Occasionally you may want to upgrade PHP or install a later version of Apache or IIS or something else. When this happens, some compatibility issues can arise. For example, the blocks problem can occur if you install PHP v5.3.0, but if you install the PHP v5.2.9 add-on it works fine.

Top

I hid the administration menu from the blocks page and now I have no way of un-hiding any module blocks back on because I can't get to the admin menu to unhide anything.

Log into your Moodle and then type this:

 (http://www.mysitename.org/)admin/blocks.php

into the address bar. This will take you directly to the blocks page and you will be able to unhide anything.

How do I restore an older graphics course that is way over the file upload limit?

This happens when you do not want to change the maxfile upload on your Moodle site but you do have access to the moodledata folder via FTP or some other program. There are two answers here, but they are in fact the same thing, just executed in different ways.

  • If you DO NOT know the settings or Moodle ID of the course here is the quick and dirty:

FTP your backup zip file to the site files folder, which is normally the folder named "1" inside the Moodledata folder. Go to Site Administration > Front Page > Front Page restore and go through the restore options.

Restore the course to a new course and remember to delete the zip file from the front page files or from the moodledata/1 folder. All files in the site files folder are visible to all Users. It is a good idea to backup your new course right away.

  • Longer method with detailed instructions:

Log into Moodle and create a new course, Ideally this will have the same course settings as the old course. Have your backup of the old course or the zip file of all the images you want to upload handy.

Enter the new course and go to Course Administration > Files. Inside Files, upload a new small file. This will create a new folder in your moodledata with the same ## as your course id. Return to the course homepage. Note the course ID in your browser address bar. For example purposes the course ID is 42. You can minimize your Moodle window and return to your FTP program.

Connect to your Moodle via FTP and look for the Moodledata folder. Inside Moodledata look for the folder with the course id, 42 in our example (/moodledata/42). Copy your zip file or what ever you want there.

In your Moodle, look in your files folder. You will see the files you transfered there. If it is a course backup, you can select the restore link right now, or unzip a file that contains all your images and sub-directories.

As you can see, if you are dealing with several courses, you really just need one course to dump the large zip files via FTP or your favorite file transfer program. Then you merely have to go to the file folder and restore the course backups to a new course. You might want to go back and delete the course backups that you transfered so students do not see them.

Students seem to be disappearing from courses and I cannot see why?

Sometimes we forget that if Students can enroll themselves, they can also unenroll themselves. Go to Administration > Users > Permissions > Define roles and select Students. In Permissions reset "Unassign own roles moodle/role:unassignself" to Prevent.

Which Enrollment option should I be using?

There is no easy answer here, depends on the needs of your site. Internal enrollments is the default setting. This means that you enter the students onto the Users list via a flat file, or dynamically authorize them with LADP and students can be enrolled when courses are created by Teachers or Course Creators, or later when they are given acccess via enrollment keys or if there is no security key, they can enroll anytime.

For a commercial site, you need to develop a strategy depending on what it is you are offering. The PayPal and Authorize.Net can set up the payment end of things, and an email based self-enrollment, using Captcha, becomes viable.

Here is a discussion about this topic. As you can see, this is an ongoing issue.

When I created courses, no summary icon becomes visible in the Categories screen.

Usually, in any web page, if an image does not display it is not where it is supposed to be. In Moodle this is not necessarily so, but because a number of settings have been reset and images are not included. when this happens the theme is using custom pix (in theme config.php $THEME->custompix = true; ) and even if the image file does exist it is not necessarily used unless Administration ► Miscellaneous ► Experimental ► Smartpix feature is enabled. Seems that some themes require different settings than others.

Why can I not seem to get files to overwrite older files? Some do not delete either, we just keep getting older files, why?

This can be a bit of a nuisance, but it has to do with Moodle itself. Moodle relies heavily on the cache, and files that are uploaded, downloaded and so on are placed into the cache. You can try emptying the cache, before you delete a file or delete then empty the cache, then upload the newer version. Or, delete the older file, then change the name of the newer file, upload that and make reference to the newer file. Assignment uploads overwrite the existing file in Moodle, but the cache gets in the way there too. Upload a file using version numbers, the older file will be overwritten.

See also