Home

ID | EN

Cara Membuat Peladen Web

Time: 9/8/2021
By Setiawan Jodi

Daftar Isi

Saya akan memberi 2 cara, untuk LAMP (Linux, Apache, MySQL, PHP) dan LEMP (Linux, Nginx, MySQL, PHP). Dilengkapi dengan peladen FTP untuk mengunggah file ke /var/www/

Peringatan

Semua perintah ini memerlukan hak root. Masuk ke akun root dengan

sudo -i

Mohon berhati-hati ketika menggunakan akun root

LAMP

Memasang perangkat lunak yang diperlukan

apt update && apt upgrade && apt install apache2 mysql-server php libapache2-mod-php php-mysql && apt install php-curl php-gd php-json php-mbstring php-xml php-zip php-bz2 php-intl php-ldap php-imap php-bcmath php-gmp php-memcached php-imagick

perintah ini akan memperbaharui sistem linux kita dan memasang apache, mysql, php, dan ekstensi php yang sering digunakan

Konfigurasi Apache

Secara default Apache sudah bisa membawa file php. konfigurasi dibawah hanya akan membuat Apache membaca file .htaccess

Buka nano dan edit file konfigurasi Apache

nano /etc/apache2/apache2.conf

Cari bagian <directory /var/www/>. Dan ganti AllowOverride None ke AllowOverride All

## Sebelum <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> ## Sesudah <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>

Setelah itu simpan perubahan, dan mulai ulang Apache

service apache2 restart

Konfigurasi MySQL

Jalankan perintah dibawah ini

mysql_secure_installation

Jika sudah selesai, buat user baru. Dengan cara

CREATE USER 'contoh'@'localhost' IDENTIFIED BY 'password';

Lalu buat user tersebut dapat mengakses seluruh basis data

GRANT ALL PRIVILEGES ON *.* TO 'contoh'@'localhost';

Dan selesaikan dengan

FLUSH PRIVILEGES;

LEMP

Memasang perangkat lunak yang diperlukan

apt update && apt upgrade && apt install nginx mysql-server php-fpm php-mysql && apt install php-curl php-gd php-json php-mbstring php-xml php-zip php-bz2 php-intl php-ldap php-imap php-bcmath php-gmp php-memcached php-imagick

perintah ini akan memperbaharui sistem linux kita dan memasang nginx, mysql, php, dan ekstensi php yang sering digunakan

Konfigurasi Nginx

Secara default Nginx tidak bisa memproses file php. Untuk mengatifkannya anda harus mengganti beberapa konfigurasi.

Buka nano dan edit file konfigurasi Nginx

nano /etc/nginx/sites-available/default

Ganti beberapa konfig di index

# Sebelum index index.html index.htm index.nginx-debian.html; # Sesudah index index.php index.html index.htm;

Ganti beberapa konfig di location ~ \.php$

## Sebelum #location ~ \.php$ { # include snippets/fastcgi-php.conf; # # With php-fpm (or other unix sockets): # fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; #} ## Sesudah location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; }

Konfigurasi MySQL

Jalankan perintah dibawah ini

mysql_secure_installation

Jika sudah selesai, buat user baru. Dengan cara

CREATE USER 'contoh'@'localhost' IDENTIFIED BY 'password';

Lalu buat user tersebut dapat mengakses seluruh basis data

GRANT ALL PRIVILEGES ON *.* TO 'contoh'@'localhost';

Dan selesaikan dengan

FLUSH PRIVILEGES;

VSFTPD

Perintah ini disalin dari iSmooth Blog How to Install FTP Server for Apache or Nginx on Ubuntu 20.04. Jadi terima kasih iSmooth Blog

Untuk fitur FTP kita akan menggunakan VSFTPD. Lokasi folder FTP akan diarahkan ke /var/www/. Untuk memasang perangkat lunak tersebut bisa dilakukan dengan

apt install vsftpd && chgrp -R www-data /var/www/* && find /var/www -type f -exec chmod 664 {} \; && find /var/www -type d -exec chmod 775 {} \; && find /var/www -type d -exec chmod g+s {} \; && chown root:root /var/www && ufw allow 20,21,22,990,40000:50000/tcp

Setelah itu kita buat akun FTP

useradd sftp -d /var/www passwd sftp adduser sftp www-data echo "DenyUsers sftp" >> /etc/ssh/sshd_config systemctl reload sshd

* username sftp dapat diganti

Back-up file konfig bawaan, buat file konfig baru dan edit konfigurasi VSFTPD

mv /etc/vsftpd.conf /etc/vsftpd.conf.txt nano /etc/vsftpd.conf

Masukkan konfigurasi dibawah ini

# FTP listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd force_dot_files=YES pasv_min_port=40000 pasv_max_port=50000 allow_writeable_chroot=YES # SSL ssl_enable=YES rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH

Aktifkan SSL diatas TLS untuk VSFTPD

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Mulai ulang VSFTPD

systemctl restart vsftpd

Catatan