C. Instalasi dan konfigurasi Dedicated Hosting Server

  1. Install LAMP, Multiple PHP dan PHPMyAdmin
  2. Dynamic DNS
  3. Install dan konfigurasi Dynamic Update Client (DUC)
  4. Pengujian

 

1. Install LAMP, Multiple PHP dan PHPMyAdmin

 

    1. Update dan upgrade sistem debian serta install dependensi yang dibutuhkan

      # apt -y update 
      # apt -y upgrade
      # apt -y install build-essential
      # apt -y install net-tools
      # apt -y install dnsutils
      # apt -y install iftop

       

    2. Install PHP (default versi PHP pada Debian 10 adalah PHP7.3)

      # apt -y install php php-cgi php-cli libapache2-mod-php php-bcmath php-fpm php-common php-curl php-gd php-intl php-mbstring php-mysql php-opcache php-readline php-xml php-xsl php-zip php-bz2

       

    3. Install MariaDB Database Server

      # apt -y install curl software-properties-common gnupg2
      # apt -y upgrade
      # reboot
      # curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
      # bash mariadb_repo_setup --mariadb-server-version=10.9
          [info] Checking for script prerequisites.
          [info] MariaDB Server version 10.9 is valid
          [info] Repository file successfully written to /etc/apt/sources.list.d/mariadb.list
          [info] Adding trusted package signing keys...
          [info] Running apt-get update...
          [info] Done adding trusted package signing keys
      
      # apt update
      # apt -y install mariadb-server mariadb-client
      # mariadb-secure-installation
      
          NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
                SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
      
          In order to log into MariaDB to secure it, we'll need the current
          password for the root user. If you've just installed MariaDB, and
          haven't set the root password yet, you should just press enter here.
      
          Enter current password for root (enter for none): [Tekan Enter]
          OK, successfully used password, moving on...
      
          Setting the root password or using the unix_socket ensures that nobody
          can log into the MariaDB root user without the proper authorisation.
      
          You already have your root account protected, so you can safely answer 'n'.
      
          Switch to unix_socket authentication [Y/n] y
          Enabled successfully!
          Reloading privilege tables..
           ... Success!
      
      
          You already have your root account protected, so you can safely answer 'n'.
      
          Change the root password? [Y/n] y
          New password:    [ketikan password user root phpmyadmin disini]
          Re-enter new password:    [ketik ulang password]
          Password updated successfully!
          Reloading privilege tables..
           ... Success!
      
      
          By default, a MariaDB installation has an anonymous user, allowing anyone
          to log into MariaDB without having to have a user account created for
          them.  This is intended only for testing, and to make the installation
          go a bit smoother.  You should remove them before moving into a
          production environment.
      
          Remove anonymous users? [Y/n] y
           ... Success!
      
          Normally, root should only be allowed to connect from 'localhost'.  This
          ensures that someone cannot guess at the root password from the network.
      
          Disallow root login remotely? [Y/n] y
           ... Success!
      
          By default, MariaDB comes with a database named 'test' that anyone can
          access.  This is also intended only for testing, and should be removed
          before moving into a production environment.
      
      
      
          Remove test database and access to it? [Y/n] y
           - Dropping test database...
           ... Success!
           - Removing privileges on test database...
           ... Success!
      
          Reloading the privilege tables will ensure that all changes made so far
          will take effect immediately.
      
          Reload privilege tables now? [Y/n] y
           ... Success!
      
          Cleaning up...
      
          All done!  If you've completed all of the above steps, your MariaDB
          installation should now be secure.
      
          Thanks for using MariaDB!
      
          

       

    4. Install Apache2 Web Server dan PHPMyAdmin

      Untuk pengaturan pada instalasi ini, kami memilih Apache sebagai server web untuk digunakan dengan phpMyAdmin. Anda bebas memilih server web mana pun yang Anda inginkan, misalnya Nginx.
      Instal Apache Web Server pada sistem Debian dengan menjalankan perintah berikut:

      # apt-get -y install wget apache2

       

      Anda dapat memeriksa rilis phpMyAdmin dari halaman resminya. Terima kasih William Desportes atas petunjuk tentang cara mengunduh rilis terbaru phpMyAdmin.
      Unduh versi terbaru phpMyAdmin dengan perintah wget.

      # DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
      
      # URL="$(echo $DATA | cut -d ' ' -f 3)"
      
      # VERSION="$(echo $DATA | cut -d ' ' -f 1)"
      
      # wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

       

      Ekstrak file yang telah diunduh:

      # tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

       

      Pindahkan folder hasil ekstrak ke folder /usr/share/phpmyadmin.

      # mv phpMyAdmin-*/ /usr/share/phpmyadmin

       

      Buat direktori untuk file temp phpMyAdmin.

      # mkdir -p /var/lib/phpmyadmin/tmp
      
      # chown -R www-data:www-data /var/lib/phpmyadmin

       

      Buat direktori untuk file konfigurasi phpMyAdmin seperti file .htpass

      # mkdir /etc/phpmyadmin/

       

      Buat file konfigurasi phpMyAdmin.

      # cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

       

      Edit file /usr/share/phpmyadmin/config.inc.php dan atur frasa sandi rahasia:

      # nano /usr/share/phpmyadmin/config.inc.php
          $cfg['blowfish_secret'] = 'H2OxcGXxflSd8JwrwVlh6KW6s2rER63i';
          $cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

       

      Buat file konfigurasi Apache phpMyAdmin:

      # nano /etc/apache2/conf-enabled/phpmyadmin.conf

       

      Dan paste kan script di bawah ini ke file phpmyadmin.conf

          Alias /phpmyadmin /usr/share/phpmyadmin
          
          <Directory /usr/share/phpmyadmin>
              Options SymLinksIfOwnerMatch
              DirectoryIndex index.php
      
              <IfModule mod_php5.c>
                  <IfModule mod_mime.c>
                      AddType application/x-httpd-php .php
                  </IfModule>
                  <FilesMatch ".+\.php$">
                      SetHandler application/x-httpd-php
                  </FilesMatch>
      
                  php_value include_path .
                  php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                  php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
                  php_admin_value mbstring.func_overload 0
              </IfModule>
              <IfModule mod_php.c>
                  <IfModule mod_mime.c>
                      AddType application/x-httpd-php .php
                  </IfModule>
                  <FilesMatch ".+\.php$">
                      SetHandler application/x-httpd-php
                  </FilesMatch>
      
                  php_value include_path .
                  php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                  php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
                  php_admin_value mbstring.func_overload 0
              </IfModule>
      
          </Directory>
      
          # Authorize for setup
          <Directory /usr/share/phpmyadmin/setup>
              <IfModule mod_authz_core.c>
                  <IfModule mod_authn_file.c>
                      AuthType Basic
                      AuthName "phpMyAdmin Setup"
                      AuthUserFile /etc/phpmyadmin/htpasswd.setup
                  </IfModule>
                  Require valid-user
              </IfModule>
          </Directory>
      
          # Disallow web access to directories that don't need it
          <Directory /usr/share/phpmyadmin/templates>
              Require all denied
          </Directory>
          <Directory /usr/share/phpmyadmin/libraries>
              Require all denied
          </Directory>
          <Directory /usr/share/phpmyadmin/setup/lib>
              Require all denied
          </Directory>

       

      Anda dapat membatasi akses dari IP tertentu dengan menambahkan baris seperti di bawah ini:

      Require ip 127.0.0.1 192.168.16.0/24

       

      Restart apache web server

      # systemctl restart apache2

       

      Akses interface web phpMyAdmin di http://[ServerIP|Hostname]/phpmyadmin. Gunakan nama user dan kata sandi yang sudah di seting sebelumnya untuk masuk.

       

    5. Install Multiple PHP (PHP7.4, PHP8.0 dan PHP8.1) dan beberapa modul PHP

      Install dependensi software
      Software yang akan di install disini tidak hanya untuk kebutuhan instalasi PHP saja, tetapi agar proses instalasi berjalan normal ada baiknya kita install semuanya

      # apt -y install apt-transport-https lsb-release ca-certificates

       

      Repository Sury
      Repository yang menyediakan PHP di Debian adalah Sury. Ondřej Surý orang yang mengelola sury.org adalah maintener PHP di Debian, jadi kualitas yang ditawarkan sama dengan repository resmi Debian. Tambahkan repository Sury kedalam konfigurasi APT

      # echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
      	deb https://packages.sury.org/php/ buster main

       

      Install GPG Key dari Sury

      # curl -sSL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

       

      Lakukan update sekaligus upgrade agar repository dari sury dapat dikenali oleh apt

      # apt -y update
      
      # apt -y upgrade

       

      Install PHP

      # apt install -y php7.4 php7.4-cgi php7.4-cli libapache2-mod-php7.4 php7.4-bcmath php7.4-fpm php7.4-common php7.4-curl php7.4-gd php7.4-intl php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml php7.4-xsl php7.4-zip php7.4-bz2
      
      # apt install -y php8.0 php8.0-cgi php8.0-cli libapache2-mod-php8.0 php8.0-bcmath php8.0-fpm php8.0-common php8.0-curl php8.0-gd php8.0-intl php8.0-mbstring php8.0-mysql php8.0-opcache php8.0-readline php8.0-xml php8.0-xsl php8.0-zip php8.0-bz2
      
      # apt install -y php8.1 php8.1-cgi php8.1-cli libapache2-mod-php8.1 php8.1-bcmath php8.1-fpm php8.1-common php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-xsl php8.1-zip php8.1-bz2
      

       

      Memeriksa versi PHP serta PHP yang aktif

      # php -v
          PHP 8.1.11 (cli) (built: Sep 29 2022 22:12:52) (NTS)
          Copyright (c) The PHP Group
          Zend Engine v4.1.11, Copyright (c) Zend Technologies
              with Zend OPcache v8.1.11, Copyright (c), by Zend Technologies

       

      Dari hasil perintah diatas, terlihat bahwa versi PHP yang tampil adalah yang versi paling tinggi yaitu PHP8.1 sedangkan untuk melihat PHP yang aktif kita bisa gunakan cara berikut ini :

      # nano /var/www/html/info.php
              <?php
              phpinfo();
      
      # chmod +x /var/www/html/info.php

       

      Kemudian akses menggunakan browser dengan mengetikan alamat http://IP_server/info.php

      Dari tampilan diatas terlihat bahwa yang aktif saat ini adalah PHP versi PHP7.3, lalu bagaimana caranya agar yang aktif adalah PHP versi PHP7.4 atau PHP8.0 atau yang paling baru yaitu PHP8.1 ? caranya adalah sebagai berikut :

      Disable modul PHP7.3

      # a2dismod php7.3
          Module php7.3 disabled.
          To activate the new configuration, you need to run:
            systemctl restart apache2

       

      Enable modul PHP8.1

      # a2enmod php8.1
          Considering dependency mpm_prefork for php8.1:
          Considering conflict mpm_event for mpm_prefork:
          Considering conflict mpm_worker for mpm_prefork:
          Module mpm_prefork already enabled
          Considering conflict php5 for php8.1:
          Enabling module php8.1.
          To activate the new configuration, you need to run:
            systemctl restart apache2

       

      Restart service Apache

      # systemctl restart apache2

       

      Cek kembali PHP yang aktif

      # php -v
          PHP 8.1.11 (cli) (built: Sep 29 2022 22:12:52) (NTS)
          Copyright (c) The PHP Group
          Zend Engine v4.1.11, Copyright (c) Zend Technologies
              with Zend OPcache v8.1.11, Copyright (c), by Zend Technologies

       

      versi PHP masih tetap PHP8.1, kemudian kita lihat info lengkapnya

      Dari tampilan diatas terlihat bahwa yang aktif saat ini adalah PHP versi PHP8.1, Jika kita ingin ke versi 7.4 atau 8.0, tinggal jalankan lagi perintah seperti di atas.

       

    6. Tuning PHP untuk kebutuhan Export dan Import database di PHPMyAdmin

      # nano /etc/php/8.1/apache2/php.ini

       

      Dan rubah beberapa parameter seperti berikut ini:

      max_execution_time = 60
      max_input_time = 180
      memory_limit = 512M
      post_max_size = 800M
      upload_max_filesize = 800M
      max_file_uploads = 200

       

      Lakukan restart pada service Apache

      # /etc/init.d/apache2 restart
      [ ok ] Restarting apache2 (via systemctl): apache2.service.

       


 

2. Dynamic DNS

Jika kita membuat server web, server FTP, server email, atau jenis layanan online lainnya, namun tidak memiliki alamat IP Public sedangkan kita ingin semua orang dapat mengakses server kita melalui Internet. Atau ISP tempat kita berlangganan internet hanya memberikan alamat IP dinamis (yang selalu berubah dari waktu ke waktu dan tidak statis). Maka kita dapat memanfaatkan layanan Free DDNS. Sehingga server kita dapat diakses dari internet walaupun tidak memilki alamat IP statis.

Langkah 1: Membuat Akun

Pertama buka browser, kemudian akses alamat https://www.noip.com/. Untuk membuat akun di No-IP, cukup klik "Sign Up" di bagian atas halaman site

 

Pada halaman signup silahkan Anda isi email, password dan subdomain. Isilah dengan isian yang valid dan benar. Perlu diingat bahwa jika No-IP menemukan informasi akun yang tidak valid atau tidak benar atau penipuan maka layanan akan langsung dihentikan. Setelah mengisi informasi yang diperlukan dan menyetujui persyaratannya, klik tombol Free Sign Up di bagian bawah halaman website.

 

Langkah 2: Aktivasi Akun

Setelah melakukan registrasi/pendaftaran, No-IP akan mengirimkan email konfirmasi aktivasi akun ke alamat email kita. Selanjutnya periksa email dan cari email dari No-IP. Email tersebut berisi tautan yang harus kita klik untuk mengonfirmasi atau mengaktifkan akun.

 

Langkah 3: Kelola/Manage Dynamic DNS

Setelah melakukan aktivasi akun, selanjutnya silahkan Masuk atau "Sign In" ke halaman website No-IP. Di bagian atas halaman beranda No-IP, yaitu di kanan atas halaman klik "Sign In". Isikan username dan password yang telah kita buat sebelumnya, dan klik "Log In". Pada halaman ini secara otomatis nanti hostname Dynamic DNS akan muncul beserta IP Public Dynamic Anda.

 

Langkah 4: Konfigurasi Host atau Domain

Saat kita mendaftarkan akun di No-IP, biasanya nama host atau domain telah dibuat secara otomatis. Sehingga kita dapat menggunakan nama tersebut untuk terhubung ke server kita. Nama host akan digunakan sebagai pengganti alamat IP server yang kita milki, saat terhubung ke internet. Format Nama host adalah hostname.domain.com. dimana nama host Ini sama dengan nama domain yang digunakan dalam URL yaitu http://hostname.domain.com.

Pada tutorial ini nama host atau domain yang saya gunakan adalah haryadi.ddns.net, tentunya berbeda dengan nama host Anda. Untuk merubah alamat IP pada server kita silahkan klik menu Dynamic DNS lalu No-IP Hostname kemudian klik tombol Modify

 

Ketikan alamat IP Address, kemudian klik tombol Update Hostname

 


 

3. Install dan konfigurasi Dynamic Update Client (DUC)

  • Download DUC dan simpan file di direktori /usr/local/src
    # cd /usr/local/src
    # wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
    # tar xzf noip-duc-linux.tar.gz
    # cd no-ip-2.1.9
    # make
    # make install
    
        gcc -Wall -g -Dlinux -DPREFIX=\"/usr/local\" noip2.c -o noip2
        noip2.c: In function ‘dynamic_update’:
        noip2.c:1595:6: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]
          int i, x, is_group, retval, response;
        noip2.c: In function ‘domains’:
        noip2.c:1826:13: warning: variable ‘x’ set but not used [-Wunused-but-set-variable]
                 int x;
        noip2.c: In function ‘hosts’:
        noip2.c:1838:20: warning: variable ‘y’ set but not used [-Wunused-but-set-variable]
                 int     x, y, z;
        noip2.c: In function ‘autoconf’:
        noip2.c:2538:19: warning: ‘%s’ directive writing up to 255 bytes into a region of size 247 [-Wformat-overflow=]
          sprintf(line, "%s%s%s%s", USTRNG, login, PWDSTRNG, password);
        noip2.c:2538:2: note: ‘sprintf’ output between 16 and 526 bytes into a destination of size 256
          sprintf(line, "%s%s%s%s", USTRNG, login, PWDSTRNG, password);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        if [ ! -d /usr/local/bin ]; then mkdir -p /usr/local/bin;fi
        if [ ! -d /usr/local/etc ]; then mkdir -p /usr/local/etc;fi
        cp noip2 /usr/local/bin/noip2
        /usr/local/bin/noip2 -C -c /tmp/no-ip2.conf
    
        Auto configuration for Linux client of no-ip.com.
    
        Please enter the login/email string for no-ip.com  This email address is being protected from spambots. You need JavaScript enabled to view it.
        Please enter the password for user This email address is being protected from spambots. You need JavaScript enabled to view it.'  ***********
    
        Only one host [haryadi.ddns.net] is registered to this account.
        It will be used.
        Please enter an update interval:[30]  5
        Do you wish to run something at successful update?[N] (y/N)  n
    
        New configuration file '/tmp/no-ip2.conf' created.
    
        mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf
    

     

  • Membuat konfigurasi file
    # /usr/local/bin/noip2 -C

     

  • Jalankan DUC dengan perintah
    # /usr/local/bin/noip2

     


 

4. Pengujian

 

 

 

 

Sumber :

  • https://my.noip.com/dynamic-dns/duc
  • https://computingforgeeks.com/install-phpmyadmin-with-apache-on-debian/
  • https://jaranguda.com/cara-terbaru-install-php-8-di-debian-10/
  • https://www.petanikode.com/php8-install/