Установка php nginx mariadb на Debian 10
Содержание
Итак, имеем только что установленный чистый 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
должна открыться страница с этого хоста.