Cara Instal Joomla di Ubuntu Linux dengan Nginx

Posting singkat ini menunjukkan kepada siswa dan pengguna baru cara menginstal dan menggunakan sistem manajemen konten (CMS) Joomla di Ubuntu Linux dengan server web HTTP Nginx. Posting ini juga akan memiliki tautan untuk menyiapkan sertifikat SSL Let’s Encrypt gratis untuk mengamankan situs web dan aplikasi Joomla Kamu.

Joomla adalah CMS gratis dan open source berbasis PHP dan MySQL yang juga memiliki banyak fitur dan ribuan plugin dan template atau tema. Jika Kamu ingin membuat situs web atau toko online, Joomla mungkin merupakan cara termudah untuk melakukannya, terutama jika Kamu memerlukan dukungan dari pengguna untuk mengelola dan memelihara situs.

Tutorial ini didasarkan pada Ubuntu Linux. Kami akan menginstal server web Nginx, server database MariaDB, dan modul PHP. Kami juga akan menautkan ke pos lain yang akan menunjukkan kepada Kamu cara mengamankan situs web Joomla Kamu menggunakan sertifikat SSL gratis Let’s Encrypt.

Untuk lebih lanjut tentang Joomla, silakan periksa beranda

Untuk memulai menginstal Joomla di Ubuntu Linux, ikuti langkah-langkah di bawah ini:

Cara menginstal Nginx di Ubuntu Linux

Seperti disebutkan di atas, kita akan menggunakan server web Nginx untuk menjalankan Joomla. Joomla membutuhkan server web untuk berfungsi, dan Nginx adalah salah satu server web open source paling populer yang tersedia saat ini.

Untuk menginstal Nginx di Ubuntu, jalankan perintah di bawah ini:

sudo apt update
sudo apt install nginx

Setelah menginstal Nginx, perintah di bawah ini dapat digunakan untuk berhenti, Mulailah dan memungkinkan Layanan Nginx untuk selalu memulai setiap kali server Kamu dinyalakan.

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Untuk menguji apakah Nginx terinstal dan berfungsi, buka browser web Kamu dan ramban ke alamat IP atau nama host server.

http://localhost

Jika Kamu melihat halaman di atas di browser Kamu, maka Nginx berfungsi seperti yang diharapkan.

Cara menginstal MariaDB di Ubuntu Linux

Server basis data diperlukan agar Joomla berfungsi. Joomla menyimpan kontennya dalam database, dan MariaDB mungkin adalah server database terbaik yang tersedia untuk menjalankan Joomla.

MariaDB cepat, aman, dan server default untuk hampir semua server Linux. Untuk menginstal MariaDB, jalankan perintah di bawah ini:

sudo apt install mariadb-server
sudo apt install mariadb-client

Setelah menginstal MariaDB, perintah di bawah ini dapat digunakan untuk berhenti, Mulailah dan memungkinkan Layanan MariaDB untuk selalu memulai saat server melakukan booting.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Selanjutnya, jalankan perintah di bawah ini untuk mengamankan server database dengan kata sandi root jika Kamu tidak diminta melakukannya selama instalasi.

sudo mysql_secure_installation

Saat diminta, gunakan panduan di bawah ini untuk menjawab:

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): PRESS ENTER

Switch to unix_socket authentication [Y/n] n

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] y

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

All done!

Untuk memverifikasi dan memvalidasi bahwa MariaDB telah diinstal dan berfungsi, login ke konsol database menggunakan perintah di bawah ini:

sudo mysql -u root -p

Kamu harus secara otomatis masuk ke server basis data karena kami memulai permintaan masuk sebagai root. Hanya root yang bisa login tanpa password, dan hanya dari konsol server.

mariadb selamat datang

Jika Kamu melihat layar serupa seperti yang ditunjukkan di atas, maka server berhasil diinstal.

Cara menginstal PHP-FPM di Ubuntu Linux

Seperti yang juga kami sebutkan di atas, kami menginstal PHP di Ubuntu karena Joomla membutuhkannya. Paket PHP ditambahkan ke repositori Ubuntu. Versi repositori mungkin bukan yang terbaru. Jika Kamu perlu menginstal versi terbaru, Kamu harus menambahkan repositori PPA pihak ketiga.

Untuk repositori pihak ketiga dengan versi PHP terbaru, jalankan perintah di bawah ini.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Pada saat penulisan ini, PHP terbaru versi 8.0.

sudo apt update

Selanjutnya, jalankan perintah di bawah ini untuk menginstal PHP 8.0 dan modul terkait.

sudo apt install php8.0-fpm php8.0-common php8.0-mysql php8.0-gmp php8.0-curl php8.0-intl php8.0-mbstring php8.0-xmlrpc php8.0-gd php8.0-xml php8.0-cli php8.0-zip

Setelah PHP diinstal, perintah di bawah ini dapat digunakan untuk memulai, menghentikan, dan mengaktifkan layanan PHP-FPM untuk memulai secara otomatis saat server melakukan booting.

sudo systemctl stop php8.0-fpm
sudo systemctl start php8.0-fpm
sudo systemctl enable php8.0-fpm

Selanjutnya, Kamu ingin mengubah beberapa pengaturan konfigurasi PHP yang berfungsi baik dengan Joomla. Jalankan perintah di bawah ini untuk membuka file konfigurasi default PHP.

sudo nano /etc/php/8.0/fpm/php.ini

Kemudian ubah pengaturan garis menjadi sesuatu garis garis di bawah ini. Simpan perubahan Kamu dan keluar.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Cara membuat database Joomla di Ubuntu

Pada titik ini, kita siap untuk membuat database Joomla. Seperti disebutkan di atas, Joomla menggunakan database untuk menyimpan kontennya.

Untuk membuat database untuk Joomla, jalankan perintah di bawah ini:

sudo mysql -u root -p

Kemudian buat database bernama joomladb

CREATE DATABASE joomladb;

Selanjutnya, buat pengguna database bernama joomladbuser dan atur kata sandi

CREATE USER 'joomladbuser'@'localhost' IDENTIFIED BY 'new_password_here';

Kemudian berikan pengguna akses penuh ke database.

GRANT ALL ON joomladb.* TO 'joomladbuser'@'localhost' WITH GRANT OPTION;

Terakhir, simpan perubahan Kamu dan keluar.

FLUSH PRIVILEGES;
EXIT;

Bagaimana cara mengdownload Joomla

Kami siap mengdownload Joomla dan mulai mengonfigurasinya. Pertama, jalankan perintah di bawah ini untuk mengdownload versi terbaru Joomla dari repositorinya.

Untuk melihat rilis Joomla, lihat ini halaman.

Pada saat penulisan ini, versi terbaru adalah 4.0.4. Versi mendatang akan memiliki tautan berbeda untuk didownload.

Jalankan perintah di bawah ini untuk mengdownload dan mengekstrak versi Joomla 4.0.4.

cd /tmp
wget https://downloads.joomla.org/cms/joomla4/4-0-2/Joomla_4-0-2-Stable-Full_Package.zip
sudo unzip -d /var/www/joomla /tmp/Joomla_4-0-2-Stable-Full_Package.zip

Kemudian jalankan perintah di bawah ini untuk mengizinkan www-data pengguna untuk memiliki direktori Joomla.

sudo chown -R www-data:www-data /var/www/joomla/
sudo chmod -R 755 /var/www/joomla/

Cara mengkonfigurasi Nginx untuk Joomla

Kami telah mengdownload konten Joomla ke folder baru yang kami sebut Joomla. Sekarang, mari konfigurasikan Nginx untuk membuat blok server baru untuk digunakan dengan situs web Joomla kita. Kamu dapat membuat blok server sebanyak-banyaknya dengan Nginx.

Untuk melakukannya, jalankan perintah di bawah ini untuk membuat file konfigurasi baru bernama joomla.conf dalam /etc/nginx/sites-available/ direktori untuk meng-host blok server Joomla kami.

sudo nano /etc/nginx/sites-available/joomla.conf

Dalam file, salin dan tempel konten di bawah ini ke dalam file dan simpan.

server {
    listen 80;
    listen [::]:80;
    root /var/www/joomla;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    client_max_body_size 100M;
    autoindex off;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*.(php|pl|py|jsp|asp|sh|cgi)$ {
      return 403;
      error_page 403 /403_error.html;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Simpan file dan keluar.

Setelah menyimpan file di atas, jalankan perintah di bawah ini untuk mengaktifkan file baru yang berisi blok server Joomla kita. Mulai ulang Nginx setelah itu.

sudo ln -s /etc/nginx/sites-available/joomla.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx.service

Pada tahap ini, Joomla sudah siap dan dapat diluncurkan dengan masuk ke IP server atau nama host.

http://localhost

Namun, kami ingin memastikan server kami dilindungi dengan sertifikat SSL gratis Let’s Encrypt. Jadi, lanjutkan di bawah untuk mempelajari cara membuat sertifikat SSL Let’s Encrypt untuk situs web.

Cara mengatur Let’s Encrypt untuk Joomla

Kami telah menulis postingan yang bagus tentang cara membuat dan mengelola Let’s Encrypt SSL certificates untuk server web Nginx. Kamu dapat menggunakan posting itu, untuk menerapkannya di sini untuk situs web Joomla Kamu.

Untuk membaca postingan tentang cara membuat Let’s Encrypt SSL certificates untuk situs web, klik tautan di bawah ini:

Cara Setup Let’s Encrypt di Ubuntu Linux dengan Nginx – Website untuk Pelajar

Jika Kamu berhasil membuat sertifikat Let’s Encrypt SSL, Kamu harus membuka kembali blok server untuk situs web Joomla kami dengan menjalankan perintah di bawah ini.

sudo nano /etc/nginx/sites-available/joomla.conf

Konfigurasi blok server Joomla yang baru akan terlihat seperti baris di bawah ini. Catat garis yang disorot.

  • Blok server pertama mendengarkan pada port 80. Ini berisi pengalihan 301 untuk mengarahkan HTTP ke HTTPS.
  • Blok server kedua mendengarkan pada port 443. Ini berisi pengalihan 301 untuk mengarahkan ulang www ke domain non-www.
server {
    listen 80;
    listen [::]:80;
    root /var/www/joomla;
    index  index.php index.html index.htm;
    server_name  example.com www.example.com;

    include snippets/well-known.conf;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    root /var/www/joomla;
    index  index.php index.html index.htm;
    server_name www.example.com;
   
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    add_header Strict-Transport-Security "max-age=31536000;  includeSubDomains";
    
    include snippets/well-known.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    root /var/www/joomla;
    index  index.php index.html index.htm;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:50m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 30s;

    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    add_header Strict-Transport-Security "max-age=31536000;  includeSubDomains";
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    
    include snippets/well-known.conf;

    client_max_body_size 100M;
    autoindex off;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*.(php|pl|py|jsp|asp|sh|cgi)$ {
      return 403;
      error_page 403 /403_error.html;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Simpan file di atas, lalu restart Nginx dan PHP menggunakan perintah di bawah ini.

sudo systemctl reload nginx
sudo systemctl reload php8.0-fpm

Terakhir, jika semuanya berjalan sesuai rencana, Kamu seharusnya dapat memulai wizard pengaturan Joomla dengan menelusuri nama host server atau alamat IP melalui HTTPS.

https://example.com/

Wizard pengaturan Joomla akan muncul. Ikuti wizard untuk menyelesaikan penyiapan.

Pilih bahasa instalasi, Nama Situs, detail akun Pengguna Super, termasuk alamat email, nama pengguna, dan kata sandi.

Kemudian klik Next untuk melanjutkan.

Instalasi Joomla di Ubuntu

Pada layar berikutnya, masukkan info database yang dibuat di atas dan klik Next untuk melanjutkan.

Instalasi Joomla di Ubuntu

Selanjutnya, validasi bahwa semua persyaratan dan paket telah diinstal.

Setelah itu, klik Install untuk menyelesaikan penyihir.

Instalasi Joomla di Ubuntu

Kamu sekarang dapat masuk ke backend admin dan mulai mengatur lingkungan situs web Kamu.

Instalasi Joomla di Ubuntu

Setelah selesai, Joomla harus diinstal dan siap digunakan. Login sebagai admin dan mulai mengonfigurasi situs Kamu.

Instalasi Joomla di Ubuntu

Itu dia!

Kesimpulan:

Posting ini menunjukkan kepada Kamu cara menginstal Joomla di Ubuntu Linux dengan tautan untuk menyiapkan Let’s Encrypt. Jika Kamu menemukan kesalahan di atas, atau memiliki sesuatu untuk ditambahkan, silakan gunakan formulir komentar di bawah ini.

Rate this post

Tinggalkan komentar