Настройка VPS сервера под Debian 10
В своей работе мне периодически требуется быстро настроить linux-сервер. Чтобы не шерстить интернет каждый раз на предмет всех необходимых команд, я решил написать эту статью-шпаргалку. В качестве операционной системы я выбрал Debian 10 версии, так как с ней более-менее знаком.
Ссылки для быстрого перехода в нужный раздел:
- Первые шаги
- Установка GIT
- Установка SVN
- Установка PHP
- Установка Composer
- Установка Nodejs + Npm
- Установка Apache
- Установка MariaDB
- Установка Docker
- Создаем файл подкачки
Первые шаги
Итак первым делом меняем пароль у рута:
passwd root
Дальше я первым делом меняю номер порта, по которому можно соединиться с сервером по SSH. Для этого в файле /etc/ssh/sshd_config заменяем строку "Port 22" или "#Port 22" на строку "Port 22423". Номер порта должен быть между 1024 и 65535. После этого нужно выполнить команду перезапуска службы SSH:
service ssh restart
Установка GIT
apt-get update apt-get install git
Установка SVN
apt-get install subversion mkdir /var/svn-repos/ svnadmin create /var/svn-repos/myrepo
Настраиваем права доступа в файле:
/var/svn-repos/project/conf/svnserve.conf
Раскомментируем строки
auth-access = write password-db = passwd
Внимание! Перед параметрами ( auth-access, password-db и др) не должно быть пробелов!
Добавляем пользователя. Открываем файл
/var/svn-repos/myrepo/conf/passwd
и дописываем в него строку:
user = user_password
Запускаем сервер SVN:
svnserve -d --listen-host=xxx.xxx.xxx.xxx -r /var/svn-repos/myrepo
Осталось добавить его в автозагрузку. Как вариант можно добавить запись в крон:
crontab -e
дописываем в него строку:
@reboot svnserve -d --listen-host xxx.xxx.xxx.xxx -r /var/svn-repos/myrepo
Перенос репозитория на другой сервер
На старом сервере выполняем
svnadmin dump /path/repositoryfolder > repositoryname.svn_dump
сжимаем:
tar cvzf repositoryname.tar.gz repositoryname.svn_dump
копируем на новый сервер, разархивируем:
tar xvf repositoryname.tar.gz
восстанавливаем репозиторий на новом сервере:
svnadmin create /path/repositoryname svnadmin load /path/repositoryfolder < repositoryname.svn_dump
Установка PHP 7.4
apt-get update && apt-get upgrade apt-get -y install lsb-release apt-transport-https ca-certificates wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list apt-get update apt-get -y install php7.4 apt-get -y install php7.4-{bcmath,bz2,intl,gd,mbstring,mysql,zip,dom,curl}
Установка Composer
apt-get update apt-get -y install wget unzip wget -O composer-setup.php https://getcomposer.org/installer php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Установка Nodejs + Npm
apt-get update apt-get -y install nodejs npm Апгрейд Nodejs до версии 12 curl -sL https://deb.nodesource.com/setup_12.x | bash - apt-get -y install nodejs
Установка Apache
apt-get update apt-get -y install apache2 a2enmod rewrite apt-get -y install libapache2-mod-php7.4 chown -R www-data:www-data /var/www service apache2 restart
Создание файлов виртуальных хостов
Для начала скопируйте файл для первого домена:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Создав файлы виртуальных хостов, нужно включить их. Apache предоставляет для этого специальные инструменты. К примеру, для этого можно использовать a2ensite:
a2ensite example.com.conf
Затем отключите стандартный виртуальный хост 000-default.conf:
a2dissite 000-default.conf
Перезапустите Apache, чтобы активировать изменения:
service apache2 restart
Установка MariaDB
apt-get update apt-get -y install mariadb-server mysql_secure_installation
Изменение пароля root@localhost:
mysql > use mysql; > ALTER USER 'root'@'localhost' IDENTIFIED BY 'dfh$^Fs%RfB';
Доступ по сети:
mysql -uroot -p > use mysql; > SELECT Host,User,Password FROM user; > UPDATE user SET Host='%' WHERE User='root' AND Host='localhost'; > flush privileges;
Иногда, после проделанных действий, желаемого доступа по прежнему нет.
Откройте файл /etc/mysql/my.cnf и закоментируйте строку:
bind-address = 127.0.0.1
После этого перезагрузите mysql выполнив команду:
service mysql restart
Установка Docker
apt-get remove docker docker-engine docker.io containerd runc apt-get update apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get -y install docker-ce docker-ce-cli containerd.io
Проверить установку docker:
docker run hello-world
Создаем файл подкачки
fallocate -l 4G /swapfile
назначаем права:
chmod 600 /swapfile
инициализируем:
mkswap /swapfile
активируем:
swapon /swapfile
проверить можно с помощью команды free:
total used free shared buff/cache available Mem: 1010900 150500 143788 2892 716612 714916 Swap: 4194300 0 4194300
Для автозапуска в файл /etc/fstab нужно добавить строку:
/swapfile swap swap defaults 0 0
Комментарии (0)