Configuring Debian 8 (Jessie) VPS

Got VPS from transip.nl for some time now and had reinstalled couple of times trying to achieve idealistic server.

Used previous version and got stumbled upon many problems, and I was used to Ubuntu out-of-the-box-make-my-life-easy scripts.

This about what I did; a reminder when I have to start over again.

sudo aptitude update && sudo aptitude full-upgrade  

Taskel

Use Tasksel to install SSH

tasksel  

Passwordless SSH logins

https://www.cs.utah.edu/~bigler/code/sshkeys.html

Fix System Language

# Verify which locales are installed and generated in your system
locale -a

# edit locale
nano /etc/default/locale 

# OR
# set to: en_GB.UTF-8
# LANGUAGE: en:nl:en
dpkg-reconfigure locales

# reboot to take effect
reboot  

Enable terminal colors

for root edit: ~/.bashrc

export LS_OPTIONS='--color=auto'  
eval "`dircolors`"  
alias ls='ls $LS_OPTIONS'  

On tab colored list

edit/create: ~/.inputrc
or permanent on: /etc/inputrc

set colored-stats on  

Create custom command

cls enhanced ls command with file permissions as numbers

nano /usr/local/bin/cls  
chmod +x /usr/local/bin/cls  

file: /usr/local/bin/cls

#! /bin/sh
ls --color -l $1 | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'  

Install SUDO

Log in with root.

apt-get install sudo  
adduser admin sudo  
nano /etc/sudoers  

file: /etc/sudoers

%sudo  ALL=(ALL:ALL) ALL
admin  ALL=(ALL:ALL) ALL  

Look source

Uncomplicated Firewall

apt-get install ufw -y  
ufw allow ssh  
ufw allow dns  
ufw allow http  
ufw allow https  
ufw allow mail

ufw enable  
ufw status verbose

reboot  

Install NGINX

apt-get install nginx  

Install PHP for Debian 8 (Jessie)

PHP 7.0.0 can be installed using the Dotdeb repository.

Add these two lines to your /etc/apt/sources.list file:

deb http://packages.dotdeb.org jessie all  
deb-src http://packages.dotdeb.org jessie all  

Add the GPG key:

wget https://www.dotdeb.org/dotdeb.gpg  
sudo apt-key add dotdeb.gpg  

Install PHP 7:

sudo apt-get update  
sudo apt-get install php7.0  

Create custom directory structure for nginx configurations and vhosts

cd /var/www  
mkdir -p config/nginx/{available,enabled,conf.d,ssl}  
echo "include /var/www/config/nginx/enabled/default;" > /var/www/config/nginx/nginx.conf  
echo "include /var/www/config/nginx/enabled/*.conf;" >> /var/www/config/nginx/nginx.conf  
mkdir -p config/multi-node  
mkdir -p vhosts/_default_/httpdocs  
mkdir -p vhosts/sylo.space/httpdocs  
mkdir -p vhosts/mizu.work/httpdocs  
mkdir -p vhosts/mdstn.com/httpdocs  

Check out default page and move to proper location

cat /etc/nginx/sites-available/default | grep root

file: /var/www/config/nginx/snippets/php7.0-fpm.conf

location ~ \.php(/|$) {  
    try_files      $uri = 404;

    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;

    include fastcgi_params;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param HTTPS off;

    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
}
comments powered by Disqus