Raspberry Pi Web Server

Hi there,
This is my first Instructable so all criticisms and comments are welcome.
This will show you how to set up a simple wired web server on your Raspberry Pi, with PHP and MySql.

The Raspberry Pi is a good choice for a webserver that will not recieve too much traffic, such as a testing server, or small intranet, as it doesn;t get too hot (so is nice and quiet), and only uses around 5 Watts of power (costing £3.50 a year where I am if it's running 24/7)

In the future I might add how to set up a wireless server.

If you have any problems, post them in the comments, or PM me - I'm happy to help.
Remove these adsRemove these ads by Signing Up

Step 1: You will Need

To create a simple web server, you will need:

1. A power supply (Micro USB)
2. A network cable
3. A HDMI cable (or Component cable) as well as a screen and USB keyboard
3. A Raspberry Pi
4. An SD card (2GB or more)
5. An SD card reader for your computer
6. Win32DiskImager (For Windows) or dd (for Unix)
7. The Raspberry Pi Debian Image
8. PuTTY (For Windows) or any other SSH client
9. Around an hour of free time

You can download the software from the following locations: (for Win32DiskImager) (Debian Image) (for PuTTY)

Step 2: Format SD Card

Firstly, you need to install the Debian image onto an SD card (2GB or more).
(The image can be downloaded from

You can do this using the Win23DiskImager tool for Windows (downloaded from

Insert your SD card.
Once you have downloaded the above, Extract the Debian image, and the Imaging tool, then run Win32DiskImager.
Ignore the error that you will see.
Select the Image file (debian6-19-04-2012) and your SD card, then click "Write", it will ask you to confirm, click "Yes". Then enjoy a break, as it usually takes a couple of minutes to write.

Once the write process has finished, you can remove the SD card, then the fun begins.
1-40 of 174Next »
dale3h1 year ago
Just wanted to share my experience with this Instructable. Everything went smoothly until it was time to connect to MySQL from a remote machine on the same network. So here's how to fix that:

1. Grant access to your remote machine using: GRANT ALL ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'your_password_here'; (I used 192.168.1.% so that any computer on my network can connect to it)
2. Go into the my.cnf file (sudo nano /etc/mysql/my.cnf) file and look for "bind-address" and comment this out (put a # in front of the line)
3. Reload MySQL config (service mysql reload)
4. Restart MySQL server (service mysql restart)

Hope this helps, and thank you for the great Instructable :)
drcurzon (author)  dale3h1 year ago
Hi there,
Thanks for posting this to help others :)
hamcircuit1 year ago
I tried adding that and I still just get a blank page still.
drcurzon (author)  hamcircuit1 year ago
sudo apt-get install phpmyadmin


nano /etc/apache2/apache2.conf


#Include phpmyadmin
Include /etc/phpmyadmin/apache.conf


service apache2 restart

then navigate to:
http://HOSTNAME HERE/phpmyadmin

Let me know how it goes, Dan.
sdobbie drcurzon11 months ago
I tried this and it doesn't work.

I had a similar problem, for me the fix was to go into my FTP client and right click the admin folder and change permissions to 777 for all files and subfolders

don't forget to use sudo before "nano" and "service"
zaxza24 days ago

You Need to delete the # that was put in front of pi:x;1000:1000:Raspberry Pi User,,,:home/pi:/bin/bash, it basically deletes the user "pi". Once thats is returned to how it started you can log into "pi". Anyone know how to set the Hostname for FTP or have I missed something?

dd'souza zaxza17 days ago

I'm no expert, but i think you would set the hostname running the 'raspi-config' command as root.

As for accessing the pi, I used my pi's FTP address in Notepad++, and it worked.

evan101428 days ago

Is Anyone Home? We need your answers to our questions!

quick question... Since Mysql is now essentially owned by Oracle, is there an alternative method for using MariaDB?

once2go made it!1 month ago

Today stack on problem with "acess denide" under "pi" user/
Solving so simple:
You must get you SD card with file system plug it into Linux/Mac, and under -su delete "#" on passwd

Снимок экрана от 2014-06-23 23:23:20.png

Hey, i can't log-in in Raspberry pi using PuTTY SSH Client. Can you help me? Really appreciate for your help.

evan10141 month ago

Thanks for this, now i can't log-in anymore -_- . Somebody Help,

itsleif8 months ago
I followed the steps, all works fine, but now I cannot log in any more. After restart the pi user login does not work and the new password does not work either. I also tried the root user with both passwords the old and the new, nothing works.

No I cannot log in my pi any more :( I cannot change the password file either because my mac does not mount the linux partition...

how can login again?

Hey! Same thing happened to me. What did you end up doing??? I'm so stressed! Thank you!

pherrmann32 months ago

Hey, this is a quite old tutorial but i hope you still follow its replies..

Very nice and easy guide.. I have this problem though..

PHP is installed but .php files do not open.. I googled everything but no real solution has come out of it.. arg.. Any help?

Oh, and, I almost forgot to ask.. How are you trying to run these files? Are you going to your pi's ip address like this in a web browser?


If you are new to server side scripting, then this can be a bit of a headache. ^^; So, there are a few things I would check. First, make sure and try running the apt-get commands in this tutorial again. Next, if that doesn't help, try making a file called "test.php" with the following in it..


<title> PHP Test Script </title>

phpinfo( );


You should see a header saying "TEST" and then bunch of information in this page. If this works, than you should be able to rule out there being a server config problem. If you don't see anything, try sshing into your Pi and then looking at logs. (Usually at /var/log/apache2/error.log ) If logs aren't there, check to see where they are in your php.ini file. Really, you should see something.

It's also important to note that, if you are trying to use Database functionality with your webserver you must make sure that you have the apropriate connector. (For instance, if you use mysql, you have to do "apt-get install php5-mysql." A lot of php based applications just show up blank and white without any errors if you are trying to use the database but it can't connect.

I hope this helped someone!

photoace121 month ago
How do you add more users?

Doesn't work.

jriach4 months ago
Really great instructable, thank you!
I'm new to this and hope this doesn't sound like a silly question but you mentioned needing to set permissions to access phpMyAdmin from my laptop and I'm getting the error 'you don't have permission to do this'.
Could someone shed a little light on this please?

Thank you!

pherrmann3 jriach2 months ago

Month old reply but i will reply just incase someone doesnt know the answer to this..

To solve this, it is best to log in via your FTP program, right click on the phpMyAdmin folder and "change permissions" or "properties" and then change permissions. (to 644 or 777)

aykutcanturk made it!3 months ago

hey, I made it.

only I didnt changed

"#pi:x;1000:1000:Raspberry Pi User,,,:home/pi:/bin/bash"

line, actually I took the # sign back because if you dont "pi" user disappears. php my admin and everything worked well. I set the permissions though, thru filezilla, to 777 for very file and folder under phpmyadmin directory I created. this is my first raspberry pi device and this is my first experiment. I cannot believe its too fast.

thanks for instructions.

15nhalstead3 months ago
Step 10 installing my php admin I got stuck where do I put the files and I made a folder and it is named admin and I put the files in there and I entered the URL that you have and it says can not find.

Also I can not use the host name to access it I set my host as 'RasoberryPiServer' I went to the net fear configuration in the router and it is reading the host name but when I go to use it as a URL like rasoberrypiserver/admin/..... It does not work!

Do I have to activate things??

Help please. Email me '
PeterJTK4 months ago

you must have done something that is not in this tutorial in order to address the pi by its hostname. what is missing.?

PeterJTK PeterJTK4 months ago


hardcoding in



192.168.0.XXX myhostname

Top demais meu favorito
techieeb144 months ago

I am still having issues with your instructables. Could it be that I am using the newest version of Raspian?

drcurzon (author)  techieeb144 months ago
Hi there. I would hazard a guess tht yes - it is as this instructable was written with a (much) older version.
I'll update this soon with newer instructions.
I would like it to be soon seeing as this is for a project I don't have a lot of time for.
techieeb145 months ago

I am having trouble following your directions on making the RaspberryPi web server.

I can't run "mv boot_enable_ssh.rc boot.rc" because there is no such directory.

What did you do inbetween Then type "hostname xxxxxx" where "xxxxxx" is what you want to call your server (I chose "raspberryPi" to make it easy).

Please Note that you cannot have any spaces in the hostname.

Finally for this step, type in "ifdown eth0" and hit Return / Enter.
Once that has finished, type "ifup eth0" and hit Return / Enter.

Some personal help would be greatly appreciated.

PeterJTK5 months ago

Daniel, thanks for your reply to my last question.

Here you creating a new usergroup how does this solve the problem.? must the install be run again once the new usergroup is created.?

I also find the syntax strange in "sudo usermod -g www-data www-data". if I understand the Linux synopsis correctly the first instance of "www-data" defines our new usergroup as the initial login group... but I don't understand the purpose of the second one.?

PeterJTK5 months ago

I will be attempting this in a week or so when my Pi arrives, I may have afew questions about various things as I am new to the Pi, Linux, SSH... anyway this seems like a good tutorial to work from. I'm trying to understand as much as possible of what is going on in advance so without further ado; the question: why is it necessary to toggle the interface state.? and why halt.? could the system just be rebooted instead of toggling and stopping.?

drcurzon (author)  PeterJTK5 months ago
Hi there.
If I understand your question correctly, then yes - you could just reboot it. I can't remember why I said to restart the interface then shutdown.

This needs updating soon - if you can wait a week or so I'll update this to work with the newest image.
Thanks and good luck, Dan.
Squidyman5 months ago

on "sudo apt-get install apache2 php5 libapache2-mod-php5" It fails to fetch saying mirror is unavailable. What mirror do you recommend that still works with this instructable? Thanks

Nevermind. I randomly tried sudo apt-get update and that fixed the problem. I don't know why it didn't work before I tried installing Apache. Cool instructable! Could you create a tutorial on other servers given that this article points out that others are better at handling tasks.

Skwurlito5 months ago
Asides from Pwnie Express (Raspberry Pwn) for Raspberry Pi being a debian exclusive (I prefer Raspbian), this doesn't seem cost effective. Between $35&$45 for a RasPi and if you go to it's $12 for the wireless dongle. From there you can program the auto-audits yourself. For mere pocket change you can get a 3AA holder, a small circuit board, a genereric micro usb cable and a few transistors and make a portable battery, all from you local Radio Shack. My way sounds like more fun and it'll fit in your pocket. I believe at one point i saw a pdf on this but the program hadn't been released.
Skwurlito5 months ago
Asides from Pwnie Express (Raspberry Pwn) for Raspberry Pi being a debian exclusive (I prefer Raspbian), this doesn't seem cost effective. Between $35&$45 for a RasPi and if you go to it's $12 for the wireless dongle. From there you can program the auto-audits yourself. For mere pocket change you can get a 3AA holder, a small circuit board, a genereric micro usb cable and a few transistors and make a portable battery, all from you local Radio Shack. My way sounds like more fun and it'll fit in your pocket. I believe at one point i saw a pdf on this but the program hadn't been released.
Ah-che5 months ago

Please Help .. After this step my default user PI cant log into X server or log but not with my desktop and programs ...... Why we must change the default path of main user ?

1-40 of 174Next »