Настройка сервера debian_9
логинимся на сервер
ssh root@ip_address_servera
Для удобства меняем имя хоста(можно и не менять изменения вступят в силу после перезагрузки сервера)
nano /etc/hostname
animaimmortale.com
Цветная консоль
Для удобства меняю приглашение командной строки(можно и не менять)
текущая команда отображает время, количество рабочих процессов, логин, ввод команд на следующей строке, удобно если команды длинные
nano .bashrc
PS1='\t j\j \u@\h:\w\n\$ '
чтобы применить изменения
source ~/.bashrc
Обновляем информацию о пакетах, в репозиториях:
apt-get update
Обновляем пакеты, на новые версии:
apt-get upgrade
Ставим нужные программы
Архиватор - apt-get install zip
Распаковщик apt install unzip
php-ssh2 - подключается к SSH-серверу. Нужно для php функции ssh2_connect
apt-get install php-ssh2
Проверяем php -m | grep ssh2
curl — инструмент командной строки для передачи данных с синтаксисом URL
apt-get install curl -y
Без этого пакета не появляются диалоговые окна:
apt-get install dialog apt-utils
Если сервер на русском языке эти команды решают проблемы с русской локализацией:
переустанавливаем пакет- locales
apt-get install --reinstall locales
И исправляем проблему с локализацией
dpkg-reconfigure locales
Нужно отметить пробелом в появившемся окне и нажать ок
en_US.UTF-8
ru_RU.UTF-8
Настройка времени в Debian
Узнать дату, время, часовой пояс можно командой date:
date
Если все указано верно, то менять ничего не нужно.
Если не правильно то обновим часовые пояса:
apt-get -y install tzdata
Теперь выберем правильный часовой пояс
Выбирая соответствующие пункты визарда, указываете свой часовой пояс.
dpkg-reconfigure tzdata
после перезагрузки сервера изменения вступят в силу
reboot
Установка Nginx (новой версии)
apt-get install ca-certificates
Загружаем ключ с веб-сайта http://nginx.org/ru/linux_packages.html
wget http://nginx.org/keys/nginx_signing.key
Активируем его - apt-key add nginx_signing.key
Моя версия debian это stretch, если у вас отличается замените слово stretch на свое кодовое имя дистрибутива и добавьте в конец файла /etc/apt/sources.list следующее:
nano /etc/apt/sources.list
deb http://nginx.org/packages/debian/ stretch nginx
deb-src http://nginx.org/packages/debian/ stretch nginx
затем выполните команды:
apt-get update
apt-get install nginx
Установка php7.2-fpm
скачиваем сертификат и добавляем в список разрешенных репозиторий packages.sury.org
apt-get -y install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
затем выполняем команды
apt-get update
и устанавливаем сам пакет php-fpm
apt install php-fpm
Проверяем версию php
php -v
Еще некоторые полезные пакеты для работы php на сервере
mbstring разработано для работы с кодировками
apt install php-mbstring
Этот пакет предоставляет модуль MySQL для PHP
apt install php-mysql
Модуль GD для PHP для работы с изображениями
apt install php-gd
Настраиваем php-fpm и взаимодействие с nginx
открываем файл и меняем пользователя www-data на nginx и расскоментим некоторые пункты
nano /etc/php/7.3/fpm/pool.d/www.conf
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen = /run/php/php7.3-fpm.sock
сохраняем (в nano это ctrl+o, не ноль а буква)
Перезапустим fpm:
service php7.3-fpm restart
Создаем тестовую папку где будет хранится сайт, по привычке будет www
mkdir /var/www
Создаем папку для сайта(удобно называть по имени домена)
mkdir /var/www/animaimmortale.com
И тестовый index.php, чтобы проверить работу php
nano /var/www/animaimmortale.com/index.php
<?php
echo "animaimmortale.com";
?>
Даем права на папку сайта для пользователя nginx
find /var/www/animaimmortale.com/ -type d -exec chown nginx {} +
или так
chown nginx:nginx /var/www/animaimmortale.com
Настройка NGINX конфига для сайта
Удобнее конфиг называть именем сайта создаем файл и вносим туда базовые настройки(необходимый минимум)
nano /etc/nginx/conf.d/animaimmortale.com.conf
server {
listen 80;
server_name animaimmortale.com; #имя домена
root /var/www/animaimmortale.com; #путь к папке с сайтом
index index.php; #наша точка входа на сайт, главный индекс пхп
#редирект на нужный index.php
location / {
try_files $uri $uri/ /index.php$args;
}
#---------PHP------------------------
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
переименовываем дефолтный конфиг чтобы не мешал работе
mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf1
перезагружаем
service nginx restart
Установка mysql
apt-get install mariadb-server mariadb-client
Установить пароль для mysql
mysql_secure_installation
далее отвечаем на вопрос системы:
Skip root password for root
Мы еще не устанавливали пароль для root, поэтому нажмите Enter.
Install new password for root: security
Тут нужно установить пароль для root
Do remove an anonymous user
Удалить ли анонимного пользователя, отвечаем да
Do not disallow remote connections
Не запрещаем коннект к нашему северу с удаленных серверов, если вам это не нужно то можно запретить
Do remove a test database
Удалить тестовую базу данных - отвечаем да
Do reload the privileges
Перезагрузите привилегии - соглашаемся
Теперь для root установлен пароль.
Делаем запрос пароля обязательным в поле PASSWORD("введите ваш пароль") вместо “введите ваш пароль” также в кавычках вводите ваш созданный выше root пароль от mysql
mysql -u root
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=PASSWORD("введите ваш пароль") where User='root';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> update user set plugin='' where User='root';
MariaDB [mysql]> quit;
можно так перезагрузить
systemctl restart mariadb
или так
/etc/init.d/mysql restart
Установка phpmyadmin
переходим в папку нашего сайта
cd /var/www/animaimmortale.com
скачиваем архив с сайта phpmyadmin.net
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.4/phpMyAdmin-4.7.4-all-languages.zip
распаковываем
unzip phpMyAdmin-4.7.4-all-languages.zip
затем переименовываем распакованную папку в phpmyadmin, либо ваше название, у меня например codevinci
mv phpMyAdmin-4.7.4-all-languages codevinci
Создание пользователя для phpMyAdmin
Чтобы можно было залогинится в новый phpMyAdmin нужно создать пользователя(в старой версии он был по умолчанию)
Подключитесь к mysql и введите команды (в поле 'yourpaswd' можно ввести пароль от mysql, a можно и другой придумать, я оставлю пароль от mysql чтобы было проще)
mysql -u root -p
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'yourpaswd';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit;
Добавляем в конфиг сайта раздел phpmyadmina
Не забудьте проверить закрывающие скобочки в конфиге.
nano /etc/nginx/conf.d/animaimmortale.com.conf
server {
listen 80;
server_name animaimmortale.com;
root /var/www/animaimmortale.com;
index index.php;
#редирект на нужный index.php
location / {
try_files $uri $uri/ /index.php$args;
}
#---------PHP------------------------
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#-------------PHPMYADMIN---------------------------
location /codevinci {
root /var/www/animaimmortale.com/;
index index.htm index.html index.php;
location ~ ^/codevinci/(.+.php)$ {
try_files $uri = 404;
root /var/www/animaimmortale.com/;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
}
location ~* ^/codevinci/(.+.(html|ico|xml|css|jpg|png|js|txt|gif|jpeg))$ {
root /var/www/animaimmortale.com/;
}
}
}
сохраняем и перезагружаем nginx
service nginx restart
теперь для входа в phpmyadmin
animaimmortale.com/codevinci
login: phpmyadmin
пароль: yourpaswd