Raspberry Joomla!

Preamble Page Still Under Development
Joomla! 3.4.5 is the latest incarnation of the open source CMS (Content Management System).

Joomla! is an award-winning CMS, which enables you to build Web sites and powerful online applications. Many aspects, including its ease-of-use and extensibility, have made Joomla! the most popular Web site software available. Best of all, Joomla is an open source solution that is freely available to everyone. What's a content management system (CMS)?

A content management system is software that keeps track of every piece of content on your Web site, much like your local public library keeps track of books and stores them. Content can be simple text, photos, music, video, documents, or just about anything you can think of. A major advantage of using a CMS is that it requires almost no technical skill or knowledge to manage. Since the CMS manages all your content, you don't have to.

List of things you require minimum
Hardware Software (note only Windows and Linux recommendations I just don't know Mac options)
 * 1) RaspberryPi
 * 2) 4G Class4 SD Card (others will do but you do not actually need anything better than this)
 * 3) Power for your RPi
 * 4) A setup network connection to your router (Wireless or RJ45 10BaseT)
 * 5) A Computer with a connection to the internet (for getting software) preferably via the same router as the RPi
 * 1) A copy of Joomla! 2.5 available here | Joomla! Download page
 * 2) A copy of a free ssh client (recommend putty) | Putty download page.
 * 3) A copy of a free FTP client (recommend CoreFTP LE or Filezilla)(not essential but useful if you are not running from a Linux Computer)
 * 4) Some means of imaging your SD Card (Win32DiskImager or dd)(Note I use Win32DiskImager)
 * 5) Wheezy 2012-12-16
 * 6) LAMP install (instructions further down this page)
 * 7) php5 extensions for MySQL (instructions further down this page)
 * 8) vsftpd (not essential but useful if you are not running from a Linux Computer)
 * 9) something to unzip the Joomla! download (it's a standard zip file so WinZip or Zip7 or WinRar take your pick)

Joomla! is built on a LAMP Server and while installing this is available on another page it is copied here to save you jumping around pages.

LAMP is an acronym that stands for LinuxApacheMySQLPHP these are the components required to run a Dynamic HTML webpage and these are the first steps to build a LAMP webserver on a RaspberryPi.

If all you want to run is a basic webpage then the update and apache2 is all you need to install.

However to have a copy of Joomla! to play with you do need MySQL and PHP5 you will also find it easier to migrate Joomla! if you have an FTP server running and using Putty to log into the RPi with ssh to set things up.

I recommend the FTP server vsftpd (there's a faf setting this up but I will guide you through this).

Please do not be complacent - most of this stuff will need quite a bit of setting up but these installs will put the software in place and the default setting files ready to edit.

There's voices on the forum said I was opening up a "world of pain" for the noobs when I suggested LAMP ; I will be interested in the noob viewpoint post on the forum.

I would say "Caveat Emptor" but then it's all free so is supect it's just "Caveat"
Image The latest Wheezy (Currently 2012-12-16 then run and sort raspi-config as per your prefrences don't setup automatic start GUI also don't disable ssh if you are going to folow my method.

Remember if you get lost in this and give up re-image your SD Card and you can use it for whatever project you move on to.

I have built the project on a 4 Gig Class 4 Sandisk SD card obviouslyif you want to persue this to a bigger project then obviously a bigger card is an option and it may work on a 2Gig but thats a project for later.

Install Steps Post Raspi-config
login:pi password:raspberry #unless you have changed it sudo su apt-get update apt-get install apache2 apt-get install php5 apt-get install mysql-client mysql-server apt-get install php5-mysql php5-curl apt-get install vsftpd cd /var/www pico index.html do a bit of editing to personalise the file [Ctrl][x] [y] [Enter]

figure out the IP of theRPi assigned by DHCP put that IP address into your browser LAMP achieved

Ok there's a bunch of editing to get the FTP working (but it does) it fit's on a 2GB SD card and I don't think you will get a lot of web space forJoomla! stick it on a 4GB give yourself some room.

In addition I have not got a fixed IP sorted so I can port forward with confidence and there should be room to get a No-ip patch running I run NO-IP .com on a full Ubuntu server elaswhere on my router the aim of this setup is not to run Joomla! on the RPi in anger but to run it to learn how to setup a Joomla! site.

Nearly forgot Win32DiskImage read to create a new image file so you don't need to do it all again.

Here is an explination for our Noob readers.
Image Wheezy

I hope you know that this is about preparing your SD card for the coming events 4GB Class4 will do, 8GB better if you plan building a big site.

sort raspi-config

This is primarily about making all of the SD card available (resizing thing) there's a wiki page of its own on this step.

login:pi password:raspberry #unless you have changed it

Yes if you changed the password when you were in raspi-config you will need to use that new password

sudo su

Make yourself root the super user for the duration of this session.

apt-get update

Get the updates for the install program some of the later installs won't happen if you do not do this.

apt-get install apache2

Install the web host software Apache current version is 2

apt-get install php5

Install a version of PHP current version is 5

apt-get install mysql-client mysql-server

Install the MySQL stuff

At this point you have a LAMP install LinuxApacheMySQLPHP but to be fair you need some other stuff to help

apt-get install php5-mysql php5-curl

This is a couple of chunks of install that allow php to interact with MySQL

apt-get install vsftpd

This is a FTP Host

cd /var/www

Change Directory to /var/www Note the slash direction, the leading slash and the space after cd

pico index.html

Start the text editor pico (Alternatives vi and nano my personal pref is nano but instructions follow for pico)

do a bit of editing to personalise the file index.html in the www directory by default this is the automatically added test page for Apache2. If you type some new stuff in here then when you load the page from a browser you will know you have the right page and it's worked because you will see the text you added.

[Ctrl][x]

Command to exit pico

[y]

confirmation

[Enter]

execute command as Picard would say "Make it so"

What to do next
Well now you are going to need to grab a couple of tools that are going to make your life easier.

Your going to need a ssh client for Windows and Linux I reccomend Putty theres some eqivilent for the MAC I suppose I will have to look this up later if someone knows before can you add that edit here.

As for FTP (File Transfer Protocol)Windows use either CoreFTP LE (FTP client) free for home use or Filezilla if you are using Linux you do not need an FTP instalation stick your SD card into a card reader in your Linux computer and when the time comes use a drag and drop copy to the Joomla! stuff to the apropreate folder.

MAC (I have no idea)

I (personally) have found it easier for this project to run my Raspberry Headless (No monitor,keyboard,mouse) and logged in remotely using Putty. This means I can do everything from one screen one keyboard one mouse. I am using a WiFi connection but it works just as well with a wired ethernet.

Now you need to figure out the IP of the RPi assigned by DHCP. If you have a HDMI or Composite monitor it's on one of the last lines as you boot; if you have come to this page because you completed the blind login you will know the IP as it's the address you typed into Putty.

Now when it comes to setting up and using putty and the ssh link to your RPi there is a lot more information on using Putty on this page RPi A Method for ssh blind login.

Type that IP address into your browser. Note, it must be on a computer attached digitally or physically to the same router as your RaspberryPi as this is your intranet, not the internet - that slight change in spelling implies you are inside the router barrier and it's hardware fierewall if it has one.

LAMP achieved!

In addition I have got fixed IP sorted so I can port forward with confidence and there should be room to get a No-ip patch running.

My No-IP runs on my big (Lauughs out loud 80GB) Ubuntu server.

Port forwarding is something very Router/Hub specific but if you do manage it then your LAMP and your Joomla! instalation will shine on the Internet

It is unlikely to be bright at this time but shine it will. However this is about getting a Joomla! instalation to learn Joomla! not as a final solution.

FTP
Ok there is some editing of Linux files to get the FTP working (but it does I got it working with FileZilla and with CoreFTP LE )actually using FTP to transfer files between the PC and the Raspberry has an issue in that there is no root login you access the root (super user using the sudo function)but all you do is upload to the /home/pi folder and move the stuff around either by logging in with ssh or by booting the pi to command line.

You need to locate the config file for vsftpd this is located in /etc folder in your RaspberryPi file structure the file you need to edit is the vsftpd.conf file the default file has 34 different settings you can change nearly all with impunity nearly all of this editing consists of removing the hash mark (#) from the start of the line changing the line from a comment to something that is active. if you screw up then do the following.

sudo apt-get remove vsftpd sudo apt-get purge vsftpd sudo apt-get install vsftpd

and you arde back to the original vsftpd.conf original setup.

vsftpd which stands for "Very Secure FTP Daemon" it largely sets up as anonymous FTP to allow anonymous connections to download from your FTP Server.

But as our aim is to upload from ourselves inside our router space we need to change vsftpd so we can upload.

I know if I work through the vsftpd.conf so that I end up with these lines as shown without the leading #

listen=YES anonymous_enable=YES write_enable=YES anon_upload_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES ascii_upload_enable=YES ascii_download_enable=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem

Then I am able to use CoreFTP from my PC to login



The Site name is something you choose and just becomes a shortcut label for the saved settings

Obviously use the IP address your router has given to your RPi

Login pi

Password raspberry (unless you have changed it)

Your core window should look something like this



You can drag and drop or highlight and use the blue arrow to instagate the transfer.

Upload and move Joomla
Now this is all well and good but you now need something to upload, namely the Joomla! installation. There is a link at the top of the page at and this time I have only tested this with the stable 2.5 version and I do not intend looking at version 3.0 till it is considered stable.

'''NOTE 3.4.x is the current stable release. 2.5 is now end of life, obsolete, as of the end of 2014. Current version 3.4.5 can be downloaded from the official GitHub repo: https://github.com/joomla/joomla-cms/releases/download/3.4.5/Joomla_3.4.5-Stable-Full_Package.zip'''

UNTESTED: Upload the zip to your RPi, then unpack it. Unzip the Joomla! download zip on your PC, then FTP it onto your RPi.

This may take a while depending on your network and PC speed.

The given method means your copy ends up in/home/pi probably best as a folder named joomla keep it lower case for now it makes life easier.

Note the following is my method. Log in with putty User pi Password raspberry ls sudo mv joomla /var/www/joomla cd /var/www chmod 755 joomla -R

Make a Backup
Nearly forgot shut down. Take out your SD card and use Win32DiskImage read to create a new image file REMEMBER GIVE IT A NEW NAME so you don't need to do it all again

The following sections need to be added and written up.

Installing the database
Link to Joomla Docs: https://docs.joomla.org/Special:MyLanguage/Creating_a_Database_for_Joomla!

Installing Joomla
Link to Joomla docs: https://docs.joomla.org/J3.x:Installing_Joomla#Start_Install