====== LEMP stack ======
Let's set up a LEMP stack (Linux, Nginx, MySQL, PHP) on your Ubuntu server. This
combination allows you to serve dynamic web pages and applications written in
PHP. Here are the steps:
===== Install =====
* Install Nginx:
sudo apt update
sudo apt install nginx nginx-extras
sudo ufw allow 'Nginx HTTP'
* Install MySQL:
sudo apt install mysql-server
sudo mysql_secure_installation # - Secure your MySQL installation:
* Install PHP:
sudo apt install php php-fpm php-mysql
===== Configure Nginx to Use PHP: =====
* Create a new server block configuration file for your website (replace example.com with your domain):
sudo nano /etc/nginx/sites-available/example.com
* Add the following content (adjust paths and domain as needed):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
* Enable the configuration:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
===== Test PHP with Nginx: =====
* Create a PHP test file:
sudo nano /var/www/example.com/html/info.php
* Add the following content:
* Save the file and visit http://example.com/info.php in your browser.
===== Create a MySQL database and user: =====
sudo mysql
CREATE DATABASE mydb;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
===== Troubleshooting & tips =====
* Update your PHP configuration to use the correct database credentials.
* Remember to replace example.com, mydb, myuser, and mypassword with your actual domain, database name, username, and password. Once done, you'll have a functional LEMP stack on your Ubuntu server! 🚀.
* ''systemctl restart nginx php8.1-fpm''.
* Empty browser cache.