Selasa, 09 Mei 2017

Mengatasi MariDB error "is not configured yet"

Jika Anda mengalami masalah di MariaDB dengan pesan error "is not configured yet" gara-gara gagal install atau upgrade khusus di sistem operasi linux ubuntu dan turunannya ...  silahkan coba cara di bawah ini.

1. Cadangkan database MariaDB
- Buka Terminal (Application -> Accessories -> Terminal)
- Jalankan perintah :
$ sudo cp -r /var/lib/mysql /tmp
2. Hapus database
$ sudo rm -fr /var/lib/mysql
3. Install ulang database server MariaDB

$ sudo apt-get install mariadb-server mariadb-client
4. Pulihkan database
$ sudo cp -r /temp/mysql /var/lib/
5. Ubah hak akses folder data MariaDB
$ sudo chown mysql:mysql /var/lib/mysql -R
6. Jalankan kembali service MariaDB

$ sudo service mysql start
Silahkan dicoba kembali untuk mengakses database dengan menggunakan console atau via phpmyadmin.

Semoga berhasil.

Instalasi Nginx, PHP 7.0-FPM & MariaDB di Linux Mint/Ubuntu

Terakhir kali saya menulis tentang Instalasi Nginx, PHP 5 & MySQL di LinuxMint/Ubuntu ... sudah agak lama ... dan tidak sengaja terhapus .. hiks..hiks..hiks :D

Oke .. kali ini sebagai penggantinya saya akan menulis lagi tentang langkah2 instalasi Nginx, PHP 7.0-FPM & MariDB di Linux Mint/Ubuntu via terminal. Mengapa saya memilih MariaDB sebagai database server MySQL ... alasannya baca saja sendiri di sini . Versi PHP yang akan diinstall ini adalah php yang dijalankan dalam mode php-fpm (FastCGI Process Manager) untuk penghematan memory server.  Baiklah .. mari kita mulai, berikut ini langkah-langkahnya :

1. Instalasi MariaDB (Database Server)
- Buka Terminal (Application -> Accessories -> Terminal)
- Jalankan perintah :
$ sudo apt-get update
$ sudo apt-get install mariadb-server mariadb-client
- Tunggu & perhatikan proses hingga selesai. Kemudian lanjutkan dengan proses instalasi MariaDB dalam mode aman dengan perintah :
$ sudo mysql_secure_installation
- Lakukan penyetelan password root dan konfigurasi lainnya
- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y 
Jika sudah selesai silahkan coba melihat status service mariadb dengan mengetikan :
$ sudo systemctl status mariadb
atau dengan perintah :
$ sudo service mariadb status
Silahkan mencoba untuk tes mematikan dan menyalakan service mariadb dengan perintah :
$ sudo systemctl stop mariadb
$ sudo systemctl start mariadb
- Selanjutnya coba login ke maridb melalui konsol dengan perintah :
$ mysql -u root -p
- Jika diminta password, masukan password root/admin mariadb sesuai dengan yang diisikan waktu instalasi. Jika berhasil login, maka akan muncul tampilan konsol/shell maridb kurang lebih seperti berikut ini :
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.1.14-MariaDB-1~xenial mariadb.org binary distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

mysql>
- Informasi port dan versi server mungkin akan berbeda dengan tampilan di tempat Anda.
- Silahkan keluar dari konsol mysql dengan perintah :  

mysql>quit;

2. Instalasi NGINX (Web Server)
- Dari terminal, ketik perintah : 
$ sudo apt-get install nginx
Tunggu sampai proses selesai. Jika sudah selesai, silahkan tes untuk menjalankan atau menghentikan service web server Nginx ketik perintah ini :

$ sudo service nginx start
$ sudo service nginx stop
Coba buka browser dan ketikkan alamat http://localhost atau http://127.0.0.1 maka browser akan menampilkan ucapan selamat datang ala Nginx. Sampai di sini web server nginx sudah berhasil diinstall.


3. Instalasi PHP 7

- Dari terminal, ketik perintah : 

$ sudo apt-get install php7.0-fpm 
Tunggu sampai proses selesai. Jika sudah selesai lanjutkan dengan proses instalasi modul-modul php. Dari terminal ketik perintah ini :
$ sudo apt_get install php7.0-mysql php7.0-curl php7.0-gd php5-imagick php7.0-imap php7.0-mcrypt php7.0-memcache ph7.0-mhash php7.0-snmp php7.0-json php7.0-opcache
Tunggu sampai proses selesai. Jika sudah selesai lanjutkan dengan proses konfigurasi file php.ini. Dari terminal ketik perintah ini :
$ sudo nano /etc/php/7.0/fpm/php.ini
Cari tulisan cgi.fix_pathinfo=1, kemudian ganti angka 1 tersebut dengan 0. Agar cepat mencarinya, Anda bisa menggunakan ctrl + W. Alasan kenapa angka 1 itu diubah adalah alasan keamanan. Jika itu tetap 1 maka PHP akan memproses file yang hampir sama dengan file yang direquest. Tentu itu bisa menjadi resiko keamanan bagi Anda. Jika itu diubah menjadi 0, maka PHP hanya akan memproses file yang benar-benar sama.


Setelah selesai Anda bisa keluar dan menyimpannya dengan menekan ctrl + X lalu pilih Yes dengan menekan Y. Selanjutnya Anda perlu mengubah sedikit di file configurasi PHP FPM. Lakukan dengan perintah ini :
$ sudo nano /etc/php/7.0/fpm/pool.d/www.conf 
Cari bagian listen = 127.0.0.1:9000 dan ubah menjadi /var/run/php/php7.0-fpm.sock.
listen = /var/run/php/php7.0-fpm.sock
Silahkan keluar dan menyimpannya dengan menekan ctrl + X lalu pilih Yes dengan menekan Y. Restart service php7.0-fpm.
$ sudo service php7.0-fpm restart

4. Konfigurasi NGINX 

- Ubah file virtual host default, ketik perintah : 

$ sudo nano /etc/nginx/sites-available/default 
Kemudian ubah isinya khususnya bagian yang berwarna merah, sehingga menjadi kurang lebih seperti ini :
server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name serverku.com;

    location / {
        # -- htaccess mode
        #try_files $uri $uri/ /index.php?$args;
        try_files $uri $uri/ /index.php?q=$request_uri&$args;
    }

    error_page 403 /403.html;
    location = /403.html {
        root /usr/share/nginx/error;
        internal;
    }

    error_page 404 /404.html;
    location = /404.html {
        root /usr/share/nginx/error;
        internal;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/error;
        internal;
    }

    location ~ \.php$ {
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 #
 location ~ \.php$ {
  include snippets/fastcgi-php.conf;
 
 # # With php7.0-cgi alone:
 # fastcgi_pass 127.0.0.1:9000;
  # With php7.0-fpm:
  fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 }

 # deny access to .htaccess files, if Apache's document root
 # concurs with nginx's one
 #
 location ~ /\.ht {
  deny all;
 }
    }
} 
Silahkan keluar dan menyimpannya dengan menekan ctrl + X lalu pilih Yes dengan menekan Y. Oke ... selesai semua proses instalasi Nginx, php & mysql. Sebagai catatan, lokasi file program web (document root) di /usr/share/nginx/html/

Selanjutnya Anda tinggal mencoba menampilkan halaman web sederhana dengan membuat file .php yang berisi skrip <?php phpinfo(); ?>

Sebelum saya akhiri tulisan ini .. sekedar tips untuk untuk menyalakan & mematikan web server gunakan peritah ini :
# Menyalakan 
$ sudo service ngingx start
$ sudo service php7.0-fpm start
$ sudo service mysql start

# Mematikan 
$ sudo service ngingx stop
$ sudo service php7.0-fpm stop
$ sudo service mysql stop
Baiklah ... demikian tulisan saya tentang instalasi Nginx, php7.0-fpm & MariaDB, silahkan coba memanfaatkan web server Anda dan semoga tulisan ini bermanfaat.

Happy Coding !!