Thursday, August 30, 2018

Konfigurasi nginx: eksekusi php di userdir

Untuk praktikum Mata Kuliah Pemrograman Client-Server dibutuhkan server yang dapat digunakan untuk menyediakan webservis, dan dipilih instalasi LEMP (nginx, MariaDB dan PHP) di server Centos 7.

Langkah-langkah instalasi:
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7

Setelah berhasil instalasi LEMP langkah selanjutnya adalah bagaimana memberi privasi setiap user (mahasiswa) terhadap pekerjaan masing-masing. Untuk itu Nginx perlu dikonfigurasi sehingga dapat mengakses dan mengeksekusi direktori user.

Dari bermacam-macam konfigurasi yang tersedia di internet, konfigurasi berikut ini adalah yang sesuai dengan kebutuhan.

File: /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  172.16.37.17;

    # note that these lines are originally from the "location /" block
#    root   /usr/share/nginx/html;
    set $root_dir /usr/share/nginx/html;
        rewrite ^(/~[^/]+)$ $1/ redirect;
        rewrite ^/~(?[^/]+)(.+) $2;
        if ($user) {
                set $root_dir /home/$user/public_html;
        }

    root $root_dir;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

#    include php5_generic;
   location ~ \.php$ {
        include php5_generic;
    }

}
file /etc/nginx/php5_generic
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;

Semoga Bermanfaat. Referensi: https://superuser.com/questions/748310/nginx-userdir-php/748669#748669

Sunday, July 21, 2013

Menabung Gurame

Ikan Gurame merupakan jenis ikan konsumsi yang banyak diminati banyak kalangan masyarakat. Bahkan saat ini banyak rumah makan yang menyediakan aneka menu ikan Gurame, hanya saja kalau kita lihat daftar menu dan harganya rasanya kok mending memilih menu yang lain yang tidak banyak menguras isi kantong tentunya. Ikan ini banyak diminati karena tekstur dagingnya yang kesat dan tidak lembek sehingga mudah untuk disajikan dalam bentuk aneka ragam jenis makanan.


Saya awalnya iseng memelihara ikan gurame, kolam yang hanya 3 x 1.5 m2 saya isi dengan ikan lele sebanyak 300 ekor yang setiap 3 bulan sudah bisa dipanen, lalu saya berfikir menyampurkan ikan gurame, awalnya saya hanya memasukan 10 ekor karena bibit ikan ini relatif mahal dibanding bibit ikan lele. Lalu pada suatu saat ada saudara menawari bibit ikan gurame yang lebi murah dan saya tambahka ke kolam sebanyak 50 ekor lagi.
Setiap 3 bulan  kolam saya kuras untuk mengambil ikan lele dan menabur kembali bibit ikan lele sambil menghitung sisa ikan gurame yang ada (terakhir tersisa 32 ekor). Setelah 4 kali kolam diambil ikan lelenya dan ditabur kembali, ikan gurame sudah berukuran sekitar 3 - 5 Ons. Terakhir saya taburkan ikan lele sebanyak 500 ekor giliran dipanen ikan lelenya tingga 50 ekor. WaW habis... ternyata ikan lele yang kecil2 dimakan gurame yang sudah beranjak jumbo. Setelah itu tidak saya tabur lagi bibit ikan lele dan hanya tersisa gurame saja.

Dan sekarang sudah menuai hasil tabungan guramenya dan tidak perlu ke rumah makan untuk makan Gurame bakar, kalau pengen makan lele  tinggal beli pecel lele yang banyak di pinggir jalan dan relatif murah harganya. Mudah2an kl dapat rezeki bisa nambah lebarin kolamnya jadi bisa bagi2 ke tetangga... :-)

Tuesday, October 9, 2012

Single Linked List Non Circular example (Continue)

#include <iostream>
  #include <stdlib.h>
  using namespace std;
struct Data {
  int nilai;
  Data *next;
  };
  Data *head;
void awal(){
  head=NULL;
  }
  bool isEmpty(){
  if (head==NULL)
  return true;
  return false;
  }
  void tambahDataDepan(int dataBaru) {
  Data *baru;
  baru=(Data*) malloc(sizeof(Data));
  baru->nilai=dataBaru;
  baru->next=baru;
  if (isEmpty()){
  head=baru;
  head->next=head;
  } else {
  Data *bantu;
  bantu=head;
  while (bantu->next!=head){
  bantu=bantu->next;
  }
  baru->next=head;
  head=baru;
  bantu->next=head;
  }
  }
  void tambahDataBelakang(int dataBaru){
  Data *baru;
  baru=(Data*) malloc(sizeof(Data));
  baru->nilai=dataBaru;
  baru->next=baru;
  if (isEmpty()){
  head=baru;
  head->next=head;
  } else {
  Data *bantu;
  bantu=head;
  while (bantu->next!=head){
  bantu=bantu->next;
  }
  bantu->next=baru;
  baru->next=head;
  //head=baru;
  //bantu->next=baru;
  }
  }
  void hapusDepan(){
  if(!isEmpty()){
  int tmp;
  if(head->next!=head){
  Data *hapus;
  hapus=head;
  tmp=head->nilai;
  Data *bantu;
  bantu=head;
  while (bantu->next!=head){
  bantu=bantu->next;
  }
  bantu->next=head->next;
  head=head->next;
  delete hapus;
  }
  else {
  tmp=head->nilai;
  awal();
  }
  cout<<tmp<<" dihapus"<<endl;
  } else {
  cout<<"Data kosong\n";
  }
  }
  void hapusBelakang(){
  Data *hapus,*bantu;
  int tmp;
  if (!isEmpty()){
  hapus=head;
  if (head->next==head)
  {
  tmp=head->nilai;
  head=NULL;
  }
  else {
  bantu=head;
  while (bantu->next->next!=head){
  bantu=bantu->next;
  }
  hapus=bantu->next;
  bantu->next=head;
  tmp=hapus->nilai;
  delete hapus;
  }
  cout<<tmp<<" dihapus"<<endl;
  } else cout<<"data kosong\n";
}
  void cetak(){
  if (!isEmpty()){
  Data *bantu;
  bantu=head;
  do {
  cout<<bantu->nilai<<" ";
  bantu=bantu->next;
  } while(bantu!=head);
  cout<<endl;
  }
  }
  int panjang(){
  int count=0;
  if(!isEmpty())
  {
  count=1;
  Data *bantu;
  bantu=head;
  if(bantu->next==head)
  {
  count=1;
  }
  else
  {
  do
  {
  count++;
  bantu=bantu->next;
  }while(bantu->next!=head);
  }
  }
  else
  {
  count=0;
  }
  return count;
  }
  void swapElement(Data *a, Data *b){
  Data *tmp;
  tmp=a;
  a=b;
  b=tmp;
  }
  int main(){
  awal();
  tambahDataBelakang(5);
  tambahDataDepan(7);
  tambahDataBelakang(17);
  tambahDataBelakang(1);
  tambahDataBelakang(27);
  tambahDataBelakang(10);
  hapusDepan();
  hapusBelakang();
  cetak();
  swapElement(head, head->next);
  cetak();
  cout<<endl<<panjang();
  return 0;
  }


Tugas: SLLC Insertion sort


(kelompok)
1. Buatlah penyisipan node setelah atau sebelum data tertentu.
2. Proses sorting dengan metode insertion sort menggunakan SLLC

data masuk 6

6

data masuk 7

6 7

data masuk 10

6 7 10

data masuk 2

2 6 7 10

data masuk 8

2 6 7 8 10  (menyisipkan)

Sunday, October 7, 2012

Frustasi: Komen bloggger hilang (belum ketemu obatnya)

Sudah 1 minggu ini obrak-abrik setingan blog karena tanpa disadari komen di blog ini hilang, sudah mencari solusi di beberapa blog yang menawarkan solusi dan sudah hampir semua cara dicoba tetapi hasilnya nihil.
Sampai sekarng pun walupun sudah ganti template tetap aja belum nongol kotak komentarnya. Duh... siapa yang bisa bantu ini...?? tolong yang punya solusi kirim email ke didikunila[at]yahoo.com
Ini ngetik sambil berharap ketika di publish komentar di blog ini nongol kembali.....