There are many hosted LMS solutions on the market, some with very robust features. There are also free open-source solution such as Moodle that can be customized. However, the hosted solutions have recurring costs and, unless you have many courses, students, and constantly-changing curriculum, they can tend to be overkill.
A client of mine has one course that typically does not need regular curriculum updating. The course is offered at various random times throughout the year. They do offer the course in three ways: all-online, all-onsite, or a mixture of online-onsite. I designed a complete system that handles the course scheduling, online student registration (with payment gateway), automated access to online content upon payment, and the LMS itself. The course consists of PDF readings and embedded videos, with multiple-choice quizzes at the end of each lesson.
Here is a screen capture of a demo learner completing lesson 4, part 1. A progress bar shows learner progress.
The trainer can completely monitor progress for each online learner throughout the process:
With this design, there is no recurring cost to the client, just one-time costs for any needed content edits.