====== Build a LAMP Web Server with WordPress ====== Learn to set up a LAMP (Linux, Apache, MySQL, PHP) stack on your Raspberry Pi and configure it to work as a web server. * Install software on your Raspberry Pi * Install and configure Apache, PHP, and MySQL to create a LAMP web server ===== Set up an Apache web server ===== Type the following command into the terminal and press Enter to install apache2 sudo apt install apache2 -y ===== Install PHP ===== PHP is a preprocessor: it’s code that runs when the server receives a request for a web page via a web browser. It works out what needs to be shown on the page, and then sends that page to the browser. Type the following command in the terminal to install PHP: sudo apt install php -y ==== Test PHP ==== Type this command to delete the index.html file from earlier: sudo rm index.html Create a new file called index.php: sudo nano index.php In the nano code editor, type this PHP code into the file and save it. Refresh your browser. You should see “hello world”. This page is not dynamic, but it is still served by PHP. ==== Priority PHP Apache’s Configuration File ==== On Debian/Ubuntu-based servers, edit: sudo nano /etc/apache2/mods-enabled/dir.conf On CentOS/RHEL, the file is usually located at: sudo nano /etc/httpd/conf/httpd.conf If you're using virtual host configurations, check files inside /etc/apache2/sites-available/ or /etc/httpd/conf.d/. Modify the DirectoryIndex Directive Look for a line like this: DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm Change it so that index.php comes first: DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm Save and Exit If using nano, press CTRL + X, then Y, and hit Enter to save. Restart Apache to Apply the Changes On Debian/Ubuntu: sudo systemctl restart apache2 On CentOS/RHEL: sudo systemctl restart httpd ===== Install MariaDB ===== MariaDB is a popular database engine. Like PHP, it’s widely used on web servers, which is why projects like WordPress use it, and why those projects are so popular. Type this command to install the MariaDB Server and PHP-MySQL packages: sudo apt install mariadb-server php-mysql -y Now restart Apache: sudo service apache2 restart ==== Set up ==== Run the MySQL secure installation command in the terminal window. sudo mysql_secure_installation Go through the setup wizard : * Enter current password for root (enter for none): — press Enter. * * Switch to unix_socket authentication [Y/n] - Type in N and press Enter * * Change the root password? - Type in Y and press Enter * * New password: - Type in a password and press Enter, then repeat a second time. Important: remember this root password, as you will need it later to set up WordPress. * * Remove anonymous users - Type in Y * * Disallow root login remotely - Type in Y * * Remove test database and access to it - Type in Y * * Reload privilege tables now - Type in Y