بسم الله

Bismillah

Langkah-langkah ini bisa juga di aplikasikan di server/vps, karena intinya sama saja jika kita memakai linux untuk operasional sehari-sehari. Saya bagi jadi dua jenis linux base (Debian sama RHEL)

Debian Family

Install GIT

sudo apt install git -y
git config --global user.name "Fitri Ariyanto"
git config --global user.email [email protected]

Install CURL

sudo apt install curl -y

Install PostgreSQL

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update && sudo apt upgrade -y
sudo apt install postgresql-14 -y

Untuk instalasi versi tertentu, silahkan diganti nomor versinya. Dalam sesi ini, versi yang digunakan postgresql-14

Postgresql without sudo

sudo -u postgres psql
ALTER USER postgres with password 'postgres';
sudo nano /etc/postgresql/12/main/pg_hba.conf

Kemudian ganti peer dengan md5, begini contohnya

local   all    postgres            peer <- hapus dan ganti menjadi md5

Jadinya seperti ini

local   all    postgres            md5

Simpan dan keluar editor

exit
sudo service postgresql restart
psql -U postgres 

atau bisa menggunakan systemctl

sudo systemctl restart postgresql
psql -U postgres 

Install PHP

sudo apt install software-properties-common apt-transport-https curl -y

Pilih sesuai dengan Linux yang dipakai. Karena dibeberapa kondisi, masing-masing linux punya konfigurasi sendiri.

Add repository Debian

curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

Add repository Ubuntu

sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php

Ganti phpx.x dengan versi php yang ingin di install

sudo apt install php7.4-{curl,mbstring,fpm,pgsql,mysql,gd,zip,xml,bcmath,json} -y
sudo apt install php8.0-{curl,mbstring,fpm,pgsql,mysql,gd,zip,xml,bcmath} -y

Ini diperlukan untuk di install apabila menggunakan APACHE untuk webservernya

sudo apt install libapache2-mod-php7.4 -y

Install Composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Install mariadb

Ganti nn dengan versi mariadb yang ingin di install. Sampai saat artikel ini diperbarui, mariadb versi 11.7 yang paling terbaru.

curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.nn"
sudo apt-get install mariadb-server mariadb-client mariadb-backup -y

Remove sudo for mariadb

Untuk localhost atau di komputer lokal, lebih enaknya akses ke mysql dengan user root tidak perlu menggunakan password. Adapun untuk produksi wajib di password untuk semua pengguna database.

sudo mysql -u root
SELECT User,Host FROM mysql.user;
DROP USER 'root'@'localhost';
CREATE USER 'root'@'%' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Untuk MYSQL

sudo nano /etc/mysql/mysql.conf.d/mysqld.conf

Untuk MariaDB

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Tambahkan baris kode berikut dibawah baris daemon config mysql/mariadb

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
sudo systemctl restart mariadb

Install Apache

sudo apt install apache2
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/somehost.conf
sudo nano /etc/apache2/sites-available/somehost.conf
<VirtualHost *:80>
    ServerAdmin admin@somehost.com
    DocumentRoot /var/www/html/MyProject/public
    ServerName NamaDomain.com

    <Directory /var/www/html/MyProject/public>
       Options +FollowSymlinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo ln -s /etc/apache2/sites-available/aes.com.conf /etc/apache2/sites-enabled/
sudo a2ensite somehost.conf
sudo apachectl configtest
sudo a2enmod rewrite
sudo service apache2 restart

Install NGINX

Untuk repositori nginx terbaru bisa di lihat di halaman nginx.com, buat dengan menggunakan text editor. Sesuaikan dengan distro linux dan codename linux yang dipakai

sudo sh -c 'echo "deb https://nginx.org/packages/ $(lsb_release -cs) nginx \ndeb-src https://nginx.org/packages/ubuntu/ $(lsb_release -cs) nginx" > /etc/apt/sources.list.d/nginx.list'
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62
sudo apt update && sudo apt upgrade -y
sudo apt install nginx

Install NodeJS

curl -fsSL https://deb.nodesource.com/setup_current.x | bash -
sudo apt install -y nodejs
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
sudo apt install -y nodejs

Another Applications

Install Tweak ElementaryOS

sudo add-apt-repository ppa:philip.scott/elementary-tweaks
sudo apt update
sudo apt install elementary-tweaks
sudo add-apt-repository --remove ppa:philip.scott/elementary-tweaks

Install inkscape with PPA

sudo add-apt-repository universe
sudo add-apt-repository ppa:inkscape.dev/stable
sudo apt-get update
sudo apt install inkscape
sudo add-apt-repository --remove ppa:inkscape.dev/stable

RHEL Family

Intinya sama dengan command di keluarga debian, cuma ganti aplikasi manager nya saja. Keluarga Debian pakai apt kalau keluarga RedHat pakai yum atau dnf

sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php74
sudo yum update
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
php -v

الحمد لله

Linked references: