Skip to content

manual_installation_process

Slava Semushin edited this page Jul 20, 2015 · 68 revisions

Step by step installation guide of production server

This instruction is an example of setting up production server on Ubuntu 14.04. from scratch.

Creating unprivileged user for accessing the server

root@my-server# useradd coder --create-home --shell /bin/bash --comment 'Slava Semushin'
root@my-server# passwd coder
root@my-server# vim /etc/sudoers.d/01_coder
coder ALL=(ALL) NOPASSWD: ALL
root@my-server# chmod 0440 /etc/sudoers.d/01_coder

Creating unprivileged user for running application

root@my-server# mkdir /data
root@my-server# useradd mystamps --comment 'MyStamps' --home /data/mystamps --create-home

Configuring hostname

coder@my-server$ sudo vim /etc/hostname
-vm97429.local
+my-stamps.ru
coder@my-server$ sudo vim /etc/hosts
-127.0.1.1       ubuntu-20140330.flops.ru        ubuntu-20140330
-10.7.40.29      vm97429.local
+127.0.1.1       my-stamps.ru

Configuring SSH

coder@my-server$ sudo vim /etc/ssh/sshd_config
-PermitRootLogin yes
+PermitRootLogin no
+DebianBanner no
-#PasswordAuthentication yes
+PasswordAuthentication no
+PubkeyAuthentication yes
+AllowUsers coder
+UseDNS no
coder@my-server$ sudo service ssh reload

Upgrading operating system

coder@my-server$ sudo apt-get update
coder@my-server$ sudo apt-get upgrade
coder@my-server$ sudo apt-get clean

And if reboot is required:

coder@my-server$ sudo reboot

Installing MySQL server

coder@my-server$ sudo apt-get install mysql-server-5.5
coder@my-server$ sudo vim /etc/mysql/conf.d/utf8.cnf
[mysqld]
character_set_server=utf8
coder@my-server$ sudo service mysql restart
coder@my-server$ sudo mysql -u root -p
mysql> CREATE DATABASE mystamps CHARACTER SET utf8;
mysql> CREATE USER mystamps@localhost IDENTIFIED BY 'p@assword';
mysql> GRANT ALL PRIVILEGES ON mystamps.* TO mystamps@localhost;
mysql> FLUSH PRIVILEGES;

Restoring database backup (optional)

user@home$  scp /path/to/backups/mysql_backup_mystamps_20140430-231001.sql.bz2 coder@my-server:~
coder@my-server$ bzcat mysql_backup_mystamps_20140430-231001.sql.bz2 |  mysql -u mystamps -p mystamps
coder@my-server$ rm -fv mysql_backup_mystamps_20140430-231001.sql.bz2

Installing JDK

coder@my-server$ sudo apt-get install -y software-properties-common
coder@my-server$ sudo add-apt-repository ppa:webupd8team/java
coder@my-server$ sudo apt-get update
coder@my-server$ sudo apt-get install -y oracle-java8-installer oracle-java8-set-default

Installing nginx

coder@my-server$ echo "deb http://nginx.org/packages/ubuntu/ $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
coder@my-server$ curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
coder@my-server$ sudo apt-get update
coder@my-server$ sudo apt-get install nginx
coder@my-server$ sudo rm -fv /etc/nginx/conf.d/*
removed ‘/etc/nginx/conf.d/default.conf’
removed ‘/etc/nginx/conf.d/example_ssl.conf’
Clone this wiki locally