Sharing seputar Dunia Tkj dan Blogging ^^

Showing posts with label Apache. Show all posts
Showing posts with label Apache. Show all posts

Thursday, July 6, 2017

Cara Mengetahui Di Mana Letak Konfigurasi Apache, MySQL, Nginx dan PHP


Dalam GNU/Linux untuk mengatur suatu aplikasi sangatlah mudah yakni kita hanya perlu merubahnya dari berkas konfigurasi (configuration file). Namun, perbedaan distribusi GNU/Linux, menyebabkan berbeda pula di mana diletakan berkas tersebut. Dengan kata lain, jika kita ingin merubahan konfigurasi aplikasi A, kita harus menyesuaikan dengan distro A tersebut, tidak boleh menggunakan dari distro B, meskipun nama aplikasinya sama. Cukup merepotkan memang. Contoh sederhanannya dalam eperti Apache dan Nginx tiap distro berbeda di mana letaknya.
Tulisan kali ini, penulis mencoba memberikan tips bagaimana cara mengetahui letak berkas konfigurasi dari Apache, MySQL/Mariadb, Nginx dan PHP.

Berikut ini cara bagaimana kita dapat mengetahui letak konfigurasi mereka dengan memanfaatkan perintah-perintah sederhana berikut:

Apache

Untuk Apache beberapa distro GNU/Linux berbeda dalam penamaannya Anda bisa melakukan salah satu dari tiga perintah di bawah ini:
$ apachectl -V | grep -E "HTTPD_ROOT|SERVER_CONFIG_FILE
atau
$ httpd -V | grep -E "HTTPD_ROOT|SERVER_CONFIG_FILE"
atau
$ apache2ctl -V | grep -E "HTTPD_ROOT|SERVER_CONFIG_FILE"
Kita akan melihat hasilnya seperti berikut:
Dari gambar di atas tertera nilai dari HTTPD_ROOT="/etc/httpd" dan SERVER_CONFIG_FILE="conf/httpd.conf" itu artinya konfigurasi Apache terletak pada: /etc/httpd/conf/httpd.conf

MySQL/Mariadb

Kemudian untuk MySQL atau Mariadb sama halnya seperti apache kita dapat melakukan salah satu perintah berikut:
$ mysqladmin --help | grep my.cnf | head -1
atau
$ mysql --help | grep my.cnf | head -1
Dilihat dari hasil gambar di atas terdapat 3 berkas konfigurasi. Untuk berkas /etc/my.cnf dan /etc/mysql/my.conf merupakan konfigurasi secara default atau global konfigurasi, sedangkan ~/.my.conf merupakan konfigurasi tiap-tiap user.

Nginx

Kemudian nginx caranya cukup mudah, kita hanya perlu melakukan perintah berikut:
$ nginx -V


Dilihat dari gambar di atas dapat disimpulkan bahwa berkas konfigurasi Nginx terletak pada /etc/nginx/nginx.conf.

PHP

Terakhir PHP kita hanya perlu mencari berkas bernama php.ini.
$ php -i | grep php.ini

Mudah bukan? Dengan begini kita tidak perlu repot lagi mencari di mana letak konfigurasi mereka.

Semoga bermanfaat.

Thursday, November 10, 2016

Mengaktifkan mod_rewrite Apache untuk Kebutuhan .htaccess di Centos


Apache merupakan webserver yang cukup banyak digunakan di server atau hosting. Apache juga merupakan web server yang modular itu artinya kita diberikan kebebasan mengkustomisasi modul dengan mengaktifkan atau menonaktikan disesuaikan dengan kebutuhan.

Ketika kita memiliki suatu situs terkadang membutuhkan pretty URL, fungsinya adalah agar lebih mudah dibaca, juga meningkatkan SEO. Setelah kita memasang LAMP (Linux, Apache, Mariadb/MySQL dan PHP), Apache secara default tidak mengaktifkan mod_rewrite. Sehingga ketika suatu web kita dibuatkan .htaccess sebagai script untuk membuat pretty URL tersebut, karena mod_rewrite tidak aktif maka Apache akan menampilkan error.

Tutorial kali ini, penulis akan memberikan tentang cara bagaimana mengaktfikan mod_rewrite tersebut agar Anda dapat menggunakan .htaccess. Oiya tutorial ini dikhususkan bagia Anda pengguna Centos. Jika Anda menggunakan distro GNU/Linux lainnya seperti Ubuntu bisa membaca tulisan sebelumnya dari linuxku.com yakni:
http://www.linuxku.com/2015/02/mengaktifkan-modul-rewrite-di-apache-webserver.html
Langsung saja kita mulai praktek, pertama-tama Anda login terlebih dahulu via ssh ke server / vps Anda. Kemudian pastikan Anda telah memasang LAMP, jika belum bisa membaca tulisan sebelumnya dari linuxku.com yakni:
http://www.linuxku.com/2015/06/instalasi-webserver-apache-php-mysql-phpmyadmin-di-centos-7-rhel-7-debian-8-ubuntu-14-04.html
Coba Anda cek, apakah Apache telah menjalankan module mod_rewrite

$ sudo systemctl start httpd
$ httpd -M | grep rewrite
Apache akan menampilkan output seperti berikut:
. . .
 remoteip_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 slotmem_plain_module (shared)
 . . .
Jika rewrite_module tidak tampak pada output di atas, itu artinya Apache Anda belum diaktifkan. Kita dapat mengaktifkannya dengan menyunting 00-base.conf dengan vi, yakni:
$ sudo vi /etc/httpd/conf.modules.d/00-base.conf
Cari kata berikut:

LoadModule rewrite_module modules/mod_rewrite.so

Jika di comment (dengan tanda pagar) maka hilangkan tanda pagar itu.
Jik sudah, kemudian kita sunting httpd.conf
$ sudo vi /etc/httpd/conf/httpd.conf 
Kemudian Anda sunting dengan mengubah AllowOverride dengan nilai All, skrip tersebut tepat berada di bawah <Directory /var/www/html> kira-kira seperti berikut:

<Directory /var/www/html>
. . .
 #
 # AllowOverride controls what directives may be placed in .htaccess files.
 # It can be "All", "None", or any combination of the keywords:
 # Options FileInfo AuthConfig Limit
 #
 AllowOverride All
...

Jika sudah langsung saja Anda restart Apache Anda.
$ sudo systemctl restart httpd
Viola.. kini Centos Anda sudah bisa menggunakan .htaccess.

Saturday, October 8, 2016

Mudah Upgrading PHP 5 ke PHP 7 di Centos


  
Tutorial kali ini penulis akan memberikan cara tentang bagaimana mudah untuk meng-upgrading PHP versi 5 ke PHP versi 7, pada Anda penggunakan web server Apache ataupun Nginx di Centos.

Sebelumnya kita telah mengatahui bahwa dalam repositori resmi di Centos baik Centos 6 ataupun 7 tidaklah menyediakan PHP versi 7, melaikan hanya PHP versi 5 saja. Oleh karenanya kita membutuhkan repositori luar untuk memasang PHP 7 tersebut.
Langsung saja kita mulai. Pertama-tama kita membutuhkan repositori EPEL untuk memasang php 7. Penulis menyarankan gunakan skrip dari IUS (Inline with Upstream Stable) yang mana skrip tersebut dapat mempermudah kita dalam hal memasang paket terbaru yang tidak ada dalam repository Centos.
$ wget -o install.sh https://setup.ius.io/
$ chmod +x install.sh 
$ ./install.sh
Lalu langkah selanjutnya kita perlu untuk mengkonfigurasi pada Apache atau Nginx.

Kita hapus dahulu paket lama dari Centos kita yang sebelumya telah ada, dengan cara berikut:
Untuk pengguna Apache:
$ yum remove php-common mod_php php-cli
Untuk pengguna Nginx:
$ yum remove php-common php-fpm php-cli
Kemudian baru kita pasang paket PHP 7.
Untuk pengguna Apache:
$ yum install php70u-mysqlnd mod_php70u php70u-cli
$ sudo systemctl restart httpd
Untuk pengguna Nginx:
$ yum install php70u-mysqlnd php70u-fpm-nginx php70u-cli
Khusus bagi Anda pengguna Nginx perlu adanya tahap konfigurasi untuk PHP. Seperti yang telah kita ketahui bahwa Nginx menjalankan PHP menggunakan php-fpm. Jika sebelumnya dalam pengaturan Anda mengunakan listen berupa port 9000 bukan dengan socket pada pengaturan php-fpm Anda. Maka, perlu kita ubah menjadi socket dalam listen tersebut.
$ sudo systemctl stop php-fpm
$ sudo vi /etc/php-fpm.d/www.conf
Lalu cari:
listen = 127.0.0.1:9000
Anda bisa menghapus atau memberi tanda comment yakni tanda titik koma (semicolon). Kemudain ganti menjadi:
listen = /run/php-fpm/www.sock
Kemudian hilangkan tanda komentar pada:
;listen.acl_users = nginx
Langkah selanjutnya yakni kita masuk pada pengaturan Nginx.
$ sudo vi /etc/nginx/default.conf
Lalu isikan seperti kode di bawah ini:
location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
Langkah selanjutnya kita merestart Nginx dan php-fpm.
$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx
Semoga bermanfaat :)

Sumber:

  1. https://www.vultr.com/docs/how-to-update-php-from-5-to-7-nginx-apache-centos-7
  2. Gambar diambil dari: https://kinsta.com/wp-content/uploads/2015/08/Getting-Ready-For-PHP7.jpg

Saturday, September 3, 2016

Mengaktifkan Apache Userdir di GNU/Linux

Tutorial lalu di linuxku.com kita telah membahas mengenai instalasi atau pemasangan LAMP, yang merupakan kependekan dari Linux, Apache, Mariadb/MySQL, dan PHP. Sekarang pembahasan kita mulai dengan userdir.

Apa itu userdir? Singkatnya userdir kependekan dari user directory, yakni direktori untuk para pengguna akun. Maksudnya adalah kita dapat mengakses direktori dari user account, dari satu domain.

Apa tujuannya? Tujuan utamanya adalah untuk mempermudah developing web seperti taham testing sebelum production, atau perbedaan tampilan disetiap user, yang mana kita tidak perlu lagi membuat direktori disetiap domain, atau pembuatan subdomain.

Langsung saja kita mulai mengimplementasikan userdir tersebut di GNU/Linux.


Untuk pengguna Debian/Ubuntu dan derivatifnya:
$ sudo mkdir /home/pengguna/public_html
$ sudo a2enmod userdir
$ sudo service apache2 restart

Untuk pengguna Fedora/RHEL/Centos
$ sudo mkdir /home/pengguna/public_html
$ sudo chmod 711 /home/pengguna
$ sudo chmod 755 /home/pengguna/public_html
Perhatian pastikan pengguna mana saja yang boleh menggunakan userdir.

Lalu sunting pengaturan Apachenya:
$ sudo nano /etc/httpd/conf/httpd.conf
Beri comment pada:
# UserDir disabled 
Kemudian uncomment pada:
 UserDir public_html
Dan uncomment juga pada:
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
 Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>
Hasilnya seperti gambar di bawah ini:
Jika sudah, keluar dari nano dan restart Apache:
$ sudo service httpd restart
atau pengguna Systemd:
$ sudo systemctl restart httpd

Untuk distro lainnya pastikan Anda mengetahui di mana letak konfigurasi Apache. Dan bisa mengikuti tutorial ini pada pembahasa Fedora di atas, karena prinsipnya sama, kecuali Debian/Ubuntu dan derivatifnya ia sangat mudah karena telah disediakan skrip a2enmod.

Untuk mengakses userdir, Anda hanya perlu memasukan URL di browser sebagai berkut:

http://domainAnda.com/~pengguna

Jika Anda berhasil maka hasilnya akan seperti gambar di bawah:
Semoga bermanfaat :)

Saturday, August 13, 2016

Mengaktifkan Password Authentication pada Apache di Ubuntu

 
Ketika menjalankan suatu situs ada bagian di mana bagian tersebut merupakan bagian yang dibatasi untuk pengunjung biasa masuk. Singkatnya seperti ruang atau halaman administrasi (administration pages) pada suatu situs.

Pada dasarnya untuk memasuki halaman administrasi kita diberikan pengecekan atau otentikasi, pengguna mana yang boleh masuk atau tidak dari bawaan web application. Sebetulnya server web itu sendiri juga dapat digunakan untuk membatasi hak akses, dengan tujuan lain yakni agar lebih kuat sebelum masuk ke login page, harus melewati otentikasi dari web server terlebih dahulu.

Langsung saja kita kepokok pembahasan. Pertama-tama Anda install LAMP terlebih dahulu, Anda dapat mengikuti tutorial dari tulisan di linuxku.com sebelumnya yakni:

http://www.linuxku.com/2015/06/instalasi-webserver-apache-php-mysql-phpmyadmin-di-centos-7-rhel-7-debian-8-ubuntu-14-04.html

Kemudian tambahkan:
$ sudo apt-get install apache2-utils
Lalu kita buat password authentiocation nya dengan cara:
$ sudo htpasswd -c /etc/apache2/.htpasswd ali
Perlu diketahui bahwa /etc/apach2/.htpasswd itu bebas Anda taru di direktori manapun, kemudian opsi -c mengindetifikasikan bahwa untuk membuat berkas yang lebih spesifik, dalam contoh di atasa yakni ali.
Untuk melihat hasil password yang tergenerated berikut caranya:
$ cat /etc/apache2/.htpasswd
Lalu lakukan tahap konfigurasi pada Apache:
$ sudo nano /etc/apache2/sites-available/000-default.conf
Dan tambahkan pengaturan seperti skrip di bawah ini:
        <Directory "/var/www/html">
              AuthType Basic
              AuthName "Restricted Content"
              AuthUserFile /etc/apache2/.htpasswd
              Require valid-user

              Options Indexes FollowSymLinks
              AllowOverride All
              Require all granted
         </Directory>

Kemudian buat .htaccess pada directory root, yakni pada /var/www/html:
$ sudo nano /var/www/html/.htaccess
Dan isikan skrip di bawah ini:
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Cek terlebih dahulu pengaturan Apache Anda, sudah betul atau belum?
$ sudo apache2ctl configtest
Jika sudah, langsung saja restart Apache-nya:
$ sudo service apache2 restart
Tes dan hasilnya akan seperti gambar berikut:
Semoga bermanfaat :)

Saturday, July 30, 2016

Memasang SSL Let's Encrypt untuk Apache di Ubuntu


SSL kependekan dari Secure Socket Layer, adalah lapisan keamanan untuk melindungi transaksi antara server dan client dengan teknologi enkripsi data yang canggih. Pada situs yang menggunakan SSL maka alamatnya berubah menjadi https dan muncul tanda padlock (gembok) di address bar pada peramban (browser) Anda.

Menggunakan https pada situs, kita membutuhkan sebuah sertifikat SSL. Sertifikat ini digunakan dalam web servers untuk mengenkrip traffic antara server dan client, yang memberikan pengamanan extra untuk pengguna yang mengakses aplikasi Anda. Untuk mendapat sertifikat SSL ini Anda harus membeli pada layanan hosting, atau bisa juga menggunakan SSL gratisan dengan Let's Encrypt.

Tutorial kali ini kita akan membahas mengenai bagaimana cara memasang sertifikat SSL Let's Encrypt di Ubuntu server yang mana menggunakan Apache sebagai web server-nya. Dalam tulisan ini juga penulis membahas bagaimana cara memperbaharui sertifikat SSL dari Let's Encrypt ini secara otomatis menggunakan cronjob.
Langsung saja kita praktek pertama-tama, lakukan sinkronisasi lumbung (repository) dengen cara:
$ sudo apt-get update
Kemudian kita pasang git yang mana itu dibutuhkan untuk mengkloning lumbung dari GitHub nya Let's Encrypt.
$ sudo apt-get install git
Tahap selanjutnya yakni kita klonging lumbung Let's Encrypt dari GitHub, dan kita kloning ke direktori /opt/letsencrypt:
$ sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
Pastikan Anda sudah memiliki domain. Langkah berikutnya yakni menjadikan domain Anda mendapatkan sertifikat dari Let's Encrypt. Ikuti perintah di bawah:
$  cd /opt/letsencrypt
$ ./letsencrypt-auto --apache -d domainsaya.com -d www.domainsaya.com
Jika suda coba cek pada peramban (browser) Anda apakah sudah seperti gambar di bawah ini?
Atau Anda bisa mengecek dari peramban dengan cara:
https://www.ssllabs.com/ssltest/analyze.html?d=domainsaya.com&latest
Let's Encrypt ini sebetulnya hanya memberikan sertikat secara cuma-cuma hanya dalam waktu 90 hari. Selebihnya, Anda harus memperbaharui sertifikat tersebut agar tetap dapat menikmati sertifikat dari Let's Encrypt ini secara gratis.

Untuk memperbaharui sertifikat kita menggunakan perintah berikut:
$ cd /opt/letsencrypt
$ ./letsencrypt-auto renew
Nah tutorial kali ini penulis akan memberikan sedikit tips bagaimana cara agar sertifikat otomatis diperbaharui dengan jeda waktu setiap 30 hari dengan memanfaatkan cronjob, yakni:
$ sudo crontab -e 
Lalu, pilih nano saja agar penyuntinganya lebih mudah
Dan masukan perintah berikut:
30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

Sebagai tambahan untuk memastikan Anda tetap menggunakan Let's Encrypt terbaru, Anda harus memperbarui dengan cara mem-pull, yakni:
$ cd /opt/letsencrypt
$ sudo git pull

Semoga bermanfaat. :)

Sumber:
  • https://client.dewaweb.com/knowledgebase/86/Apa-itu-SSL-Secure-Socket-Layer.html
  • https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04