• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

PHP

Cara install WordPress dengan WP-CLI

Last Updated on 30 April 2020 By tommy Leave a Comment

wordpress first setup wizard
Bagi yang pernah menginstall WordPress pasti tidak asing dengan tampilan gambar diatas. Gambar tersebut adalah proses untuk menginstall WordPress dengan web UI. Untuk Cara yang lebih gampang dan bisa diotomatisai kita bisa menggunakan WP-CLI.

Sebelum menginstall WordPress pastikan sudah terinstall PHP dan MySQL/MariaDB

Download WP-CLI

Download dengan cara ini anda akan selalu mendapatkan versi terbaru. Untuk mendapatkan versi WP-CLI cukup menjalankan ulang perintah dibawah ini
Dengan wget

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Dengan curl

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

install PHP

sudo cp wp-cli.phar /usr/local/bin/wp

set permission, agar WP-CLI bisa dijalankan dari terminal

sudo chmod +x /usr/local/bin/wp

Buat Database

Buat user dan database untuk wordpress

create database blogjaranguda;
GRANT ALL PRIVILEGES ON blogjaranguda.* TO "blogjaranguda"@"localhost" IDENTIFIED BY "qKAbVpgJrugbCtvH9KPd";

Keterangan :
blogjaranguda : nama database
blogjaranguda : user database
qKAbVpgJrugbCtvH9KPd : password database

Download WordPress

Buat folder tempat menginstall WordPress, sebagai contoh disini saya menggunakan blog.jaranguda.com di /var/www

mkdir /var/www/blog.jaranguda.com

Download versi terbaru WordPress

cd /var/www/blog.jaranguda.com
wp core download

Generate wp-config.php

Generate wp-config.php dengan bantuan wp

wp config create --dbname=blogjaranguda --dbuser=blogjaranguda --dbpass=qKAbVpgJrugbCtvH9KPd --dbhost=localhost

Install WordPress

Install WordPress dari cli dengan

wp core install --url=blog.jaranguda.com --title="Blog Jaranguda" --admin_user=jaranguda --admin_password=jaranguda123 --admin_email=hello@jaranguda.com

setelah terinstall buka blog anda di alamat yang sudah dibuat diatas.

Filed Under: PHP

Cara Install Laravel 7 dan SSL di Ubuntu 20.04 Focal Fossa

Last Updated on 24 April 2020 By tommy 2 Comments

Menginstall Laravel 7 di Ubuntu bisa berhari-hari, tetapi bisa juga hanya beberapa menit. Tergantung dari kemampuan menginstall dan konfigurasinya, belum lagi memasang SSL? Tutorial kali akan dibahas tahap demi tahap cara install Laravel 7 di Ubuntu Focal Fossa, tutorial ini cocok untuk pemula karena dipandu dari awal sampai akhir dengan contoh nyata.

Sebelum memulai install PHP Nginx MariaDB

Agar laravel bisa langsung diakses dari domain pilihan anda, yang perlu dilakukan , Set A (IP VPS) record ke domain pilihan anda contoh laravel.jaranguda.com
a record subdomain

Buat Database dan User Baru

Untuk koneksi ke database, kita akan membuat user dan database baru. Jalankan mysql lalu eksekusi

create database laravel;
GRANT ALL PRIVILEGES ON laravel.* TO "laravel"@"localhost" IDENTIFIED BY "K7XLHMhbvfKbLfprweJd";

Install Composer

Install composer langsung dari repository Ubuntu

apt install composer -y

Install Laravel

Install Laravel dengan composer. Kita akan meletakkan folder Laravel di /var/www/laravel.jaranguda.com agar lebih teratur dan rapi kalo dalam satu server ada banyak aplikasi.

cd /var/www/
composer create-project --prefer-dist laravel/laravel laravel.jaranguda.com

Jalankan composer install

Pindah ke folder /var/www/laravel.jaranguda.com, lalu jalankan composer install

composer install --no-dev

Buka file .env di /var/www/laravel.jaranguda.com, sesuaikan konfigurasi mysql diatas

APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=K7XLHMhbvfKbLfprweJd

Ubah file/folder permission, agar bisa diakses, dan ditulis oleh user nginx, dalam hal ini www-data

chown www-data:www-data -R /var/www/laravel.jaranguda.com

Buat Server Block Nginx

Agar website tersebut bisa diakses dari Nginx, kita harus membuat server block untuk domain tersebut. Buat file /etc/nginx/sites-enabled/laravel.jaranguda.com.conf

server {
    listen       80;
    server_name  laravel.jaranguda.com;
    root   /var/www/laravel.jaranguda.com/public/;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php(?:$|/) {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_intercept_errors on;
    }
}

Ingat untuk mengganti laravel.jaranguda.com dengan domain yang anda miliki. Setelah selesai, test dan restart nginx

nginx -t
# bila semuanya oke
systemctl restart nginx

Buka laravel.jaranguda.com, seharusnya sudah muncul halaman default Laravel
install laravel berhasil

Untuk test koneksi database, buka file routes/web.php, tambahkan code berikut ini

Route::get('/tes', function () {
   dd(\DB::connection()->getDatabaseName());
});

buka di browser domain/tes, harusnya tampil laravel, sesuai dengan database yang disetting di .env
laravel test database

Setelah semuanya di coba dan berjalan dengan lancar, saatnya install SSL.

Setting SSL

Untuk SSL kita akan menggunakan SSL gratis dari Lets Encrypt, untuk menginstallnya kita menggunakan bantuan acme.sh.
Download dan install acme.sh dengan

curl https://get.acme.sh | sh

karena acme.sh menambah file shortcut di .bashrc, kita harus me-reload file .bashrc

source ~/.bashrc
# atau
. ~/.bashrc

Karena kita akan menggunakan mode standalone untuk validasi domain, jadi kita perlu mematikan service nginx sebentar. Port 80 tersebut akan digunakan oleh acme.sh

systemctl stop nginx

Request SSL untuk domain laravel.jaranguda.com

acme.sh --issue -d laravel.jaranguda.com --standalone

tunggu 1 menit sampai muncul
ssl generated by server

Sekarang ini dimana-mana http diredirect langsung ke https, maka kita akan mengikuti konsep tersebut disini. Setiap user yang mengunjungi http://laravel.jaranguda.com akan dilempar ke https//laravel.jaranguda.com.
Sertifikat SSL telah diterima, sekarang waktunya menggunakan SSL tersebut di nginx. Ubah /etc/nginx/sites-enabled/laravel.jaranguda.com.conf menjadi

server {
    listen 80;
    server_name laravel.jaranguda.com;
    return 301 https://$server_name$request_uri;
}
 
server {
    listen 443 ssl http2;
    server_name  laravel.jaranguda.com;
    root   /var/www/laravel.jaranguda.com/public/;
    index index.php index.html;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
 
   ssl_certificate /root/.acme.sh/laravel.jaranguda.com/fullchain.cer;
   ssl_certificate_key /root/.acme.sh/laravel.jaranguda.com/laravel.jaranguda.com.key;
 
    location ~ \.php(?:$|/) {
        try_files $uri =404;   
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_intercept_errors on;
    }
}

Tes dan restart nginx

nginx -t
# bila semuanya oke
systemctl restart nginx

Buka kembali http://laravel.jaranguda.com/tes
redirect http ke https laravel
sudah kelihatan langsung diarahkan ke https

Filed Under: Linux, PHP

Cara Membuat Autodeploy Codeigniter di Gitlab dari Awal

Last Updated on 22 April 2020 By tommy 5 Comments

Membuat autodeploy untuk Codeigniter di Gitlab tidak susah, yang terpenting kita tau cara manual installnya, karena cara manual inilah yang akan kita jadikan acuan membuat otomatisasinya. Pembuatan autodeploy untuk bahasa PHP tidak terlalu jauh beda, tinggal disesuaikan beberapa tahap untuk masing-masing framework. Autodeploy tidak begantung ke framework, jadi bisa saja dibuat untuk native PHP.

Untuk deploy ke production server kita akan menggunakan SSH key, agar prosesnya bisa otomatis, dan cara ini yang paling aman. Beberapa hal yang perlu diketahui sebelumnya

Root folder codeigniter : /var/www/codeigniter.jaranguda.com
Domain : codeigniter.jaranguda.com
Git project : [email protected]:jarangudacom/codeigniter4.git
Script Deploy : /home/jaranguda/scripts/deploy/codeigniter.sh

Buat SSH Key Baru

Dari Linux generate key baru dengan

ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/deploy-id_rsa -q

file yang akan kita simpan di Gitlab adalah ~/.ssh/deploy-id_rsa, file ini berisi private key. Sementara untuk di server ~/.ssh/deploy-id_rsa.pub, copy isi file deploy-id_rsa.pub, letakkan didalam file ~/.ssh/authorized_keys di server anda.
isi public key ssh

Setting Konfigurasi Project

Buka Project anda gitlab, klik Settings -> CI/CD -> Variables
gitlab ci cd
klik Add Variable

Pertama
Key : SSH_PRIVATE_KEY
Value : Isi file ~/.ssh/deploy-id_rsa

Kedua
Key : IP_SERVER
Value : IP Server anda
variable ci cd gitlab

Di menu CI/CD tersebut, lihat Deploy Keys
public key gitlab
Ambil public key SSH dari server anda, isinya simpan di kolom key. Ini tujuannya agar server bisa mendownload berkas git dari project ini.

Konfigurasi di Server

Di server sendiri pastikan sudah terinstall PHP, MySQL dan Composer

Untuk pertama kali cloning repository dari gitlab, ke root folder

git clone git@gitlab.com:jarangudacom/codeigniter4.git /var/www/codeigniter.jaranguda.com

proses ini hanya perlu satu kali, karena selanjutnya agar dijalankan oleh script codeigniter.sh

git clone git@gitlab.com:jarangudacom/codeigniter4.git /var/www/codeigniter.jaranguda.com
#jalankan composer
composer install --prefer-dist --no-progress --no-suggest

di folder /var/www/codeigniter.jaranguda.com

copy env .env

edit file .env tersebut, sesuaikan dengan dibawah ini

CI_ENVIRONMENT = production
app.baseURL = 'http://codeigniter.jaranguda.com/'

Buat file baru /home/jaranguda/scripts/deploy/codeigniter.sh yang berisi

cd /var/www/codeigniter.jaranguda.com
git pull
git reset --hard origin/master
composer install --prefer-dist --no-progress --no-suggest
chown www-data:www-data -R /var/www/codeigniter.jaranguda.com/writable

File gitlab-ci.yml

Buat .gitlab-ci.yml di project anda, contoh sederhananya

image: debian:latest
 
before_script:
     - mkdir -p ~/.ssh
     - echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
     - chmod 600 ~/.ssh/id_rsa
     - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
 
deploy:
  script:
    - ssh -i ~/.ssh/id_rsa root@$IP_SERVER "bash /home/jaranguda/scripts/deploy/codeigniter.sh"

isi autodeploy gitlab

di file diatas terdapat /home/jaranguda/scripts/deploy/codeigniter.sh, file inilah yang nanti melakukan pull dari git dan deploynya.

setelah mengupdate file .gitlab-ci.yml, Gitlab pipeline akan segera jalan, dan bisa dilihat
pipeline sukses.

Buka domain anda
codeigniter yang terdeploy

Penutup

Cara ini masih sederhana, yang diutamakan adalah konsep cara membuat Auto Deploy di Gitlab. Setelah tahap ini selesai bisa ditambah dengan berbagai macam testing

Filed Under: Linux, PHP

Lumen 7 Database connection not configured.

Last Updated on 5 April 2020 By tommy Leave a Comment

Lumen 7 otomatis menggunakan konfigurasi .env, untuk default connectionnya. Bila anda menggunakan file konfigurasi config/database.php dan mendapati error “Database connection [] not configured.”.

Lumen database error

ada beberapa kesalahan yang mungkin terjadi.
– Penamaan variabel salah
– Bila menggunakan multi database anda lupa menentukan defaultnya
– file .env kosong
– anda lupa menambah tag pembuka PHP

<?php

di awal file database.php. Tag pembuka tersebut sangat penting, kalo tidak ada Lumen tidak akan mengenali file tersebut sebagai file PHP, jadi si lewatkan begitu saja.

Contoh konfigurasi database.php untuk MySQL

<?php
 
return [
  'default' => 'mysql',
  'connections' => [
    'mysql' => [
      'driver' => 'mysql',
      'host' => env('DB_HOST'),
      'database' => env('DB_DATABASE'),
      'username' => env('DB_USERNAME'),
      'password' => env('DB_PASSWORD'),
      'charset'   => 'utf8',
      'collation' => 'utf8_unicode_ci',
    ],
  ]
];

Bila setelah perubahan tersebut anda masih menemukan error yang sama, jalankan

php artisan cache:clear
composer dump-autoload

khusus untuk yang menggunakan php artisan serve, jalankan ulang perintah tersebut setelah melakukan perubaha konfigurasi.

Solusi lain bila anda hanya menggunakan satu database, yaitu dengan menggunakan default .env dan menghapus file config/database.php

Filed Under: PHP

Mengambil Data Kurs Terbaru dengan CodeIgniter 4

Last Updated on 4 April 2020 By tommy Leave a Comment

Kali ini kita akan membuat tampilan untuk menampilkan data kurs dengan menggunakan API kurs.web.id. Karena kita menggunakan API jadi prosesnya jauh lebih mudah, dan cepat

Install Codeigniter 4

Install codeigniter dengan bantuan composer

composer create-project codeigniter4/appstarter kurs

View Kurs

Pindah ke folder kurs, hapus file app/Views/welcome_message.php, ganti dengan

 
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Situs Kurs - Jaranguda.com</title>
 
 
    <!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
 
 
<meta name="theme-color" content="#563d7c">
 
 
    <style>
      .bd-placeholder-img {
        font-size: 1.125rem;
        text-anchor: middle;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
      }
 
      @media (min-width: 768px) {
        .bd-placeholder-img-lg {
          font-size: 3.5rem;
        }
      }
body {
  padding-top: 5rem;
}
.starter-template {
  padding: 3rem 1.5rem;
  text-align: center;
}
    </style>
    <!-- Custom styles for this template -->
  </head>
  <body>
    <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
 
  <div class="collapse navbar-collapse" id="navbarsExampleDefault">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
        <div class="dropdown-menu" aria-labelledby="dropdown01">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
      <button class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>
 
<main role="main" class="container">
 
  <div class="starter-template">
    <h1>Data Kurs Terbaru</h1>
    <p class="lead">
		<?php
 
		$api = file_get_contents("https://kurs.web.id/api/v1/bca");
		$result = json_decode($api);
 
		function formatRupiah($angka) {
 
		    if(is_numeric($angka)) {
		        $format_rupiah = 'Rp ' . number_format($angka, '2', ',', '.');
		        return $format_rupiah;
		    }
		    else {
		        echo "$angka" . " bukan angka yang valid!" . "\n";
		    }
		}
		?>
 
		<table class="table table-bordered">
			<tr>
				<td>Bank</td>
				<td><?php echo $result->bank; ?></td>
			</tr>
			<tr>
				<td>Mata Uang</td>
				<td><?php echo $result->matauang; ?></td>
			</tr>
			<tr>
				<td>Kurs Beli</td>
				<td><?php echo formatRupiah($result->jual); ?></td>
			</tr>
			<tr>
				<td>Kurs Jual</td>
				<td><?php echo formatRupiah($result->beli); ?></td>
			</tr>
			<tr>
				<td>Diupdate</td>
				<td><?php echo $result->timestamp; ?></td>
			</tr>
		</table>
    </p>
 
  </div>
 
</main><!-- /.container -->
</html>

Dari code diatas yang masih perlu di format adalah tanggal yang ditampilkan. Itu adalah bagian anda untuk mengerjakannya ;)

Jalankan Codeigniter Spark

Spart adalah buildin development server dari Codeigniter, seperti artisan serve di laravel

php spark serve

Buka http://localhost:8000, di browser
api kurs dollar

Filed Under: PHP

Mengirim Email Dengan SendinBlue API PHP

Last Updated on 27 February 2020 By tommy Leave a Comment

Contoh mengirim email transaction dengan API SendinBlue, kita akan menggunakan cURL untuk mengirim email. Selain cURL bisa juga diganti dengan Guzzle. SendinBlue ini cocok dibuat sebagai pengganti Mailgun yang sekarang sudah tidak menyediakan free package.

<?php
 
$APIKEY = "";
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.sendinblue.com/v3/smtp/email');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$data = '{
   "sender":{
      "name":"Pengirim Email",
      "email":"[email protected]"
   },
   "to":[
      {
         "name":"Penerima Email"
         "email":"[email protected]",
      }
   ],
   "subject":"Kirim Email Pake API SendinBlue",
   "htmlContent":"<html><head></head><body><p>Hello,</p>Halo, lagi ngirim email dari PHP.</p></body></html>"
}';
 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 
$headers = array();
$headers[] = 'Accept: application/json';
$headers[] = 'Api-Key: $APIKEY';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
 
var_dump($result);

Ganti $APIKEY dengan API key dari SendinBlue. Jalankan script diatas, berikut ini tampilan email yang masuk setelah menjalankan script
gambar kirim email via api

Filed Under: PHP

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to page 4
  • Go to page 5
  • Interim pages omitted …
  • Go to page 38
  • Go to Next Page »

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey
  • MacOS Minta Install Git

Komentar

  • Ari on Cara Mematikan SSID Molecool Balifiber
  • kiki anarki on Mengambil Data dari Situs BPJS Ketenagakerjaan dengan PHP cURL
  • musgan on Password Router Huawei HG8245H5 Indihome
  • ghabily on Mengambil Informasi Router Alcatel Lucent G-241W-A dengan PHP
  • nea on Mencari urutan angka yang hilang di PHP

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784k views
  • Password Superadmin Huawei HG8245A 314.2k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 272.2k views
  • Cara Setting Wireless ZTE F609 Indihome 256.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.1k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.5k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 150.3k views
  • Cara Reset Password ZTE F609 Indihome 147.2k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 112.9k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java