[trick] 1 Perintah Bash Untuk Buat Virtual Host di Apache 2.4

Bismillah…

pernah share, cara membuat virtual host untuk pengembangan web terutama laravel ya masa kudu akses dari loclhost/laravel/public, soal akses url, ini dia:

https://topidesta.wordpress.com/2017/11/18/trick-cara-jitu-setting-virtual-host-untuk-laravel-di-linuxlite-ubuntu-16-04/

#! /bin/bash

# May need to run this as sudo!
# I have it in /usr/local/bin and run command 'vhost' from anywhere, using sudo.

#
#   Show Usage, Output to STDERR
#
function show_usage {
cat <<- _EOF_
Create a new vHost in Ubuntu Server
Assumes /etc/apache2/sites-available and /etc/apache2/sites-enabled setup used
    -d    DocumentRoot - i.e. /var/www/yoursite
    -h    Help - Show this menu.
    -s    ServerName - i.e. example.com or sub.example.com
    
    how: sudo vhost -d /var/www/myproject  -s myproject.local
    
_EOF_
exit 1
}


#
#   Output vHost skeleton, fill with userinput
#   To be outputted into new file
#
function create_vhost {
cat <<- _EOF_
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName $ServerName
    ServerAlias www.$ServerName
    DocumentRoot $DocumentRoot
    <Directory $DocumentRoot>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
    </Directory>
    ErrorLog \${APACHE_LOG_DIR}/$ServerName-error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog \${APACHE_LOG_DIR}/$ServerName-access.log combined
</VirtualHost>
_EOF_
}

#Sanity Check - are there two arguments with 2 values?
if [ $# -ne 4 ]; then
	show_usage
fi

#Parse flags
while getopts "d:s:" OPTION; do
    case $OPTION in
        h)
            show_usage
            ;;
        d)
            DocumentRoot=$OPTARG
            ;;
        s)
            ServerName=$OPTARG
            ;;
        *)
            show_usage
            ;;
    esac
done

if [ ! -d $DocumentRoot ]; then 
    mkdir -p $DocumentRoot
    #chown USER:USER $DocumentRoot #POSSIBLE IMPLEMENTATION, new flag -u ?
fi

if [ -f "$DocumentRoot/$ServerName.conf" ]; then
    echo 'vHost already exists. Aborting'
    show_usage
else
    sudo sh -c "echo \"127.0.0.0    ${ServerName}\" >> \/tmp\/hosts"
    create_vhost > /etc/apache2/sites-available/${ServerName}.conf
    cd /etc/apache2/sites-available/ && a2ensite ${ServerName}.conf #Enable site
    service apache2 reload #Optional implementation
fi

kalo males copy past donwload aja ini url:
https://gist.github.com/mdestafadilah/2aff0ebefefcd79a7932393d8dec5f1d

Langkahnya:

  1. $ cd /tmp
  2. wget -s https://gist.github.com/mdestafadilah/2aff0ebefefcd79a7932393d8dec5f1d
  3. sudo mv vhosts.sh vhosts
  4. sudo mv /tmp/hosts /usr/local/bin/vhosts
  5. Run: vhost -h

Done. caranya ada kok di sourcenya.

Have a nice day.

source: https://gist.github.com/fideloper/2710970

Advertisements

[share] Modul Modular di Laravel – Management MVC

Bismillah…

entah kenapa setiap pengembangan web, gw juga selalu tertarik berbau modular, dahulu kala ketika ngembangin aplikasi kepuasan pelanggan, dengan modular, dengan plugin HMVC.. sekarang dapet project, leadernya pengen sistem modular juga, alhasil, gw searching di google di github, ada banyak yang ngembangin berupa package (packagist) dengan bbrp perintah via commandline, nanti gw share atu atu, dan repiew, insyaAllah.

Oke, diantarnya, dan udah gw fork 🙂 ialah,

  1. https://github.com/mdestafadilah/laravel-modules
  2. https://github.com/mdestafadilah/laravel_module_manager
  3. https://github.com/mdestafadilah/modules-1
  4. https://github.com/mdestafadilah/laravel-modular
  5. https://github.com/mdestafadilah/laravel-nestedset

Nah loh, buat pemula kayak gw ini bikin fusing … beda waktu pengembangan dengan CI, cuman cukup pake HMVC udah mantep bener dah, yaudah gpp namanya juga artis, maklum, artisan (artis-kan) ….

sekian share kali ini.. kalo butuh ebook liat aja dimari: https://topidesta.wordpress.com/download/ebook/

Have a nice day

[share] Menambahkan Fungsi OTP Di SMS Gateway Gratisan Zenziva.NET

Bismillah…

Selagi santai dikantor dengan bejibun module yang sudah ada, iseng research and development tentang SMS Gateway yang Gratis dari Zenziva.net bisa gunakan API (Application Programable Interface) dimana kita bisa kirim sms geratis tapi dengan nomor random dari Web Zenziva (orang geratisan, haha) eh, keingetan dengan Fitur dari TokoCash.com Tokopedia, dimana mengirimkan kode OTP (One Time Password)  ke nomor handphone yang sudah didaftarkan, ibaratnya ada validasinya … keren keren … oya, sebelumnya penulis topidesta yaitu uda rifki juga pernah share tentang sms gateway bisa baca disini.

Nah, akhirnya jajal dulu, API dari Zenziva kalo kirim sms gimana, terus bisa!!… silahkan dilihat di github:

https://github.com/RSUP/ZENZIVA-PHP

nah, kan targetnya biar bisa OTP (One Time Password) akhirnya ubek ubek source github tentang otp-php … kan pake PHP test nya hahha, terdamparlah di sini:

https://github.com/anoopsg/Otp-php

Ternyata kagak langsung bisa coy, butuh oprek lagi … nah ada beberapa baris yang gw ubah (gw fork dulu githubnya),  berikut bbrp yang gw ubah, sedikit sih

public function __construct(){
		$this->url = "https://reguler.zenziva.net/apps/smsapi.php";
		$this->userkey = "USERKEY";       //include api key here
		$this->passkey = "PASSKEY";		
		$this->message = urlencode($this->message);
		$this->otp = 4;			
	}

udah kan ya, oya kalo butuh userkey dan passkey bisa daftar di zenziva langsung:

https://reguler.zenziva.net/

Okaylah, silahkan unduh/ fork github gw yang udah gw ubah ada dialamat ini:

https://github.com/RSUP/Otp-php/

Kagak usah gw jelasain ya, baca postingan uda rifki aja yang udah jelasin SMS GATEWAY.. kalo pada bingung komentar ajah, kalo sempet gw bales, maaf kalo lama bales, kadang males buka blog soalnya… hahaha

Have a Nice Day

[trick] Download File di Google Drive Yang Terkena Limit (Batasan)

Bismillah…

Pernah download file, tapi muncul kalimat seperti ini:

Maaf, Anda tidak dapat melihat atau mendownload file ini sekarang.

Baru-baru ini terlalu banyak pengguna yang telah melihat atau mendownload file ini. Harap akses kembali file nanti. Jika file yang Anda coba akses terlalu besar atau digunakan oleh banyak orang, butuh waktu 24 jam agar sebelum file dapat dilihat atau didownload. Jika Anda masih tidak dapat melihat file setelah 24 jam, hubungi administrator domain.

atau seperti gambar ini:

Ada beberapa langkah, diantaranya:

  1. Pilih tombol “Cetak”
  2. Akan muncul “Dialog Print” …,
  3. Pilih “Cancel” di menu dialog print
  4. Pilih tomobl “Download”.
  5. Selesai.

Akhirnya kita punya File yang sudah terlimit oleh Google Drive.

BONUS! VIDEO (GIF VERSION)

 

 

Have A Nice Day…

 

[trick] Pemanfaatan DropzoneJS dengan Codeigniter 2

Bismillah…

Kali ini ada trick memanfaatkan plugin js ke module API Prima SIMRS … berikut contoh video GIF singkatnya:

*Catatan: Divideo saya menggunakan Plugin Facebox.js untuk popup seperti itu.

Ikuti ajah tutorialnya disini ya:

  1. https://www.sandro.id/artikel/26-tutorial-upload-multiple-foto-dengan-ajax-dan-codeigniter-dropzone-js (Pemahaman Awal)
  2. https://www.startutorial.com/articles/view/dropzonejs-php-how-to-display-existing-files-on-server (Advanced)
  3. https://github.com/edomaru/ci_dropzone (Advanced)

Inget, sampai faham betul yah ikutin… kalo kali ini gw cuman share trick ajah, berupa script potongan. Kalo ikutin tutorial di Point 1 pasti akan menemukan script js berikut ini:

	Dropzone.autoDiscover = false;

	var foto_upload= new Dropzone(".dropzone",{
		url: "upload.php",
		maxFilesize: 2,
		method:"post",
		acceptedFiles:"image/*",
		paramName:"userfile",
		dictInvalidFileType:"Type file ini tidak dizinkan",
		addRemoveLinks:true,
	});


	//Event ketika Memulai mengupload
	foto_upload.on("sending",function(a,b,c){
		a.token=Math.random();
		c.append("token_foto",a.token); //Menmpersiapkan token untuk masing masing foto
	});


	//Event ketika foto dihapus
	foto_upload.on("removedfile",function(a){
		var token=a.token;
		$.ajax({
			type:"post",
			data:{token:token},
			url: "remove.php",
			cache:false,
			dataType: 'json',
			success: function(){
				console.log("Foto terhapus");
			},
			error: function(){
				console.log("Error");

			}
		});
	});

Ternyata script tersebut berhasil tapi yang gw butuhin tuh habis upload terus refresh halaman foto sebelumnya muncul lagi, nah ternyata ada di Point 3 script tersebut, berikut scriptnya:

// source: https://github.com/edomaru/ci_dropzone/
Dropzone.autoDiscover = false;

var myDropzone = new Dropzone(".dropzone", {
	url: "upload.php",
	acceptedFiles: "image/*",
	maxFilesize: 2,
	paramName:"userfile",
	dictInvalidFileType:"Type file ini tidak dizinkan",
	addRemoveLinks: true,
    // previewTemplate: document.querySelector('#preview-template').innerHTML,
    clickable: true,

	sending: function(a,b,c) {
		a.token 	= Math.random();
		c.append("token_foto",a.token); //Menmpersiapkan token untuk masing masing foto
	},

	removedfile: function(file) {

		var token= file.token;

		$.ajax({
			type: "post",
			url: "remove.php"+token,
			data:{token:token},
			dataType: 'json',
			cache:false,
		});
		// remove the thumbnail
		var previewElement;
		return (previewElement = file.previewElement) != null ? (previewElement.parentNode.removeChild(file.previewElement)) : (void 0);
	},

	init: function() {
		var me = this;
		$.get("<?php echo site_url();?>api/website/dokter/list_foto/", function(data) { //alert(data);
			// if any files already in server show all here
			if (data.length > 0) {
				$.each(data, function(key, value) {
					var mockFile = value;
					me.emit("addedfile", mockFile);
					me.emit("thumbnail", mockFile, "<?php echo ROOTURL; ?>/foto/real/" + value.name);
					me.emit("complete", mockFile);

				    var a = document.createElement('a');
				    a.setAttribute('href',"<?php echo ROOTURL; ?>/foto/real/" + value.name);
				    a.innerHTML = "Download<b>";
				    value.previewTemplate.appendChild(a);

				});
			}
		});
	}
});

Nah udah deh, foto yang pernah ke upload keliatan juga akhirnya.

Done.

Have a Nice Day!

[share] Berbagi Pengetahuan tantang VPS

Berbicara tentang web pasti kita akan terpikir tentang hostingan. penyedia hosting di indonesia cukup banyak diantaranya adalah dapurhosting, rumahweb, dewaweb, idwebhost, allnetspace dll. jika kita membelinya kita langsung disediakan paket cpanel yang langsung dipakai.

Berbeda dengan vps , vps adalah virtual private security. kalau boleh di bilang vps adalah sebuah ruangan, yang kita dizinkan menginstall apapun disana, dalam bentuk versi command line. bisa juga versi xampp versi kosong. disini lah tantangannya memakai vps, serta merta kita harus mengerti command linux, karena sintak vps sama dengan linux mau itu ubuntu atau centos ataupun debian.

beberapa penyedia vps diantara : digitalocean, cloudekilat, dewaweb, rumah hosting go daddy dll. anda bisa membeli paket perbulan untuk belajar-belajar supaya bisa menguasi seutuhnya ilmu web programming.

semoga membantu 🙂