Link Search Menu Expand Document
28 Февраля 2021 г.

Установка php nginx mariadb на Debian 10

Содержание
  1. Подготовка
  2. MariaDb
  3. Nginx и PHP
  4. Новый виртуальный хост

Итак, имеем только что установленный чистый Debian.

Подготовка

Подключимся к нему по ssh

ssh test@0.0.0.0

Установим программу sudo и добавим в группу нашего пользователя и пере зайдем в систему.

Программа sudo уже может быть установлена на сервере

su -
apt-get install sudo
/sbin/usermod -aG sudo alex
exit
exit

Обновим пакеты.

sudo apt-get update

Установим необходимые программы.

sudo apt-get install vim htop git curl wget unzip zip gcc build-essential make

Откроем конфиг ssh sudo vim /etc/ssh/sshd_config.

Добавим или раскоментируем следующие настройки:

AllowUsers alex # Разрешаем заходить на сервер только пользователю alex
PermitRootLogin no # Не разрешаем логиниться пользователю root

Перезагружаем демон ssh

sudo service ssh restart

Можно установить другой shell как замену bash - это по желанию.

sudo apt-get install zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Так же добавим сразу ssh ключ, чтобы каждый раз не вводить пароль.

У меня ключи уже сгенерированы, просто скопируем публичный ключ на удаленный сервер командой.

ssh-copy-id alex@192.168.88.222

MariaDb

Ставим базу данных

sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation

Заходим в бд и создаем тестовую базу и пользователя.

sudo mariadb -u root
CREATE DATABASE new_db COLLATE 'utf8_general_ci';
CREATE USER new_db IDENTIFIED BY 'password';
GRANT ALL privileges ON new_db .* TO new_db;

Подключаемся.

sudo mariadb -u new_db -p

Nginx и PHP

Ставим nginx

sudo apt-get install nginx

Теперь php.

sudo apt install php-fpm php-mysql php-mbstring

sudo vim /etc/nginx/sites-available/default

Проверяем работоспособность

location ~ \.php$ {
   include snippets/fastcgi-php.conf;
   fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
location ~ /\.ht {
   deny all;
}
sudo nginx -t
sudo systemctl reload nginx
sudo chown alex:alex html
vim index.php 

<?php
phpinfo();
?>

Новый виртуальный хост

Создадим новый виртуальный хост.

В каталоге /etc/nginx/sites-available создадим файл хоста sudo touch test.com:

server {
    server_name test.com www.test.com;
    listen 80;
    charset utf-8;
    index index.php;
    root /var/www/test.com;
    server_tokens off;

    location / {
        try_files $uri /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_read_timeout 300;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

Активируем хост и проверим.

sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
sudo systemctl reload nginx
sudo chown alex:alex test.com
vim index.php 

test.com

Для проверки на своем компьютере отредактируем файл hosts добавим строку вроде 0.0.0.0 test.com и проверяем в браузере

набрав http://test.com должна открыться страница с этого хоста.


Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 28 Февраля 2021 г.