Video: Automating updates with cron

During the installation process or while poking around Drupal's administration pages on your own, you might have noticed something like 'cron has not run' or 'To check for updates you may need to run cron,' or you might have installed the module that fetches information periodically from the Internet such as the news aggregator but then find that it's not working. That's because Drupal has to run certain system level processes periodically but requires an outside program to do so with the permissions required. That program is called cron, and we'll show you how to configure it to make Drupal happy. We will also tell you about a handy Drupal module called poormanscron which we will learn to install later in the course.

Drupal is a free, open-source content management system (CMS) for a variety of platforms. It has a robust user community and easy-to-use administration features. Drupal Essential Training covers all the important aspects of installing, configuring, customizing, and maintaining a Drupal-powered website. Instructor Tom Geller explores blogs, discussion forums, member profiles, and other features while demonstrating the steps required to make Drupal perform. He also teaches fundamental concepts and skills along the way, including installation, backups, and updates; security and permissions; flexible page layouts and CSS; menu navigation; and performance monitoring and disaster recovery. He also discusses how to select and install the community-supported modules that further expand Drupal's capabilities, and gives experienced PHP programmers tips on customizing page templates. Example files accompany the course.

Automating updates with cron

During the installation process or while poking around Drupal's administrationpages on your own, you might have noticed something like 'cron has not run' or'To check for updates you may need to run cron,' or you might have installed themodule that fetches information periodically from the Internet such as the newsaggregator but then find that it's not working. That's because Drupal has torun certain system level processes periodically but requires an outside programto do so with the permissions required. That program is called cron, and we'llshow you how to configure it to make Drupal happy. We will also tell youabout a handy Drupal module called poormanscron which we will learn to installlater in the course.

Essentially your goal is to force a visit to a certain Drupal page once in awhile. That page is cron.php, which is spelled cron.php, and the file islocated at the top of your Drupal directory. So by typing in your side address,in our case that's localhost followed by cron.php. We can visit that page;let's do that now. Looks like nothing happened, doesn't it?Well let's go back to our Drupal site and take a look at our administrationpages and then go down to the Status report and we will see something here,cron maintenance tasks, Last run 12 sec ago. That was when we visited thecron.php page. So even though it doesn't have any interface back to us, it isdoing something and what cron does maybe very important to your Drupal site.

Your goal is to make that process happen occasionally and automatically. cronis your tool. For Drupal users, the number one place for instructions on how touse cron is drupal.org/cron. There you will see all sorts of information abouthow to configure cron. There are essentially three ways to make cron run. Thethree ways to run cron are first by running it on your computer that is to sayon the server. Secondly by using an outside cron helper such as webcron.org andthird by using the module we mentioned earlier which is called poormanscron. Wewill show you once again how to install that module in another video in the series.

We will show you how to edit the cron in UNIX, for Windows users the taskscheduler function is a good replacement for cron. A good explanation of how touse this function can be found at the drupal.org website. Follow the URL belowfor more information.In order to edit at UNIX, on the Mac you will have to go into a Terminalprogram, if you are using a Remote Server, you may have to use a Shell program.On the Mac we double-click on the Terminal program and from here we can entercommands as we like. The first thing that we need to do is find the programthat's going to visit the cron page. In other words a text-based web browser.

The two big ones are called lynx and wget and there is also a curl. We will tryfinding each of these. In UNIX, you can do so by saying, whereis lynx. We don'tseem to have that. So let's try whereis wget. Finally whereis curl. Aha! We dohave curl. We take a note of that location which in this case is usr/bin/curl.Now that we know how we will visit that cron.php page on your Drupal site, weneed to make it happen periodically.

cron is unusual, it relies on the precise configuration of a text file that youcan't edit directly, and it's an obscure and obfuscated format. In UNIX you canfigure cron through a command line interface which is called crontab. The waythat we do that is by typing crontab-e which means edit and there it is. Rightnow our crontab is empty. I am going to tell you the exact keys to enterbecause we are now in a program called vi, you maybe using a different sort ofeditor on your server. Depending on which web browser you found whether it'slynx or wget or curl, you can find instructions on how to set up your crontabin the scripts folder which is inside your Drupal installation.

So I am going to go there right now. Inside here you will find some samplescripts since the one that we found was called curl, I am going to open thatup. So here we have opened up the sample curl command then I am going to goback to my Terminal and enter that command. It's curl --silent --compressed andthen we need to put in the address of the server, in this case instead ofexample.com, we say http://localhost/cron.php.

Now our job is not completely finished because although we have given the commandwe haven't yet set how frequently or when we want that command to be run.For that once again we can go back to the page on drupal.org, Configuring cron jobs,and it will give you a sense of how crontabs are setup.The way that it works is that there are five fields at the beginning, whichstand for minutes, hours, days of the month, months of the year and then day ofthe week. We don't have to worry about any of those last four because we aregoing to want our cron to run at least once an hour.

So in this first field we will say at which point after the hour we want it torun. In this example that's given on drupal.org, it runs at 45 minutes afterthe hour. Let's go back to our example and make it happen also at 45 minutesafter the hour.So 45 ****, you can also make it run much more frequently than that, forexample every minute if you were to replace the 45 with 0-59. For otherinformation about the various kinds of ways you can control cron, look on thecron page on the drupal.org website.

The second thing that we need to do is we have to tell our computer whereexactly we are going to find that cron program. Now, you might remember that wehad usr/bin/curl, well we enter that here /usr/bin/curl.So now we have entered when we want cron to run, what program we want it torun, what sort of options we want it to run with and again this was just copiedfrom the text that's in that scripts folder and exactly where we want it torun. In order to get out of that we will hit Escape on our keyboard, then :wqif you are using VI. Again, if you are using a different editor you will usewhatever commands you used to get out of that and hit Return.

Now we are told that we have installed the new crontab, and we are ready to go.Now we have installed cron, so our Drupal website will be updated at least oncean hour, in our case it will happen at 45 minutes after each hour.It's unfortunate that something so critical to Drupal's operation is so hard toconfigure but the good news is you have one other option. If you go towebcron.org, this is an outside service that would let you set up a cron systemon your Drupal site from an outside place. This is somewhat complex to set upas well and we won't go into all the details. If you are like me, speak Englishas your first language, the first thing you will want to do is click on theBritish flag down here and then follow the instructions.

The good news is once you have cron setup whether it's through webcron.org,poormanscron or the command line interface I gave you before; you pretty muchnever have to touch it again. Good luck!

Q: While following along to the installation instructions in the “Installing WAMP and Drupal on Windows” chapter in the Drupal Essential Training title, an error occurs when attempting to open the local host page. Nothing appears except for an error reading “WAMPSERVER server offline.” What is causing this?

Q: After installing XAMPP and running Drupal for the first time, the Administration menu does not appear. What is the reason for this?

A: There are several possible problems. Here are some likely solutions. (These may also solve problems encountered with other AMP stacks.)

Increase XAMPP's PHP allocation.

Check to make sure all XAMPP's paths are correct and that permissions are correct. If the database information appears, but not Drupal's supporting files, and an included theme is being used, the supporting files will be in the /modules folder.

Q: In the "Using the example files" movie, the method of importing information to the database is shown, using the backup in Chapter 10. When attempting to do this, the following error is shown: "No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16." The system is running the latest versions of Apache, PhP and MySQL, on Windows Vista. What could be causing the problem?

That's especially true if you're using WAMP, which only gives PHP 2MB of memory, when it really needs at least 16MB.

You'll see the issue if you go to the MySQL-controlling phpMyAdmin screen (probably at http://localhost/phpMyAdmin) and click "Import": The maximum file size allowed is 2,048K. That's only 2MB, and the databases for most Drupal sites are much larger than that. (The example site for Drupal Essential Training gets as big as 5MB.) The video "Installing WAMP and Drupal on Windows" shows (at around 3:30) where the php.ini file is, but here are some more-complete instructions to increase that memory limit.

Click the WAMP icon in your system tray.

Select "PHP". In the side menu, select "php.ini" to open a file containing PHP's configuration options.

Now go back to that "Import" screen in phpMyAdmin: You should notice that the limit has changed.

Q: I don't remember the default username and password used demonstrate Drupal.

A: The default username used in the course is "admin"; the default password is "booth".

Q: How can I change Drupal's administrative username and password?

A: If for some reason the default exercise file username (admin) and password (booth) don't work, you can change them in the database itself using phpMyAdmin. (This technique is demonstrated in a video from Chapter 8, "Recovering from disasters".)

Open your Drupal database with phpMyAdmin.

Go to the "users" table. Click the Browse icon.

For the row where uid = 1, click the Edit icon. (Note the value under the "Name" column: That's the administrator's username.)

In the "pass" row, select "MD5" under the "Function" column

In the same row, enter your new password under the "Value" column.

At the bottom of the screen, click the "Go" button. You should now be able to log in with that username and new password.

Q: In Windows Vista, the WAMP icon disappears from the system tray after a certain amount of time. How do I get it to reappear?

A: To make the WAMP icon reappear (so that you can access localhost, phpmyadmin, php.ini, etc.), you have to activate the "start WAMP server" icon (from start menu, desktop or wherever). The system tray icon will reappear.

Q: My .htaccess file disappeared. What caused this?

A: A few times during the Drupal Essential Training video series, the instructor says to copy a Drupal installation by selecting all the files in the folder and then "dragging and dropping" them, either to a server or another location on your local computer. This is not the best way to do so, as the hidden file ".htaccess" will not be copied.

There are two ways to get around that problem:

When installing Drupal for the first time: Instead of copying files from the Drupal folder, move the entire folder to its target location and rename it. This is the easiest solution for those without experience with Unix.

Use the command-line interface to copy the .htaccess file.

Sorry for the error.

Q: In the video, the instructor says the current version of Drupal is 6.3, but on the drupal.org site, the latest version is 6.17. Which is the newer version of Drupal?

A: Drupal 6.17 is newer than version 6.3. For some reason, the the version numbers go 6.3, 6.4... 6.9, 6.10... 6.17. It’s counter-intuitive, but that’s the order.

Q: My WAMP phpMyadmin will not allow me to upload the exercise files. It returns this message: "No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16." There was no previous database to drop, so what do I need to do to make this work?

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.

Already a member ?

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships.
Learn more

Upgrade to our Annual Premium Membership today and get even more value from your lynda.com subscription:

“In a way, I feel like you are rooting for me. Like you are really invested in my experience, and want me to get as much out of these courses as possible this is the best place to start on your journey to learning new material.”— Nadine H.

Thanks for signing up.

We’ll send you a confirmation email shortly.

Sign up and receive emails about lynda.com and our online training library:

new course releases

newsletter

general communications

special notices

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

new course releases

newsletter

general communications

special notices

Here’s our privacy policy with more details about how we handle your information.