More

    Cara Install Tengine, PHP, MySQL, WordPress di Ubuntu 20.04

    Cara install Tengine – Jadi, beberapa waktu lalu saya menemukan sebuah website yang menggunakan teknologi tengine untuk web servernya. Akhirnya saya kepo soal tengine dan sekaligus mencoba-coba installasi tengine. Setelah mengalami beberapa kesulitan seperti installasi ssl yang cukup ribet, akhirnya saya berhasil melakukan Installasi Tengine, PHP, MySQL, WordPress di Ubuntu 20.04 yang akan saya share pada artikel kali ini.

    Sebelum masuk ke tutorial Cara Install Tengine, PHP, MySQL, WordPress di Ubuntu 20.04. Saya akan membahas sedikit tentang tengine.

    Apa itu Tengine?

    Tengine adalah server web yang dibuat oleh Taobao, situs web e-commerce terbesar di Asia. Ini didasarkan pada server HTTP Nginx dan memiliki banyak fitur lanjutan. Tengine telah terbukti sangat stabil dan efisien di beberapa dari 100 situs web teratas di dunia, termasuk taobao.com dan tmall.com.

    Tengine telah menjadi proyek open source sejak Desember 2011. Proyek ini secara aktif dikembangkan oleh tim Tengine, yang anggota intinya berasal dari Taobao, Sogou dan perusahaan Internet lainnya. Tengine adalah upaya komunitas dan setiap orang didorong untuk terlibat. Baca juga: Cara Install Nginx di Debian

    Jadi, tengine adalah sebuah https akselerator yang menggunakan source dari nginx. yang dikembangkan lebih lanjut oleh tim taobao. Karena tengine menggunakan kode sumber dari nginx, seperti yang kita tahu bahwa nginx merupakan software opensource, demikian pula dengan tengine. Tengine dapat kita gunakan secara gratis.

    Pada artikel cara install tengine ini, saya menggunakan VPS dari digital ocean dengan distro Ubuntu 20.04 LTS.

    Required Library

    Sebelum melakukan installasi tengine, ada beberapa library yang diperlukan diantaranya:

    Untuk menginstall library-library tersebut, jalankan perintah dibawah ini:

    
    apt install build-essential zlib1g-dev libpcre3 libpcre3-dev libssl-dev libjemalloc-dev libatomic-ops-dev make
    

    Cara Install Tengine, PHP, MySQL & WordPress

    Install Tengine

    Download tengine dari repository github

    git clone https://github.com/alibaba/tengine

    Compile Tengine, Jalankan satu persatu perintah dibawah ini:

    mkdir /usr/local/nginx
    mkdir /var/tmp/nginx
    cd tengine
    ./configure --prefix=/usr/local/nginx \
    --pid-path=/var/run/tengine.pid \
    --error-log-path=/var/log/nginx/error.log \
    --user=www-data \
    --group=www-data \
    --with-poll_module \
    --with-http_stub_status_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module \
    --with-http_sub_module \
    --add-module=./modules/ngx_http_concat_module \
    --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
    --http-scgi-temp-path=/var/tmp/nginx/scgi \
    --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
    --http-client-body-temp-path=/var/tmp/nginx/client \
    --with-ipv6 \
    --with-http_v2_module \
    --with-http_ssl_module \
    --with-http_realip_module \
    --add-module=./modules/ngx_http_sysguard_module
    
    make && make install
    

    Sekarang Tengine sudah terinstall. Tinggal atur user dan hak akses direktori nya saja.

    useradd -s /sbin/nologin www-data
    cd /usr/local/nginx

    memberi akses ke directory html, secara default html directory tengine berada di /usr/local/nginx/html anda bisa mengubahnya sesuai keinginan

    chown www-data:www-data -R /usr/local/nginx/html
    chown www-data:www-data -R /usr/local/nginx/logs
    chown www-data:www-data -R /var/tmp/nginx
    chmod 700 -R /usr/local/nginx/html
    chmod 700 -R /var/tmp/nginx
    chmod 777 -R /usr/local/nginx/logs
    ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

    Tes konfigurasi tengine lalu jalankan service nya.

    nginx -t

    Untuk menjalankan tengine cukup jalankan perintah seperti berikut ini.

    nginx

    Sekarang coba buka browser anda dan akses ip atau domain vps anda. Jika muncul seperti tampilan dibawah ini, itu artinya anda telah berhasil melakukan installasi tengine di server ubuntu.

    cara install tengine

    Install PHP-FPM

    Install PHP7.4

    apt-get install php7.4-common php7.4-readline php7.4-fpm php7.4-cli php7.4-gd php7.4-mysql  php7.4-curl php7.4-mbstring php7.4-opcache php7.4-json php7.4-xml -y
    

    Mengubah pengaturan default PHP

    sed -i "s/memory_limit = .*/memory_limit = 256M/" /etc/php/7.4/fpm/php.ini
    sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/7.4/fpm/php.ini
    sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.4/fpm/php.ini
    sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.4/fpm/php.ini
    sed -i "s/;cgi.fix_pathinfo=1/;cgi.fix_pathinfo=0/" /etc/php/7.4/fpm/php.ini
    sed -i "s@listen = /run/php/php7.4-fpm.sock@listen = 127.0.0.1:9000@g" /etc/php/7.4/fpm/pool.d/www.conf

    Apply configuration

    /etc/init.d/php7.4-fpm restart

    Install MariaDB

    Install MariaBD Server & Client

    apt-get install mariadb-server mariadb-client -y

    Pada langkah ini anda hanya disuruh mengikuti instruksi yang diberikan.

    mysql_secure_installation

    Logs

    Enter current password for root (enter for none):
    OK, successfully used password, moving on...
    
    Setting the root password ensures that nobody can log into the MariaDB
    root user without the proper authorisation.
    
    Set root password? [Y/n] y
    New password:
    Re-enter new 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] n
     ... skipping.
    
    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] n
     ... skipping.
    
    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!

    Mengatur Server Block Tengine

    Meskipun tengine memiliki source yang sama dengan nginx, tapi ada perbedaan dalam pengaturan server block tengine. Kalau di nginx, kita bisa mengatur virtual host per file. Namun kalau di tengine kita hanya mengatur virtual host di dalam 1 file yaitu di nginx.conf

    Berikut ini adalah gambaran dari pengaturan virtualhost tengine

    stream {
        server {
            listen 443 ssl;
            server_name www.domain1.com;
            ......
        }
    
        server {
            listen 443 ssl;
            server_name www.domain2.com;
            ......
        }
    
        #Default server, first server block will be used
        #if not such default server is provied.
        server {
            listen 443 ssl default;
            .... 
        }
    
    }

    Jadi, jika anda mempunyai lebih dari 1 domain, anda hanya perlu menambahkan server block berikutnya, namun masih dalam http block. Karena kita akan mengubah konfigurasi tengine, kita backup dulu nginx.conf file nya.

    cp /usr/local/nginx/conf/nginx.conf /root/

    Lalu, kosongkan konfigurasi yang lama,

    cat /dev/null > /usr/local/nginx/conf/nginx.conf

    Secara default, sebenarnya konfigurasi tengine hanya seperti dibawah ini.

    
    user www-data;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
        gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }
    
    }

    Namun, jika ingin menggunakan wordpress maka ada beberapa perubahan didalam konfigurasinya. Saya tidak bisa jelaskan baris per-baris. Cukup perhatikan saja tanda komen (#) yang saya berikan.

    user www-data;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
        gzip  on;
    
        server {
            listen       80;
            root   /usr/local/nginx/html/; #lokasi file website anda
            server_name  dev.tutorialpedia.net; #nama domain anda
            index  index.html index.htm index.php;
    
            location / {
                try_files $uri $uri/ /index.php?$args;
            }
    
            #konfigurasi PHP
            location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_cache_valid 200 60m;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }
    
    }

    Sebelum apply configuration sebaiknya test dulu konfignya dengan cara.

    nginx -t

    Jika output yang dihasilkan test is succesful Lalu restart tengine

    nginx -s reload

    Install WordPress

    Installasi wordpress hampir sama pada umumnya. masuk ke folder direktori html tengine dan Download WordPress

    cd /usr/local/nginx/html && wget https://wordpress.org/latest.tar.gz

    Ekstrak wordpress dan letakkan di root direktori

    tar -x --xform s/wordpress// -f /usr/local/nginx/html/latest.tar.gz -C /usr/local/nginx/html/

    beri hak akses tengine ke folder

    chown -R www-data:www-data /usr/local/nginx/html/
    chmod -R 755 /usr/local/nginx/html/

    hapus file yang tidak perlu yang berada di root direktori

    rm /usr/local/nginx/html/index.html

    Sebelum melakukan installasi wordpress, kita diwajibkan membuat database terlebih dahulu. Command dibawah ini akan membuat database dengan nama “tengine”

    mysql -uroot -p -e "CREATE DATABASE tengine;"

    Jika diminta password, silahkan masukkan password database anda.

    Lalu akses domain/ip vps anda. Maka akan muncul tampilan seperti berikut:

    cara install tengine

    Klik Let’s Go

    cara install tengine

    Lalu masukkan kredensial seperti Nama database, user database dan password database.

    cara install tengine

    Jika pada saat klik submit muncul error establishing database connection, meskipun semua informasi yang anda masukkan sudah benar.

    cara install tengine

    Ini dikarenakan, secara default mariadb melarang kita untuk menggunakan root user sebagai user default untuk digunakan sebagai user database. Untuk itu kita harus meng-alter user root tersebut agar bisa digunakan. Namun, cara tersebut kurang aman, jadi ada baiknya kita membuat user baru saja dengan level yang sama dengan user root.

    Masuk ke mysql anda.

    mysql -uroot -p

    Create user. Agar memenuhi kriteria password, silahkan gunakan huruf besar kecil dan karakter unik

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

    beri semua akses ke user

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

    Lalu sekarang masukkan kembali user baru yang sudah dibuat. Harusnya berhasil:

    cara install tengine

    Tinggal lanjutkan saja installasi wordpress seperti biasa.

    cara install tengine

    Jika, langkah-langkah yang anda ikuti sesuai, maka seharusnya installasi tengine tidak ada masalah. Untuk mengecek, apakah website kita sudah menggunakan tengine, anda bisa mencoba add on browser bernama wappalyzer.

    Lalu, bagaimana dengan installasi SSL di tengine?

    Nah, untuk installasi ssl di tengine memang agak sedikit tricky, berhubungan artikel ini sudah terlalu panjang. maka akan saya bahas pada artikel berikutnya.

    Stay tune!

    Demikian artikel Cara Install Tengine, PHP, MySQL dan WordPress

    Recent Articles

    [td_block_21]

    Related Articles

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Dapatkan konten terbaik dari kami!