How to host your own website on Raspberry Pi
Do you need to run a website but can't afford hosting? You can use this link (https://www.inmotionhosting.com/business-hosting) to get a special discount at InMotion Hosting, or try turning your Raspberry Pi into a web server, capable of running web server software basic. Best of all, the setup is extremely simple.
How to use Raspberry Pi to host my own website?
- Why host a website on a Raspberry Pi?
- Set up the Raspberry Pi web server hardware
- Wireless and SSH network settings
- Configure Raspberry Pi as a web server
- Configure FTP on Raspberry Pi
- HTML is not enough? Raspberry Pi also supports LAMP!
- Technical and security considerations
Why host a website on a Raspberry Pi?
There are several reasons to set up a Raspberry Pi as a web server.
- Hosting costs are very expensive
- It costs too much to run a PC all day
- Raspberry Pi consumes less power
- Pi can be configured as a mobile device
- Potential to get past censorship
Whatever reason you choose to host a website on your Raspberry Pi, setting up can be done in just a few minutes. Better yet, you can use any version of Pi, even Pi Zero. If the device is connected to the Internet, you can host a website on it.
Set up the Raspberry Pi web server hardware
Let's start with a reliable power source for the Raspberry Pi. You should also install the latest preferred Raspberry Pi distribution onto high quality SD cards.
The steps and screenshots in this guide are to set up the Raspberry Pi web server with Raspbian Stretch.
As with most servers, you will need to access the Raspberry Pi web server using SSH. In Linux and macOS, you can do this through the terminal. In Windows, use PowerShell to connect via SSH or install third-party tools.
Wireless and SSH network settings
You can use the Raspberry Pi as a web server using just the keyboard, screen and remote access is also very simple.
The best way to do this is to enable SSH on the Pi and set up the wireless network first. If you use an existing Raspberry Pi installation, you may have done both. You can configure SSH and connect to the wireless network while the SD card is still in the PC.
Start by making sure the SD card is visible in your computer's file manager and the / boot / directory is selected. (In Windows, this is the only readable SD card part.)
Next, in the / boot / directory window, right click on the blank and select New> Text Document . Name the ssh document carefully to delete the .TXT file extension . When Pi starts, it will detect ssh file and activate this feature.
To connect via SSH, you first need to turn on the wireless network. To do this, create another file, this time calling it wpa_supplicant.conf. Again, delete the TXT extension. Open the file, copy and paste the following:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev network={ ssid="YOUR_NETWORK_NAME" psk="YOUR_PASSKEY" key_mgmt=WPA-PSK }
After pasting, edit the values to display the network name (SSID) and password (PSK). Save the file, then safely remove the SD card. After replacing it in the Raspberry Pi, boot it up. You will be able to connect to the Raspberry Pi via SSH, using the IP Pi address. Find this information by checking the router administration screen (checking device documentation) or by quickly connecting to the keyboard and monitor.
With SSH set up, you can remotely connect to your Raspberry Pi web server anytime.
Configure Raspberry Pi as a web server
Before uploading HTML pages to a Raspberry Pi, you will need to configure the server and its software. To do this, install Apache and PHP. This will allow the pages to be written in HTML and PHP.
Start by updating Raspbian:
sudo apt update sudo apt upgrade
Next, install Apache and related libraries, by typing:
sudo apt install apache2 -y
Then check if Apache is running:
sudo service apache2 status
If the server shows 'active (running)' in green, everything is fine.
If the server is down, start it with:
sudo service apache2 start
At this stage, you can browse to your Raspberry Pi web server from the browser.
If the browser is installed on a Raspberry Pi, visit this URL in the address bar:
http://localhost
However, if you are using SSH, use the IP address of the Raspberry Pi from a PC browser (e.g. http://123.456.789.0 ). You should see confirmation that Apache is installed.
Your Raspberry Pi is now set up as a basic web server. All you need to do now is add the page!
Configure FTP on Raspberry Pi
Although you can check the browser to see if the Pi is running as a web server, the page provided will be very basic. This is a typical placeholder index.php file, which you will have to replace with your own PHP or HTML document.
Start by creating a www directory and installing the FTP software:
sudo chown -R pi /var/www sudo apt install vsftpd
With the FTP vsftpd application ('Very Secure FTP Daemon') installed, you will need to make some configuration changes. First, open the nano configuration file:
sudo nano /etc/vsftpd.conf
And make the following permissions / security changes:
First, change anonymous_enable = YES to anonymous_enable = NO
Then delete the # symbol in the following lines:
#local_enable=YES #write_enable=YES
This triggers the settings that the stream relates to. Finally, add this line to the end of the file:
force_dot_files=YES
Doing this will force the display of file servers starting with '.' , for example the extremely important .htaccess file.
Press Ctrl
+ X
to save and exit, confirm by Y
and Enter
.
Finally, restart FTP with:
sudo service vsftpd restart
Using standard FTP desktop, you will then be able to connect to the Raspberry Pi. Upload the file to / var / www / html.
HTML is not enough? Raspberry Pi also supports LAMP!
The Raspberry Pi is not only capable of serving basic HTML pages. LAMP server configuration can be installed if you want MySQL to support PHP. Just follow the steps shown above to install and set up Apache, then add MySQL installation, then PHP.
The following packages install MySQL and the necessary PHP components:
sudo apt install mysql-server php-mysql -y
After installation is complete, you will need to restart Apache:
sudo service apache2 restart
Next, install PHP with:
sudo apt install php -y
Again, restart Apache with the above command. The LAMP server is now installed, ready for you to set up your web applications and the PHP website that controls the database.
As with any web server project, you should determine if Pi is right for your needs. While it is possible to set up WordPress to run on a Raspberry Pi, adding countless plugins and many daily updates will make it extremely slow.
The website you are planning to run on the Raspberry Pi should minimize resources and software requirements. A database control solution can be used if needed and you should limit the number of pages that can be viewed.
Technical and security considerations
You can't achieve anything close to production-level speed when using a Raspberry Pi as a web server.
However, there are many ways you can improve performance, such as setting up the server software on a USB hard drive rather than on an SD card, to limit the decline through normal read / write processes. . Alternatively, using device RAM to store temporary read / write files is also an option. This is something you probably want to change when deciding how to use your very small web server.
While setting up a test version of a database-based PHP website is fine, Raspberry Pi's online tasks are probably best suited for a small collection of static pages.
Note that if you plan to open access to the Raspberry Pi as an internet-connected web server, you will need to set up your router with a static IP address.
Finally, take the time to change the default Raspberry Pi password. This can be done in the command line via SSH using:
passwd
You will then be prompted to enter and confirm a new password. Doing this will prevent anyone familiar with Raspbian from accessing the website's backend.
The potential to use Raspberry Pi as a web server is enormous. In fact, you cannot host a large website. However, with battery packs and mobile Internet dongles, you can host a compact website from anywhere in the world.
Remember, all you need to do is:
- Configure SSH and wireless networks
- Install Apache (optional MySQL and PHP)
- Install FTP
- Set a secure password
With a static IP address or dynamic DNS service set up, your website is ready. And if you don't want to be accessed from the Internet, just host the intranet at home! If you decide to look for an external service, take a look at this list of best web hosting services.
Hope you are succesful.
You should read it
- 9 types of servers that can be hosted on Raspberry Pi
- Simple and fast steps to edit Host File on Windows 10
- Facebook host file, How to edit the host file on facebook 2017
- What is a computer host file and how to edit a host file?
- Protect computer network with Bastion host (fortress server) in just 3 steps
- Fix Service Host Local System status using multiple CPUs in Windows 10
- How to create a new host file on Windows
- Fix SysMain Service Host using a lot of CPU and memory in Windows 10
- How to host different SSL on an IP address using IIS 8 SNI?
- How to open the Host file on Windows 10, edit the hosts file
- Instructions for installing Ubuntu Web Server on remote host
- Deploy KMS activation on Windows Server 2008