Cara Install Stack Apache, MariaDB dan PHP (FAMP) di FreeBSD


Panduan ini akan menjelaskan cara menginstal dan mengkonfigurasi FBAMP di sistem operasi FreeBSD, yang mirip dengan tumpukan LAMP di Linux. FBAMP adalah singkatan dari kumpulan perangkat lunak berdasarkan OS FreeBSD, server Apache HTTP, server web sumber terbuka paling populer di internet, MariaDB< sistem manajemen basis data relasional (RDBMS), cabang dari mesin basis data MySQL, dan sisi server PHP.

Persyaratan

  1. Instalasi baru FreeBSD
  2. Konfigurasi Awal FreeBSD
  3. Akses konsol langsung atau SSH jika terjadi koneksi jarak jauh ke FreeBSD.
  4. Alamat IP statis yang dikonfigurasi pada Antarmuka Jaringan.

Langkah 1: Instal Apache di FreeBSD

1. Layanan pertama yang akan kita instal adalah server Apache HTTP. Secara default, FreeBSD menawarkan beberapa versi dengan modul kerja runtime berbeda untuk server web Apache.

Versi ini telah dikompilasi sebelumnya ke dalam paket biner dan disediakan oleh repositori FreeBSD PORTS. Untuk menampilkan semua biner paket Apache yang disediakan oleh PORTS, jalankan perintah berikut.

ls /usr/ports/www/ | grep apache

Anda juga dapat mencari paket Apache yang telah memenuhi syarat dan tersedia di FreeBSD dengan menjalankan perintah di bawah ini.

pkg search apache2

2. Selanjutnya, instal server HTTP Apache versi terbaru beserta semua modul yang diperlukan dengan mengeluarkan perintah berikut.

pkg install apache24

3. Setelah server web Apache diinstal pada sistem, jalankan perintah berikut untuk mengaktifkan daemon seluruh sistem di FreeBSD.

sysrc apache24_enable="yes"

Metode alternatif untuk mengaktifkan daemon Apache adalah dengan mengedit dan menambahkan baris apache24_enable="yes" secara manual di file /etc/rc.conf seperti yang diilustrasikan pada tangkapan layar di bawah.

4. Terakhir, untuk menguji apakah server web berfungsi dengan benar, jalankan daemon Apache dengan mengeluarkan perintah di bawah ini dan kunjungi halaman web default dengan mengarahkan browser ke alamat IP server Anda FQDN ( http://IP-orFQDN) seperti yang ditunjukkan pada gambar di bawah.

service apache24 start

Direktori webroot default server web Apache di FreeBSD 11.x terletak di jalur sistem /usr/local/www/apache24/data/. Di sana Anda akan menemukan file index.html kecil yang dapat Anda edit sesuka Anda.

Langkah 2: Instal PHP di FreeBSD

5. FreeBSD 11.x menawarkan beberapa versi bahasa sisi server PHP yang diinterpretasikan dan dikemas dalam biner yang telah dipenuhi sebelumnya. Untuk mendapatkan daftar semua paket versi PHP yang tersedia yang disediakan oleh repositori FreeBSD Ports, jalankan perintah berikut.

ls /usr/ports/lang/ | grep php

Metode alternatif untuk mencari semua versi paket FreeBSD PHP yang tersedia adalah dengan menjalankan perintah di bawah ini.

pkg search -o php

6. Untuk mencari semua biner yang tersedia yang disediakan oleh FreeBSD untuk versi PHP tertentu (saat ini versi 5 atau 7) jalankan perintah di bawah ini. Gunakan perintah less untuk mempersempit dan menavigasi output.

pkg search php5 |less
pkg search php7

7. Untuk lebih spesifik tentang modul apa saja yang disediakan oleh versi PHP khusus, jalankan perintah berikut seperti dijelaskan di bawah, yang menampilkan semua modul yang tersedia untuk versi PHP 7.1.

pkg search php71

8. Dalam panduan ini kami akan menginstal rilis PHP 7.1 untuk tumpukan FBAMP kami. Keluarkan perintah berikut untuk menginstal PHP dengan beberapa modul terpenting yang diperlukan untuk instalasi CMS pada umumnya.

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. Selanjutnya, kita perlu membuat file konfigurasi php.conf untuk server web Apache di /usr/local/etc/apache24/Includes/ jalur sistem dengan konten berikut.

nano /usr/local/etc/apache24/Includes/php.conf

Tambahkan baris berikut ke file php.conf.

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

10. Untuk menguji apakah gateway PHP berfungsi seperti yang diharapkan dengan server web Apache, buat file PHP info.php di /usr/local/www/ jalur apache24/data/system, yang merupakan jalur akar dokumen web default server web Apache.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Mulai ulang daemon Apache untuk menerapkan perubahan.

service apache24 restart

Selanjutnya, kunjungi URI berikut di browser untuk melihat ringkasan PHP.

http://IP-or-FQDN/info.php 

11. Untuk mengaktifkan file konfigurasi PHP ini untuk produksi, jalankan perintah di bawah ini. Anda dapat memodifikasi file produksi php.ini untuk mengubah beragam pengaturan PHP di tumpukan FBAMP Anda.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Langkah 3: Instal MariaDB di FreeBSD

12. Komponen terakhir yang hilang untuk tumpukan FBAMP kami adalah server basis data MySQL. FreeBSD 11.x menawarkan lebih dari 1000 paket untuk beragam database.

Untuk menampilkan komponen apa saja yang tersedia untuk database MariaDB atau MySQL, jalankan perintah berikut. Dalam panduan ini kita akan menginstal database MariaDB melalui MySQL (yang sekarang dimiliki dan dikembangkan secara aktif oleh Oracle).

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. Dalam panduan ini kami akan menginstal versi terbaru server database MariaDB di FreeBSD, yang saat ini diwakili oleh rilis paket biner mariadb102.

Jalankan perintah berikut untuk menginstal server dan klien MariaDB serta modul PHP 7.1 yang diperlukan untuk mengakses database melalui gateway server Apache.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Selanjutnya, aktifkan server MariaDB di seluruh sistem dan mulai daemon database dengan menjalankan perintah berikut.

sysrc mysql_enable="yes" 
service mysql-server start

15. Untuk mengamankan database, jalankan skrip mysql_secure_installation. Gunakan kutipan keluaran skrip di bawah ini untuk mengeraskan MariaDB.

/usr/local/bin/mysql_secure_installation
Contoh Keluaran

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 to secure it, we'll need the 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):
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] y
New password:
Re-enter new password:
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] y
 ... Success!
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] y
 ... 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] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16. Secara default, daemon MariaDB mendengarkan koneksi jaringan di luar localhost pada port 3306/TCP. Jalankan perintah netstat, lsof atau sockstat untuk mendapatkan status soket MariaDB. Konfigurasi ini berbahaya dan membuat layanan terkena serangan jaringan luar.

lsof -i4 -i6
sockstat -4 -6

17. Jika Anda tidak memerlukan akses jarak jauh ke MariaDB, pastikan daemon MariaDB hanya mendengarkan localhost, dengan mengeluarkan perintah di bawah ini. Selanjutnya, restart layanan MariaDB untuk menerapkan perubahan.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. Sekali lagi, jalankan perintah netstat, lsof atau sockstat untuk mencantumkan soket jaringan MariaDB. Soket sekarang harus mengikat dan mendengarkan di localhost, seperti yang diilustrasikan pada gambar di bawah.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Untuk menguji konektivitas database MariaDB dari konsol, jalankan perintah berikut. Masukkan kata sandi root MySQL di prompt dan daftar database default akan ditampilkan di layar konsol Anda seperti yang diilustrasikan pada gambar di bawah.

mysql -u root -p -e "show databases"

Itu saja! Anda telah berhasil menginstal server web Apache dengan database MariaDB dan juru bahasa PHP di FreeBSD. Anda sekarang dapat mulai menerapkan situs WordPress dalam waktu singkat.

Pada tutorial berikutnya kita akan membahas beberapa topik FPBAMP lanjutan, seperti cara mengaktifkan dan membuat host virtual Apache, mengaktifkan modul penulisan ulang yang diperlukan oleh file .htaccess agar berfungsi dengan baik dan cara mengamankan koneksi Apache menggunakan Sertifikat yang Ditandatangani Sendiri atau Sertifikat gratis yang ditawarkan oleh entitas Let's Encrypt.