Raspberry Joomla!

From eLinux.org
Revision as of 06:36, 11 January 2013 by JimJKla (talk | contribs) (added raw instuctions)
Jump to: navigation, search

Preamble Page Still Under Development

Joomla! 2.5 is the latest incarnation of the open source CMS (Content Management System).

A CMS is a way of managing data behind some of the most dynamic websites on the internet.

Think of websites that host Blog sites that host the blogs of multiple bloggers.

Or travel tourism sites that host feedback from holiday makers.

List of things you require minimum

Hardware

  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

Software (note only Windows and Linux recomendations I just don't know Mac options)

  1. A copy of Joomla! 2.5 available here | Joomla! Download page
  2. A copy of a free ssh client (recomend putty) | Putty download page.
  3. A copy of a free FTP client (recomend 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 (instuctions further down this page)
  7. php5 extensions for MySQL (instuctions further down this page)
  8. vsftpd (not essential but useful if you are not running from a Linux Computer)
  9. somthing to unzip the Joomla! download (it's astandard 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 Jooomla! 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 recomend 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 php5curl
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

VsftpdCore setup.png

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

VsftpdCoreWindow.png

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 somthing to upload namely the Joomla! instalation and there is a link at the top of the page at 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.

Unzip the Joomla! download then FTP it onto your RPi you do not need the zip just the unzipped content.

This may take a while depending onyour 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