LEMP server on Ubuntu 20.04

02.09.2021 | 657 | SQL

Installing a web server on Linux Nginx Mysql Php on Ubuntu 20.04

Install MySQL

apt install mysql-server mysql_secure_installation
We must answer the first question with "N", otherwise there will be a problem with passwords due to checking their complexity.

Install PHP

apt install software-properties-common add-apt-repository ppa:ondrej/php apt install php7.4-fpm php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd
Set "open_short_tag = On" в /etc/php/7.4/fpm/php.ini
open_short_tag = On
We repeat several times with the replacement of the version if it is necessary to install several versions in parallel.

Installing NGINX

apt install nginx
Create a temporary self-signed certificate
sudo mkdir /etc/nginx/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/site.com.key -out /etc/nginx/ssl/site.com.crt

Create config nano /etc/nginx/sites-available/site.com.conf

server {     listen *:80;     server_name site.com www.site.com;     return 301 https://$server_name$request_uri; }  server {     server_name site.com www.site.com;     listen *:443 ssl;      ssl_certificate /etc/nginx/ssl/site.com/site.com.pem;     ssl_certificate_key /etc/www/nginx/ssl/site.com/site.com.key;      root /var/www/site.com/public;      location ~ .php$ {         include /etc/nginx/fastcgi_params;         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;         fastcgi_index index.php;         include fastcgi_params;         fastcgi_param SCRIPT_FILENAME $request_filename;         client_max_body_size 128M;         fastcgi_ignore_client_abort off;     }      include snippets/phpmyadmin.conf; } 
Create a link:
ln -s /etc/nginx/sites-avalible/og-studio.ru.conf /etc/nginx/sites-enabled/

Installing PhpMyAdmin

apt install phpmyadmin
Создаем файл /etc/nginx/snippets/phpmyadmin.conf со следующим содержимым:
location /phpmyadmin {     root /usr/share/;     index index.php index.html index.htm;     location ~ ^/phpmyadmin/(.+.php)$ {         try_files $uri =404;         root /usr/share/;         fastcgi_pass unix:/run/php/php7.4-fpm.sock;         fastcgi_index index.php;         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;          fastcgi_param  PHP_VALUE mbstring.func_overload=0;          include /etc/nginx/fastcgi_params;     }      location ~* ^/phpmyadmin/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {         root /usr/share/;     } } 
Create a web site directory and assign an owner
mkdir -p /var/www/site.com/public chown www-data:www-data /var/www -R
Change home directory, shell and create a password for www-data
usermod -d /var/www www-data usermod --shell /bin/bash www-data passwd www-data
Restart
shutdown -r 0
To work with the site, we connect under the www-data user using the sFTP protocol


← Back

Comments (0)