Breaking

Monday, August 14, 2017

Menginstall LAMP ( Linux, Apache2.4, MariaDB10, PHP 7.1) Server di Linux Mint 18.2 / Ubuntu 16.04x Untuk belajar PHP - Web Development

Assalamualaikum Wr.Wb



PENGERTIAN 
LAMP stack adalah sekelompok perangkat lunak open source yang digunakan untuk server web, database sever yang berjalan, akronim berdiri untuk Linux, Apache, MariaDB, dan PHP.

LAMP Server (Linux, Apache, MySQL, PHP (atau Perl) adalah salah satu yang paling penting pada server. Anda mungkin pernah mengatur ini, LAMP dengan senang hati melayani web server sampai dinamis, situs web database-driven. Server LAMP ini yang mendasari pondasi Linux itu meliputi rock-solid kehandalan, kamanan, dan dapat diinstal pada semua jenis perangkat keras (dari yang old white-box Anda memiliki multi-CPU, sampai RADI-enabled rak server).

Karena OS sudah terinstal semua, langkah selanjutnya kita harus install Apache, MySQL, dan PHP. Jadi hanya ada tiga langkah agar server LAMP Anda dapat berjalan. Ingat, Anda akan menggunakan baris perintah, sehingga anda di haruskan membuka Terminal ( Shell)( atau, jika Anda menggunakan server GUI- Anda cukup menginstall, log in). Kami akan menginstall sedikit keluar dari urutan ( tidak runtut / dari akronim).


LATAR BELAKANG

SleepingCodings - Instalisasi Lamp dan Web Development di sini, tujuannya agar kita dapat mengatur, membuat, mengubah (Pokoknya Seenaknya), pada Var/www/html, Karena bawaan awal dari linux ialah Web Production maka pada Install Lampp dan Web Develompent ini untuk menginstall Lamp serta merubah Web Production menjadi Web Development

ALAT & BAHAN
1.| 1 unit PC/Laptop
2.| Koneksi Internet

JANGKA WAKTU
Tergantung Koneksi Internet

Berikut Langkah-langkah Cara menginstall LAMP Server di Linux Mint 18.2/Ubuntu 16.04 dengan beberapa screenshoot di bawah ini :

1. Seperti biasanya bagi anda pengguna Linux, terlebih dahulu buka terminal dengan shortcut (Ctrl + Alt + T), atau dengan membuka terminal melalui menu, seperti gambar dibawah ini, saya sudah membuka terminal di desktop saya.



2. Setelah anda buka terminal ( oh iya.... sebelumnya  koneksikan laptop dengan internet dulu yak...), karena author akan menginstall php7.1 maka sebelum itu, author akan menambahkan repository melalui ppa untuk php7.1-nya, masukan perintah dibawah ini atau sesuai dengan gambar/screenshoot dibawah ini

 $sudo add-apt-repository ppa:ondrej/php




jangan lupa tekan enter

3. Setelah anda tambahkan repositorinya, sekarang update linux anda dengan perintah dibawah ini atau sesuai dengan gambar dibawah ini


$sudo apt-get update




4. Setelah anda update anda juga harus mengupgrade linux anda dengan perintah di bawah ini.

$sudo apt-get dist-upgrade





tunggu sampai instalasi dist upgrade selesai



5. Setelah upgrade selesai Anda bisa mulai menginstall aplikasi pertama yaitu Apache2.4 yaitu aplikasi yang kita gunakan sebagai aplikasi penyedia layanan http atau web server, masukan perintah dibawah ini untuk menginstall Apache seperti gambar dibawah ini juga

$sudo apt-get dist-upgrade






tekan enter untuk Y besar, dan tunggu sampai proses installasi selesai seperti gambar dibawah ini




jika installasi Apache2 telah selesai maka silahkan Anda coba buka melalui web browser dengan membuka alamat ke http://localhost , juka muncul seperti gambar dibawah ini menunjukkan bahwa web server telah berjalan dengan baik "It works!"



6. Jika proses installasi Apache2 sudah berjalan lancar 100% silahkan Anda melanjutkan menginstall php7.1, php merupakan bahasa pemrogaman server side atau bahasa pemrograman yang berjalan hanya pada server atau php-engine, untuk mengistall php7.1 kali ini saya akan installkan beserta beberapa ekstension php dan juga libapache2-mod-php7.1 agar php dapat dijalankan pada web server, perintahnya seperti dibawah ini atau sesuai dengan gambar dibawah ini.

$sudo apt-get install php7.1 php7.1-cli php7.1-common php7.1-curl php7.1-dev php7.1-gd php7.1-imap php7.1-intl php7.1-json php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-pgsql php7.1-phpdbg php7.1-sqlite3 php7.1-sybase php7.1-xml php7.1-xmlrpc php7.1-xsl php7.1-zip libapache2-mod-php7.1




jangan lupa tekan enter untuk Y besar, dan tunggu proses installasi selesai



setelah proses installasi selesai kita harus menguji apakah php sudah berjalan di webserver(apache2) kita atau belum, dengan cara menjalankan bahasa php,,, contoh untuk mengujinya sangat sederhana yaitu menggunakan phpinfo(); atau salah satu function di php yang sudah built-in untuk mengecek php dan komponen komponen lainnya, langsung buat file dengan nama phpinfo.php di directory /var/www/html/(document-root apache default), dan kali ini saya menggunakan text edittor xed bawaan linux mint 18.1, anda dapat menggunakan editor lain seperti gedit, vim, nano, pico, atau sejenis lainnya yang merupakan aplikasi bawaan dari linux mint 18.1, langsung masukkan perintah di bawah ini.

$sudo xed /var/www/html/phpinfo.php

maka akan tampil text editor GUI seperti gambar dibawah ini dengan garis merah bertuliskan Elevated Privileges karena kita menggunakan mode sudo atau root



selanjutnya tuliskan baris program php seperti gambar dibawah ini

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                  <?php phpinfo(); ?>


          >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>



kemudian klik file => save dan close atau tutup text editor Anda


selanjutnya Anda dapat membuka web browser Anda dan masuk ke alamat

                     http://localhost/phpinfo.php <<<==  pemanggilan file sesuai dengan nama file yang kita buat tadi



selain mengecek php yang berjalan di web server atau apache kita, kita juga harus mengecek php yang berjalan di mode cli atau php-cli dengan perintah diterminal yaitu

$php -v

jika belum muncul seperti gambar diatas maka anda harus menginstall paket php7.1-cli melalui terminal dengan perintah

$sudo apt-get install php7.1-cli
kenapa kita harus menggunakan php-cli ini ? jawabannya tentu teman-teman tahu bahwa untuk menjalankan packet manager di php yaitu composer, teman-teman harus menginstall php-cli

7. Setelah kita selesai menginstall apache2 dan php7.1 kita belum akan menginstall mariadb dan  phpmyadmin karena ada beberapa konfigurasi tambahan untuk web development yang harus kita konfigurasi seperti mengaktifkan mod_rewrite, yang gunanya waktu membuat script php, jika salah bisa terlihat kesalahannya, mengubah php.ini ke mode development, dan mengubah user yang menjalankan apache2, pertama kita akan mengaktifkan mod_rewrite di apache2 terlebih dahulu, apa itu mod_rewrite ? mod_rewrite adalah modules apache yang digunakan untuk menulis ulang paket header pada url yang menjadikan url berubah tidak seperti aslinya sederhananyabagi saya seperti itu untuk lebih detail dan lengkapnya Anda dapa baca di sini
(http://httpd.apache.org/docs/current/mod/mod_rewrite.html
 http://en.wikipedia.org/wiki/Rewrite_engine,
 http://wiki.apache.org/httpd/Rewrite,
 http://id.wikipedia.org/wiki/Apache_HTTP_Server)
 ajikamaludin.blogspot.com ).


ok langsung saja kita mengaktifkan mod_rewrite ini, masukkan perintah dibawah tepatnya di terminal Anda untuk men-enable mod_rewrite (mengaktifkannya) di apache

$a2enmod rewrite


jika anda sudah men-enable rewrite kita harus mengedit file default site kita untuk menambahkan bahwa di site default kita, kita mengijinkan/memberi akses untuk mod_rewrite ini, langsung saja masukkan perintah dibawah ini

$sudo xed /etc/apache2/sites-available/000-default.conf



akan muncul beberapa baris konfigurasi seperti dibawah ini dalam text editor xed kita



tambahkan/selipkan beberapa bari konfigurasi mod_rewrite seperti gambar di atas

<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<Directory /var/www/html>
              Options Indexes FollowSymlinks MultiViews
              Allow Override All
              Require all granted 
          </Directory>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>


kemudian silahkan save (Ctrl + S) dan close editor Anda, setelah kita menambah beberapa baris konfigurasi di atas kita restart web server kita atau apache2 kita dengan perintah dibawah ini atau seperti gambar di bawah ini

$sudo service apache2 restart



kemudian anda buka phpinfo lagi dan Anda reload kemudian Anda car seperti gambar dibawah ini
Loaded Modules => mod_rewrite


jika anda sudah berhasil menemukan mod_rewritenya maka Anda sudah dapat menjalankan apache kita

8. Berikutnya Ubah konfigurasi php.ini ke versi development, kenapa kita harus mengubah ke versi development?, ok mari kita buat eksperimen sederhana dengan beberapa baris kode php, seperti gambar dibawah ini, kita buka file phpinfo.php kita dengan perintah seperti diatas tadi atau perintah dibawah ini


$sudo xed /var/www/html/phpinfo.php


setelah editor terbuka hilangkan satun tanda kurung "(" pada baris kode program atau bisa ";" intinya hilangkan 1 element yang ada di php kecuali hello world, kemudian anda save dan close


setelah anda close coba kita buka phpinfo kita di http://localhost/phpinfo.php dan reload, maka Anda akan mendapat error 500 seperti gambar di bawah ini, error 500 ini menunjukkan salah satu proteksi bahwa php kita tidak ingin menampilkan error nya pada browser atau client tentu hal ini merupakan versi dari Web Production seperti yang teman-teman pakai dan ketahui sekarang, nah.... guys... sebagai web development tentunya... jika terjadi error maka Anda ingin mengetahui letak salah / error nya buka?, maka dari itu Anda harus mengubah versi php.ini ke development dengan cara dibawah ini



untuk mengubah php.ini kita bisa meng-backup php.ini bawaan apache atau php.ini yang production dengan perintah dibawah ini

$sudo mv /etc/php/7.1/apache2/php.ini /etc/php/7.1/apache2/php.ini.backup-asli


setelah Anda berhasil men-backup kita copy-kan php.ini-development ke php.ini kita dengan perintah dibawah ini

$sudo cp /usr/lib/php/7.1/php.ini-development /etc/php/7.1/apache2/php.ini


setelah kita copy-kan Anda dapat men-restart webserver kita atau apache kita dengan perintah

$sudo service apache2 restart

kemudian setelah kita restart, jika anda membuka lagi phpinfo.php dan mereload nya di web browser maka akan tampil errornya seperti gambar di bawah ini



dan jika anda pulihkan file phpinfo.php nya ke semula dan setelah itu kamu save akan jadi tampak seperti gambar di bawah ini



9. Setelah Anda mengubah php.ini, selanjutnya kita akan mengubah mode user yang menjalankan apache2 konsep ini hampir mirip seperti konsep server hosting standalone yang menjalankan apache2 atau web servernya menggunakan user nobody akan tetapi setiap public_html directory diberikan hak akses ke tiap-tiap user pengguna hosting sendiri, sebelum kita mengkonfigurasi atau mengubah mode user yang menjalankan apache2 maka ada baiknya kita perlu tahu user dan group yang ada di laptop/pc kita agar tidak salah ketika menjalankan atau mengikuti langkah kali ini, seperti gambar dibawah ini menggunakan perintah $w, untuk mengetahui username atau nama user nya kita pakai seperti saya.

menggunakan user abdulhafidgunawan @ pada mesin abdulhafidgunawan di directory ~ sebagai user biasa $


atau perintah $w, untuk mengetahui nama user yang saya gunakan, kita bisa simpulkan bahwa saya menggunakan user abdulhafidgunawan 



pada web server yang akan saya jalankan kali ini saya akan ubah mode user yang menjalankan ke mode user => abdulhafidgunawan , dengan group default yaitu => www-data , karena abdulhafidgunawan tidak termasuk dalam group www-data seperti gambar di bawah ini dengan perintah seperti ini

$id abdulhafidgunawan
Tidak ada Group www-data
maka pertama kita harus memasukkan user tersebut ke grub www-data dengan perintah dibawah ini (sesuaikan)


$sudo usermod -a -G www-data abdulhafidgunawan



setelah Anda memasukkan perintah diatas jika Anda sudah bisa menemukan dengan menggunakan perintah $id abdulhafidgunawan user abdulhafidgunawan sudah tergabung dalam group www-data seperti gambar dibawah ini


langsung saja jika user abdulhafidgunawan sudah terdaftar maka Anda dapat mengedit konfigurasi apache2 pada file envvars di   /etc/apache2/envvars menggunakan perintah dibawah ini seperti dengan gambar dibawah ini

$sudo xed /etc/apache2/envvars


dari yang semulanya pada APACHE_RUN_USER dan APACHE_RUN_GROUP terisi www-data dan www-data seperti gambar dibawah ini


ubah menjadi seperti gambar di bawah ini dengan



kemudian ubah file owner pada document root Anda /var/www/html Anda dengan perintah dibawah ini

$sudo chown -R abdulhafidgunawan:www-data /var/www/html

kemudian restart apache kita dengan menggunakan perintah dibawah ini

$sudo service apache2 restart


kemudian kita periksa atau kita check dengan menggunakan perintah dibawah seperti gambar dibawah ini

$ls -lah /var/www/


Owner User abdulhafidgunawan dan Owner Group www-data

mari kita coba untuk user abdulhafidgunawan dapat mengakses /var/www/html tanpa harus menggunakan root sudo atau mode root, kita berpindah ke directory /var/www/html dengan perintah sbg berikut

$cd /var/www/html



kemudian kita check isi nya dengan menggunakan perintah $ls



kita bisa membuat folder atau file di dalam nya tanpa menggunakan root atau sudo

$mkdir project

$ls



kemudian kita tambahkan sebuah file dengan beberapa baris kode program kita persingkat saja dengan menggunakan echo
$echo "<?php echo "hello world"; ?>"> index.php



kemudian kita panggil melalui web browser dengan mengakses http://localhost/project/



 anda juga bisa menggunakan sublime untuk mengedit tanpa harus masuk masuk sebagai root ataupun sudo namun saya menggunakan terminal saja :v biar ga ribet guys....

10. Setelah Anda menginstall apache2.4 dan php7.1 selanjutnya kita akan menginstall MariaDB sebagai Database Server, langsung saja kita ke terminal kemudian kita install dengan perintah dibawah ini seperti gambar dibawah ini

$sudo apt-get install mariadb-server mariadb-client

jangan lupa tekan enter untuk Y besar dan tunggu installasi sampai selesai


setelah berhasil terinstall, kita harus men-set root password untuk root password agar mariadb dapat kita gunakan user root dengan full priviliges dengan perintah dibawah ini

$sudo mysql_secure_installation





>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

abdulhafidgunawan@A Hafid G $sudo mysql_secure_installation


NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB secure it, we''ll need current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here.

Enter current password for root (enter for none): <- Tekan Enter
OK, Successfully used password, moving on ...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] <- Tekan Enter
New password: <- Masukan Password Baru
Re-enter new password: <-Masukkan Password Baru lagi
Password updated successfully!
Reloading privilege tables..
.... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

Remove anonymous users?[Y/n]<- Tekan Enter
....Success!
nks for us
Normally, root should only be allowed to connect from 'localhost'. This 
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely?[Y/n]<- Tekan Enter
.....Success!

By default, MariaDB comes with a database named `test` that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it?[Y/n] <- Tekan Enter
- Dropping test database...
....Success!
- Removing privileges on test dabase....
....Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now?[Y/n]<- Tekan Enter
.....Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure

Thank for using MariaDB!

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

walaupun kita sudah men-set root password kita tetap tidak bisa login ke MariaDB dengan menggunakan user biasa atau tanpa root, untuk masuk ke MariaDB gunakan perintah dibawah ini


$mysql -u root -p


agar user biasa dapat menggunakan MariaDB tanpa harus masuk ke mode root atau sudo anda dapat memasukkan beberapa perintah-perintah query dibawah ini seperti gambar dibawah ini 

MariaDB [(none)]> use mysql;
MariaDB [(mysql)]> update user set plugin=" where User='root';
MariaDB [(mysql)]> flush privileges;
MariaDB [(mysql)]> quit;




setelah Anda memasukka perintah diatas maka Anda dapat mencoba lagi untuk masuk ke MariaDB dengan menggunakan user biasa atau tanpa menggunakan sudo ataupun root



11. Setelah database server sudah berjalan selanjutnya Anda dapat menginstall phpmyadmin (phpmyadmin sendiri merupakan software/perangkat lunak berbasiskan php sebagai aplikasi pengelola database melalui web), anda bisa mencari pengertian lebih lengkapnya di google, langsung saja kita install phpmyadmin dengan perintah dibawah ini


$sudo apt-get install phpmyadmin




jangan lupa tekan enter untuk Y besar, setelah itu pasti akan muncul dialog seperti gambar dibawah ini (yang bluescreen) tekan spasi pada saat ada pilihan di apachenya lalu setelah itu tekan enter, pastikan apache2 kita sudah tertandai dengan tanda bintang *




kemudian akan muncul pertanyaan untuk konfigurasi phpmyadmin agar mempercepat installasi tekan tab pilih NO lalu tekan ENTER


setelah installasi selesai 100% maka anda dapat membuka phpmyadmin melalui web browser dengan menggunakan alamat ke http://localhost/phpmyadmin, maka akan muncul laman web seperti dibawah ini



anda dapat login menggunakan root dan password root yang tadi anda set pada saat menginstall MariaDB


setelah login inilah tampilan laman web nya .


 

Dan Selamat membuat project menggunakan php dan web development .



REFERENSI
1. digitalocean
2. unixmen
3. AjiKamaludin


~SEMOGA BERMANFAAT~

No comments:

Post a Comment