Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah...

Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah... - Hallo sahabat Tutorial VPS , Pada Artikel yang anda baca kali ini dengan judul Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah..., kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan Artikel database, Artikel Debian, Artikel linux, Artikel tuxlite, Artikel ubuntu, Artikel vps hosting, Artikel webserver, yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.

Judul : Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah...
link : Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah...

Baca juga


Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah...

Mencoba nulis lagi, ngasih info yang mungkin bisa manfaat buat pembaca, tapi tentunya buat catatan aku sendiri, karena aku juga masih belajar.

Awalnya coba-coba pakai hosting di DigitalOcean.com, meraba-raba caranya instal vps, setting dll.

Untuk yang belum tahu DigitalOcean (DO), menurut sesepuh DigitalOcean adalah penyedia layanan Cloud Hosting dengan harga yang terbilang murah.

Harga $5 sudah memperoleh spek RAM 512mb, HDD 20gb menggunakan SSD lagi, 1 Core Processor, dan 1 TB transfer. Dengan harga $5 sudah memiliki fleksibilitas yang sama seperti memiliki sebuah server dedicated kecil bahkan dapat memilih menggunakan distro favorit Anda.

Ok, lanjuutt …. permasalahan utama seorang user ketika memiliki VPS adalah mau dikasih aplikasi apa supaya bisa langsung digunakan. Aku pribadi sempat melakukan trial membuat Droplet di DIgitalOcean dan kemudian di Destroy sampai 4 kali dengan beberapa Distro Linux  yang berbeda 😀 . Konyol, memang …. tapi karena belum menemukan konfigurasi yang pas ….. 😀

Nah, setelah Googling kesana kemari sampailah pada sebuah situs Tuxlite, dan kenapa menggunakan Tuxlite? Seperti pada judul diatas didalam 1 paket Tuxlite sudah terdapat beberapa fitur untuk melakukan install Apache/Nginx, MySql, phpMyAdmin dan paling keren adalah sudah terdapat Varnish didalamnya.

Sayangnya belum semua distro bisa menggunakan Tuxlite, distro yang saat ini support Tuxlite adalah Debian 6, Debian 7, Ubuntu 12.04, Ubuntu 12.10, dan Ubuntu 13.04.

Apa itu Varnish ? Varnish menurut wiki adalah

    Varnish is an HTTP accelerator designed for content-heavy dynamic web sites. In contrast to other web accelerators, such as Squid, which began life as a client-side cache, or Apache and nginx, which are primarily origin servers, Varnish was designed as an HTTP accelerator. Varnish is focused exclusively on HTTP, unlike other proxy servers that often support FTP, SMTP and other network protocols.

ya diartikan sendiri lah …. 😀

Ok, langsung saja ke langkah-langkah installasi Tuxlite :

1. Buat direktori /tuxlite untuk menyimpan file Tuxlite …..

mkdir /tuxlite && cd /tuxlite

2. Download script Tuxlite

wget http://tuxlite.com/scripts/tuxlite.tar.gz

3. Ekstrak file master tersebut

tar zxvf tuxlite.tar.gz

4. Edit file options.conf ubah data dan sesuaikan dengan vps Anda

nano options.conf

5. Sesuaikan data-data berikut :

    HOSTNAME, ganti dengan hostname server, semisal HOSTNAME=node1
    HOSTNAME_FQDN, ganti dengan nama lengkap domain hostname, misalHOSTNAME_FQDN=node1.serversaya.com
    SERVER_IP, masukkan alamat IP server anda, misal SERVER_IP=202.28.123.123
    SSHD_PORT, ganti nilai 22 dengan angka lain jika ingin mengubah port SSH, atau lewati saja jika anda ingin tetap menggunakan port 22.
    APT_REGION, ubah dengan 2 huruf kode negara yang paling deket dengan server kita. Misal jika server kita ada di Singapore, kita bisa ganti menjadi APT_REGION=sg.
    WEBSERVER, karena kita akan menginstall Apache, maka masukkan pilihan 2, hingga menjadi WEBSERVER=2
    MYSQL_ROOT_PASSWORD, masukkan password yang ingin anda gunakan untuk MySQL, anda bebas memilih, tetapi harus diingat karena kita akan membutuhkannya saat proses instalasi MySQL berjalan dan untuk mengelola database kita nanti, misal parameter MYSQL_ROOT_PASSWORD=kad837gas7g
    PMA_LINK, adalah link lokasi file instalasi PHPmyAdmin. Lihat ke situs PHPmyAdmin (http://http://www.phpmyadmin.net), jika ada versi yang lebih baru, masukkan linknya disini.
    DB_GUI, tuxlite memberikan pilihan tool untuk mengelola database server kita, apakah menggunakan PHPmyAdminataukah Adminer. Jika anda ingin menggunakan PHPmyAdmin masukkan angka 1.
    VARNISH_CACHE_SIZE, masukkan besarnya cache yang ingin anda gunakan untuk varnish.
    AWSTATS_ENABLE, jika anda ingin menginstal dan mengaktifkan tool memonitor trafik Awstats, masukkan variabelyes, jika tidak masukkan no.
    MISC_PACKAGES, jika anda ingin menginstal paket lain selain yang dibutuhkan tuxlite, silahkan masukkan disini.
    Untuk variabel bisa anda biarkan sesuai default.

6. Kemudian ubah chmod script agar dapat dieksekusi

chmod 700 *.sh && chmod 700 options.conf

7. Perbaharui data APT dan kemudian install Aptitude

apt-get update && apt-get -y install aptitude

8. Jika anda ingin mengeksplor fungsi script tuxlite, jalankan perintah ini:

./setup.sh atau ./domain.sh

9. Kemudian kita siap menginstal Linux, Apache, MySQL dan PHP dengan menjalan script instalasi:

    ./install.sh

10. Buat user baru selain root, karena setelah selesai proses instalasi Tuxlite user root akan didisable. Jika hanya memiliki 1 user yaitu root saja, maka saatnya menambahkan user lain.

adduser userbaru

setelah mengisikan password maka langsung eksekusi perintah berikut :

sudo usermod -a -G sudo userbaru

kemudian isi data yang diminta.

11. Setelah selesai proses install dan pembuatan user baru, selanjutnya adalah menambahkan nama domain ke dalam vps. Caranya :

./domain.sh add userbaru situsku.com

Maka otomatis tuxlite akan membuat direktori untuk situsku123.com di /home/userbaru/domains/situsku123. Anda bisa upload file-file situs anda di /home/userbaru/domains/situsku123/public_html

12. Selanjutnya kita akan menginstal PHPMyAdmin atau Adminer agar kita bisa membuat database, import dan juga mengelola database situs kita. Jalankan perintah:

    ./setup.sh dbgui

13. Kemudian anda bisa mengaktifkan atau menonaktifkan penggunaan PHPMyAdmin/Adminer dengan perintah:

    ./domain.sh dbgui on

    untuk menonaktifkan gunakan perintah:

    ./domain.sh dbgui off

    NOTE: Jika sekiranya anda sudah selesai menggunakan PHPMyAdmin/Adminer, alangkah baiknya anda menonaktifkannya. Dan mengaktifkan kembali jika diperlukan. Ini untuk keamanan server kita, meminimalisir brute force attack.

14. Kemudian jika anda ingin mengaktifkan tool Awstats, jalankan perintah:

./domain.sh stats on

Dan jalankan perintah ini untuk mematikan Awstats:

./domain.sh stats off

15. Jika anda ingin menginstall varnish, jalankan perintah ini:

./varnish.sh install

Jalankan perintah ini untuk mengaktifkan varnish:

./varnish.sh on

Dan untuk mematikannya:

./varnish.sh off

NOTE: Apabila menggunakan Nginx dan pada saat mengaktifkan Varnish terjadi error itu biasanya disebabkan karena ada sedikit perubahan pada file /etc/nginx/nginx.conf.

16. Jika anda ingin menginstall WordPress di domain anda, tuxlite memberikan kemudahan instalasinya. Hanya dengan satu baris perintah ini otomatis situs wordpress anda sudah terinstal:

./wordpress.sh

Kemudian akan muncul pertanyaan domain mana yang ingin anda install dengan WordPress, masukkan angka yang didepan domain yang ingin anda pakai. Kemudian masukkan nama database, terserah anda variabelnya. Lalu script akan menanyakan lokasi folder instalasi, jika alamat situs wordpress anda nantinya www.situsku.com, tekan enter saja. Tetapi jika alamat situs wordpress anda www.situsku.com/blog, maka masukkan “blog” di pertanyaan tersebut dan tekan enter.

Untuk database wordpress, tuxlite akan membuatnya secara otomatis. Setelah semua sudah di set oleh tuxlite, sekarang silahkan akses situs anda untuk melengkapi proses instalasi wordpress.

Jangan lupa pada beberapa kasus pada saat mengakses situs wordpress maka ada beberapa folder yang tidak dapat ditambah/dirubah isinya seperti /wp-content/uploads atau /wp-content/plugins atau /wp-content/themes. Untuk mengatasi permasalahan ini cukup mudah yaitu dengan memberikan hak akses pada folder, seperti berikut :

chown userbaru:www-data -R /home/userbaru/domains/situsku.com/public_html

Namun, installasi Tuxlite, sampai pada versi saat ini (versi 3.0) memiliki satu bug. Berkaitan dengan setting Apache. Terjadi konflik dengan setting conf default apache dengan installasi Tuxlite. Cara mengatasinya cukup mudah, hanya perlu menghapus seting default Apache dengan perintah

rm /etc/apache2/sites-available/default
rm /etc/apache2/sites-available/default-ssl
rm /etc/apache2/sites-enabled/000-default

kemudian restart Apache

service apache2 restart

Simple dan mudah kan …….. ga perlu bingung install apache dll cukup dengan Tuxlite semuanya jadi mudah.

Untuk mengamankan VPS dapat menggunakan fail2ban untuk memblokir apabila terjadi bruteforce dan gunakan (D)Dos Deflate untuk mengantisipasi terjadinya DDOS.

Berikut langkah-langkah instalasinya :

Berikut adalah cara menginstal Fail2Ban:

    Instal Fail2Ban dengan menggunakan perintah:

    sudo apt-get install fail2ban

    Secara default Fail2Ban akan memproteksi SSH setelah diinstal, tidak perlu langkah lainnya. Tetapi jika anda mengubah konfigurasi default dari Fail2Ban, anda dapat membuat file jail.localbaru. Dengan perintah berikut:

    sudo nano /etc/fail2ban/jail.local

    Set variabel bantime untuk mengatur berapa lama blokir diterapkan (dalam detik).
    Set variabel maxretry untuk mengatur batasan berapa kali percobaan login yang bisa dilakukan sebelum alamat IP diblokir.
    Tekan tombol Ctrl-X dan kemudian Y untuk menyimpan konfigurasi.

Fail2Ban sekarang akan memonitor SSH server kita. Jika ada yang mencoba login ke server kita, hingga bebera kali percobaan gagal login, Fail2Ban akan memblokir alamt IP si penyerang dan akan mencatatnya di /var/log/fail2ban.log.
Instal (D)DoS Deflate

(D)DoS Deflate adalah bash shell script ringan yang didesain untuk membantu proses pemblokiran serangan DoS (Denial of Service).

Proses instalasinya sangat mudah, berikut langkahnya:

    Download script (D)DoS Deflate dengan perintah:

    wget http://www.inetbase.com/scripts/ddos/install.sh

    Kemudian chmod script instalasinya dengan perintah:

    chmod 0700 install.sh

    Jalankan script instalasinya

    ./install.sh

    Untuk keluar dari tampilan readme, ketikkan perintah

    :q

Selesai! Server anda sudah terproteksi dari serangan Denial of Service dengan menggunakan (D)Dos Deflate!

Tambahan 12 Juni 2014:

Setting alokasi memory varnish di /etc/default/varnish (debian) sebesar 96Mb:

START=yes
NFILES=131072
MEMLOCK=82000

DAEMON_OPTS="-a :80
 -T localhost:6082
 -f /etc/varnish/default.vcl
 -S /etc/varnish/secret
 -s malloc,96M"

Sedikit optimasi pada file /etc/varnish/default.vcl untuk para pengguna WordPress :

# This is a basic VCL configuration file for varnish. See the vcl(7)
# man page for details on VCL syntax and semantics.
#
# Default backend definition. Set this to point to your content
# server.
#
backend default {
 .host = "127.0.0.1";
 .port = "8080";
}

# Only allow purging from specific IPs
acl purge {
 "localhost";
 "127.0.0.1";
}

sub vcl_recv {
 # Handle compression correctly. Different browsers send different
 # "Accept-Encoding" headers, even though they mostly support the same
 # compression mechanisms. By consolidating compression headers into
 # a consistent format, we reduce the cache size and get more hits.
 # @see: http:// varnish.projects.linpro.no/wiki/FAQ/Compression
 if (req.http.Accept-Encoding) {
 if (req.http.Accept-Encoding ~ "gzip") {
 # If the browser supports it, we'll use gzip.
 set req.http.Accept-Encoding = "gzip";
 }
 else if (req.http.Accept-Encoding ~ "deflate") {
 # Next, try deflate if it is supported.
 set req.http.Accept-Encoding = "deflate";
 }
 else {
 # Unknown algorithm. Remove it and send unencoded.
 unset req.http.Accept-Encoding;
 }
 }

 # Set client IP
 if (req.http.x-forwarded-for) {
 set req.http.X-Forwarded-For =
 req.http.X-Forwarded-For + ", " + client.ip;
 } else {
 set req.http.X-Forwarded-For = client.ip;
 }

 # Check if we may purge (only localhost)
 if (req.request == "PURGE") {
 if (!client.ip ~ purge) {
 error 405 "Not allowed.";
 }
 return(lookup);
 }

 if (req.request != "GET" &&
 req.request != "HEAD" &&
 req.request != "PUT" &&
 req.request != "POST" &&
 req.request != "TRACE" &&
 req.request != "OPTIONS" &&
 req.request != "DELETE") {
 # /* Non-RFC2616 or CONNECT which is weird. */
 return (pipe);
 }

 if (req.request != "GET" && req.request != "HEAD") {
 # /* We only deal with GET and HEAD by default */
 return (pass);
 }

 # admin users always miss the cache
 if(req.url ~ "^/wp-(login|admin)" ||
 req.http.Cookie ~ "wordpress_logged_in_" ){
 return (pass);
 }

 # Remove cookies set by Google Analytics (pattern: '__utmABC')
 if (req.http.Cookie) {
 set req.http.Cookie = regsuball(req.http.Cookie,
 "(^|; ) *__utm.=[^;]+;? *", "1");
 if (req.http.Cookie == "") {
 remove req.http.Cookie;
 }
 }

 # always pass through POST requests and those with basic auth
 if (req.http.Authorization || req.request == "POST") {
 return (pass);
 }

 # Do not cache these paths
 if (req.url ~ "^/wp-cron.php$" ||
 req.url ~ "^/xmlrpc.php$" ||
 req.url ~ "^/wp-admin/.*$" ||
 req.url ~ "^/wp-includes/.*$" ||
 req.url ~ "?s=") {
 return (pass);
 }

 # Define the default grace period to serve cached content
 set req.grace = 30s;

 # By ignoring any other cookies, it is now ok to get a page
 unset req.http.Cookie;
 return (lookup);
}

sub vcl_fetch {
 # remove some headers we never want to see
 unset beresp.http.Server;
 unset beresp.http.X-Powered-By;

 # only allow cookies to be set if we're in admin area
 if( beresp.http.Set-Cookie && req.url !~ "^/wp-(login|admin)" ){
 unset beresp.http.Set-Cookie;
 }

 # don't cache response to posted requests or those with basic auth
 if ( req.request == "POST" || req.http.Authorization ) {
 return (hit_for_pass);
 }

 # don't cache search results
 if( req.url ~ "?s=" ){
 return (hit_for_pass);
 }

 # only cache status ok
 if ( beresp.status != 200 ) {
 return (hit_for_pass);
 }

 # If our backend returns 5xx status this will reset the grace time
 # set in vcl_recv so that cached content will be served and
 # the unhealthy backend will not be hammered by requests
 if (beresp.status == 500) {
 set beresp.grace = 60s;
 return (restart);
 }

 # GZip the cached content if possible
 if (beresp.http.content-type ~ "text") {
 set beresp.do_gzip = true;
 }

 # if nothing abovce matched it is now ok to cache the response
 set beresp.ttl = 24h;
 return (deliver);
}

sub vcl_deliver {
 # remove some headers added by varnish
 unset resp.http.Via;
 unset resp.http.X-Varnish;
}

sub vcl_hit {
 # Set up invalidation of the cache so purging gets done properly
 if (req.request == "PURGE") {
 purge;
 error 200 "Purged.";
 }
 return (deliver);
}

sub vcl_miss {
 # Set up invalidation of the cache so purging gets done properly
 if (req.request == "PURGE") {
 purge;
 error 200 "Purged.";
 }
 return (fetch);
}

sub vcl_error {
 if (obj.status == 503) {
 # set obj.http.location = req.http.Location;
 set obj.status = 404;
 set obj.response = "Not Found";
 return (deliver);
 }
}

atau

backend default { .host = "localhost"; .port = "8080"; }
acl purge { "localhost"; }
sub vcl_recv { if (req.request == "PURGE") { if (!client.ip ~ purge) { error 405 "Not allowed."; } return(lookup); }
if (req.url ~ "^/$") { unset req.http.cookie; } }
sub vcl_hit { if (req.request == "PURGE") { set obj.ttl = 0s; error 200 "Purged."; } }
sub vcl_miss { if (req.request == "PURGE") { error 404 "Not in cache."; }
if (req.http.Accept-Encoding) { if (req.url ~ ".(jpg|png|gif|gz|tgz|bz2|lzma|tbz)(?.*|)$") { remove req.http.Accept-Encoding; } elsif (req.http.Accept-Encoding ~ "gzip") { set req.http.Accept-Encoding = "gzip"; } elsif (req.http.Accept-Encoding ~ "deflate") { set req.http.Accept-Encoding = "deflate"; } else { remove req.http.Accept-Encoding; } }
if (!(req.url ~ "wp-(login|admin)")) { unset req.http.cookie; }
if (req.url ~ "^/[^?]+.(jpeg|jpg|png|gif|ico|js|css|txt|gz|zip|lzma|bz2|tgz|tbz|html|htm)(?.|)$") {
unset req.http.cookie;
set req.url = regsub(req.url, "?.$", "");
}
if (req.url ~ "^/$") { unset req.http.cookie; } }
sub vcl_fetch { if (req.url ~ "^/$") { unset beresp.http.set-cookie; }
if (!(req.url ~ "wp-(login|admin)")) { unset beresp.http.set-cookie; }}

Untuk menambah performa server tambahkan kode berikut pada /etc/php5/fpm/conf.d/20-apc.ini

extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=64M
## PHP file cache 1 hour ##
apc.ttl=3600
## User cache 2 hour ##
apc.user_ttl=7200
## Garbage collection 1 hour ##
apc.gc_ttl=3600
apc.max_file_size=1M
apc.stat=0

Optimasi nginx dengan menyesuaikan parameter-paramater berikut di /etc/nginx/nginx.conf :

Cek CPU processor :

$ grep ^processor /proc/cpuinfo | wc -l

Berdasarkan hasil cek CPU processor yang menggunakan 4 core, berikut perubahan pada nginx.conf :

# One worker per CPU-core.
worker_processes 4;

events {
 worker_connections 8096;
 multi_accept on;
 use epoll;
}

worker_rlimit_nofile 40000;

http {
 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;
 keepalive_timeout 15;

 # Your content here ..
}

gzip  on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6].";

Tambahkan pada akhir file php.ini :

[apc]
apc.stat = "0"
apc.max_file_size = "1M"
apc.localcache = "1"
apc.localcache.size = "256"
apc.shm_segments = "1"
apc.ttl = "3600"
apc.user_ttl = "7200"
apc.gc_ttl = "3600"
apc.cache_by_default = "1"
apc.filters = ""
apc.write_lock = "1"
apc.num_files_hint= "512"
apc.user_entries_hint="4096"
apc.shm_size = "256M"
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.include_once_override = "0"
apc.file_update_protection="2"
apc.canonicalize = "1"
apc.report_autofilter="0"
apc.stat_ctime="0"
;This should be used when you are finished with PHP file changes.
;As you must clear the APC cache to recompile already cached files.
;If you are still developing, set this to 1.
apc.stat="0"

Sesuaikan parameter berikut pada file /etc/php5/fpm/php-fpm.conf

pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
emergency_restart_threshold = 5
emergency_restart_interval = 2
events.mechanism = epoll

Sesuaikan dengan kebutuhan parameter-parameter berikut pada file config didalam folder /etc/php5/fpm/pool.d/ :

pm = dynamic
pm.max_children = 9
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 200
pm.process_idle_timeout = 60s
request_terminate_timeout = 30s

setelah selesai silahkan di restart service-service berikut :

service varnish restart
service php5-fpm restart

Mohon maaf apabila ada kekurangan, dan semoga bermanfaat …….

sumber : tuts.web.id + dhavid.com + tuxlite.com

Tags: #apc #cache #database #debian #linux #mysql #ubuntu #webserver


Demikianlah Artikel Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah...

Sekianlah artikel Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah... kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.

Anda sekarang membaca artikel Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah... dengan alamat link http://tutorialvpsdo.blogspot.com/2016/12/dengan-tuxlite-install-linux-apache.html

0 Response to "Dengan Tuxlite Install Linux, Apache, MySql, PHP dan WordPress ternyata mudah..."

Post a Comment