Installing PHP/Apache
This is based on the nifty webiopi guide here.
Install Apache and PHP
sudo apt-get install apache2 php5
Add Apache's user (www-data) to the sudoers if needed
This may be necessary if you want web pages to control IO pins etc. Note that by doing this you introduce the possibility of security vulnerabilities via apache. If you are using your RPi on a local network and this is not a concern then you may well not care about this but if you are using your RPi on a public network where security is a concern then you may want to skip this step and find an alternative solution if you hit security permission issues.
sudo visudo
Add this line to the end of the file:
www-data ALL=(ALL) NOPASSWD: ALL
Press CTRL + X to save and exit.
Restart Apache
sudo /etc/init.d/apache2 restart
If you type your Raspberry Pi IP address into the web browser on a machine connected to the network you should see the apache default web page appear.
Adding Your HTML, PHP etc Files
Copy them into the "/var/www/html/" directory.
You will need root permission to write to this directory, so if you are using the GUI file manager use "sudo su" to elevate yourself to the root user before starting the GUI with "startx"
Restarting Apache
sudo service apache2 restart
Change The Password!
If your RPi will be connected to the internet or a public network a priority is to make the Raspberry Pi more secure by not using the default username and password. To change the password for the pi user after logging in:
passwd
Performance Tuning
If you are not using the HDMI out it is sensible to reduce the amount memory given to the RPi graphics to say 16MB using the config tool:
The configuration file
sudo nano /etc/apache2/sites-enabled/000-default.conf
sudo raspi-config
10 years ago
This configuration is potentially dangerous. Allowing Apache to have passwordless sudo means that vulnerabilities in any web app you serve using it (WordPress, Drupal, Django, anything) could be exploited to gain COMPLETE control over your Raspberry Pi and anything connected directly to it. Also consider that the aforementioned software is very common and all have had numerous vulnerabilities in the last few years that could lead to this scenario.
If you completely trust your Pi, network, all its users and all the devices connected to it then this might be OK, but in most circumstances you should NOT give Apache passwordless sudo.
4 years ago
not able to sudo after completing this….
4 years ago
I agree with tom. They can mount all other drives in the network rw, if windows isn’t configured properly for example, when rpi is in the same subnet!
Partially agree about rpi being hacked (by ITSELF) not being a big problem, lol.
4 years ago
for a number of reasons adding www-data to the sudoers is a VERY bad idea.
4 years ago
great tutorial, but upon installing phpBB3, it says that the Directory is unwriteable. What can I do about this?
Pingback: Web Interfaces « Raspberry Pi Projects