This page explains some things about the MFPL servers and how to use MFPL hosting tools to create and manage websites. First draft by Patrick Gibbs in December, 2012.

First, appreciation for the MFPL support team! These fantastic humans do much of the nitty-gritty work of keeping this hosting infrastructure running. Learn more about the support team and see who's on it (though the list is a bit outdated) at Support Team.

So that you get an idea of why I find certain things seem worth mentioning about MFPL hosting -- my experience (says Patrick) includes the following:

  • setting up a Drupal + CiviCRM + Ubercart instance on cheap ($5/month) shared hosting.
  • administering a Moodle installation via the web interface.
  • doing basic command line work in GNU/Linux on my laptop.
  • writing a shell script once, and refining it.
  • playing with XAMPP when I used a Mac.

I had very little experience with SSH, and had never used IRC. I joined May First / People Link in August 2012.

Understanding May First servers

Start with the Members' Control Panel:

On previous hosting, I used cPanel. Here, there's custom software called red that runs a custom control panel. Look around and see what's possible. Things to notice:

  • On each page there's a line on the right side that says something like " Your primary host is: (". Knowing this enables connecting to the server via ssh (more on that later).

Each website is a "hosting order": I currently have two hosting orders: one for my personal website, and one for an organization whose website I manage. Hosting orders are made automatically (I think, although maybe the

Connecting via ssh or ftp:

There are other pages that explain this in more detail (to do: find them and link to them). I do this:

$ ssh

Wondering which server your site lives on? (In the command above, patrickgibbs is on marx.) Look in the Members' Control Panel (see section above).

I use Filezilla for FTP, and the connection details are the same as for ssh.

Welcome to your new /home:

Once logged in via ssh or ftp, you can look around and probably see something like this:

0 patrickgibbs@marx:~$ pwd
0 patrickgibbs@marx:~$ ls -Alh
total 88K
-rw------- 1 patrickgibbs patrickgibbs 3.6K Dec  7 17:29 .bash_history
-rw-r--r-- 1 patrickgibbs patrickgibbs  220 Apr 10  2010 .bash_logout
-rw-r--r-- 1 patrickgibbs patrickgibbs 3.2K Jan 30  2012 .bashrc
drwxr-xr-x 2 patrickgibbs patrickgibbs 4.0K Nov 29 01:00 .drush
drwxr-xr-x 3 patrickgibbs patrickgibbs 4.0K Dec  5 23:57 .emacs.d
-rw------- 1 patrickgibbs patrickgibbs 7.2K Dec 14 18:37 .histfile
drwxr-xr-x 2 patrickgibbs patrickgibbs 4.0K Jan 30  2012 .monkeysphere
lrwxrwxrwx 1 patrickgibbs root           54 Aug 27 12:15 -> /home/members/patrick0/sites/
-rw-r--r-- 1 patrickgibbs patrickgibbs  675 Apr 10  2010 .profile
drwxr-xr-x 2 patrickgibbs patrickgibbs 4.0K Jan 30  2012 .ssh
drwxr-xr-x 3 patrickgibbs patrickgibbs 4.0K Sep 10 20:56 .subversion
-rw-r--r-- 1 patrickgibbs patrickgibbs  34K Dec  2 22:14 .zcompdump
-rw-r--r-- 1 patrickgibbs patrickgibbs  393 Dec  2 22:14 .zshrc
0 patrickgibbs@marx:~$ 

You might not have.drush, .emacs.d, or .zshrc until you use emacs, drush, or zsh.

Things to notice:

  • .monkeysphere has something to do with SSH fingerprints and encryption keys, I think. I haven't investigated yet. (to do: link to page about ssh connecting and fingerprints)
  • the website directory is a symlink (symbolic link) that points up a few directories, and right now I'm already inside it, in my home folder, ~.

Let's look inside that website directory:

0 patrickgibbs@marx:~$ pwd
0 patrickgibbs@marx:~$ cd ../..
0 patrickgibbs@marx:/home/members/patrick0/sites/$ ls -Alh
total 32K
drwxr-x---  2 root         patrickgibbs 4.0K Nov  7 04:35 backups
drwxr-xr-x  2 patrickgibbs patrickgibbs 4.0K Aug 27 12:15 bin
drwxrwxr-x  2 root         patrickgibbs 4.0K Aug 27 12:15 cgi-bin
drwxrwxr-x  4 root         patrickgibbs 4.0K Dec 14 16:30 include
drwxr-x---  2 root         patrickgibbs 4.0K Dec 16 06:26 logs
drwxr-xr-x  3 root         root         4.0K Aug 27 12:15 .red
drwxr-xr-x  3 root         root         4.0K Aug 27 12:15 users
drwxrwxr-x 14 root         patrickgibbs 4.0K Dec  7 17:15 web
0 patrickgibbs@marx:/home/members/patrick0/sites/$ 


I don't know what's in here. Probably backups... of what?

0 patrickgibbs@marx:/home/members/patrick0/sites/$ ls -AlhR backups/
total 508K
-rw-r----- 1 root patrickgibbs 190K Dec 16 01:33 patrickgibb_civi.sql.gz
-rw-r----- 1 root patrickgibbs  89K Dec 16 01:33 patrickgibb_drup.sql.gz
-rw-r----- 1 root patrickgibbs 188K Dec 16 01:33 patrickgibb_wprs.sql.gz
-rw-r----- 1 root patrickgibbs  24K Dec 16 01:33 patrickgi_drup1.sql.gz
0 patrickgibbs@marx:/home/members/patrick0/sites/$ 

MySQL database backups so far. How did they get here? What's the schedule for backups?


Don't know when I would use this.

0 patrickgibbs@marx:/home/members/patrick0/sites/$ ls -AlhR bin/
total 4.0K
-rwxr-xr-x 1 patrickgibbs patrickgibbs 123 Aug 27 12:15 php-cgi
0 patrickgibbs@marx:/home/members/patrick0/sites/$ 


I know this has something to do with websites. I've seen cgi-bin in URLs at other websites. Beyond that, I don't know. It's empty.


This directory is accessible by the www-data user (the Apache web server user, although most stuff gets executed by your user, not by www-data or some other Apache user). This is the place to put things that you want accessible by that user -- so far, the only thing I've put there is a .htpasswd file for a Trac instance. Looks like php.ini lives here too, and I remember editing that file a few times during past projects on other servers.

127 patrickgibbs@marx:/home/members/patrick0/sites/$ ls -AlhR include/
total 8.0K
drwxr-xr-x 2 patrickgibbs patrickgibbs 4.0K Aug 27 12:15 php5
drwxr-xr-x 2 patrickgibbs patrickgibbs 4.0K Dec 14 16:30 trac

total 4.0K
-rw-r--r-- 1 patrickgibbs patrickgibbs 110 Aug 27 12:15 php.ini

total 4.0K
-rw-r--r-- 1 patrickgibbs patrickgibbs 46 Dec 14 18:19 trac.htpasswd
0 patrickgibbs@marx:/home/members/patrick0/sites/$ 


Useful logs and log backups here.

0 patrickgibbs@marx:/home/members/patrick0/sites/$ ls -AlhR logs/
total 196K
-rw-r--r-- 1 root adm  299 Dec 16 15:30 error.log
-rw-r--r-- 1 root adm  16K Dec 16 04:32 error.log.1
-rw-r--r-- 1 root adm 1.6K Dec  8 22:27 error.log.2.gz
-rw-r--r-- 1 root adm  319 Dec  1 22:13 error.log.3.gz
-rw-r--r-- 1 root adm  374 Nov 24 17:48 error.log.4.gz
-rw-r--r-- 1 root adm 3.7K Dec 16 15:30 web.log
-rw-r--r-- 1 root adm 135K Dec 16 05:49 web.log.1
-rw-r--r-- 1 root adm 6.4K Dec  9 04:27 web.log.2.gz
-rw-r--r-- 1 root adm 3.7K Dec  2 05:29 web.log.3.gz
-rw-r--r-- 1 root adm 4.5K Nov 25 05:54 web.log.4.gz
0 patrickgibbs@marx:/home/members/patrick0/sites/$ 

I recently learned this command to use while troubleshooting:

$ tail -f ~/
[Sun Dec 16 06:27:46 2012] [error] [client] File does not exist: /home/members/patrick0/sites/

More on Web Server Logs


This has something to do with the Members' Control Panel. I haven't touched anything in here, and it looks like I don't have permissions to anyways.

0 patrickgibbs@marx:/home/members/patrick0/sites/$ ls -AlhR .red/
total 4.0K
drwxr-xr-x 2 root root 4.0K Dec 14 16:34 apache2

total 12K
-rw-r--r-- 1 root root 1.1K Dec 14 16:34 apache.conf
-rw-r--r-- 1 root root 1.2K Dec  7 12:58 apache.conf~
-rw-r--r-- 1 root root 1.1K Dec 14 16:34 apache.conf.bak
0 patrickgibbs@marx:/home/members/patrick0/sites/$ 


This is like home on my laptop -- it has a directory for each user, and when you login you arrive in that directory by default, for me users/patrickgibbs is the ~ directory. We already looked inside.


This is where websites live! On those $5/month cPanel hosts I've used, this directory was called public_html or www. This starts out empty.

future changes to this page

  • add links to the participate page and the "beginners instructions" page
  • add a section about how to ask questions, or link to an explanatory page if one exists.
  • add more detailed explanation of Members' Control Panel, with screen shots, and responses to questions like "Where is Fantastico?" (or does a page like that already exist?)
Last modified 8 years ago Last modified on Dec 7, 2013, 3:45:54 PM