Tutorial ini akan memandu Anda tentang cara menginstal dan mengkonfigurasi FBEMP di FreeBSD 11.x rilis terbaru. FBEMP adalah akronim yang menjelaskan kumpulan perangkat lunak berikut:
FreeBSD 11.1 Distribusi mirip Unix, server web Nginx, sistem manajemen basis data relasional MariaDB (garpu komunitas MySQL) dan bahasa pemrograman dinamis PHP yang berjalan di sisi server.
Persyaratan
- Pemasangan FreeBSD 11.x
- 10 Hal yang Harus Dilakukan Setelah Instalasi FreeBSD
Langkah 1:Instal Server Web Nginx di FreeBSD
1. Layanan pertama yang akan kami instal untuk FBEMP kami susun di FreeBSD adalah server web, diwakili oleh Nginx perangkat lunak.
Nginx server web memiliki lebih banyak paket pra-pemenuhan yang tersedia di FreeBSD 11.x PORTS . Untuk mendapatkan daftar Nginx biner dari Ports repositori, jalankan perintah berikut di terminal server Anda.
# ls /usr/ports/www/ | grep nginx # pkg search -o nginx
2. Dalam konfigurasi khusus ini, kami akan menginstal versi paket utama Nginx dengan mengeluarkan perintah di bawah ini. pkg manajemen paket akan menanyakan apakah Anda ingin melanjutkan menginstal paket nginx. Jawab dengan ya (y
di baris perintah) untuk memulai proses instalasi.
# pkg install nginx
3. Setelah paket server web Nginx diinstal di sistem Anda, jalankan perintah berikut untuk mengaktifkan daemon di seluruh sistem dan memulai layanan di sistem Anda.
# sysrc nginx_enable="yes" # service nginx start
4. Selanjutnya, menggunakan sockstat perintah, verifikasi soket jaringan layanan Nginx, jika mereka mengikat 80/TCP port, dengan mengeluarkan perintah di bawah ini. Output dari perintah sockstat akan disalurkan melalui utilitas grep untuk mengurangi hasil yang dikembalikan hanya ke string nginx.
# sockstat -4 | grep nginx
5. Terakhir, buka browser di komputer desktop di jaringan Anda dan kunjungi halaman web default Nginx melalui protokol HTTP. Tulis FQDN mesin Anda atau nama domain Anda atau alamat IP server Anda di URL browser yang diajukan untuk meminta halaman web default server web Nginx. Pesan “Selamat datang di nginx! ” harus ditampilkan di browser Anda, seperti yang diilustrasikan pada tangkapan layar di bawah ini.
http://yourdomain.com http://your_server_IP http://your_machine_FQDN
6. Direktori weboot default untuk konten web Nginx terletak di /usr/local/www/nginx/ jalur sistem absolut. Di lokasi ini Anda harus membuat, menyalin, atau menginstal file konten web, seperti .html
atau .php
file, untuk situs web Anda.
Untuk mengubah lokasi ini, edit file konfigurasi utama nginx dan ubah arahan root untuk mencerminkan jalur root web baru Anda.
# nano /usr/local/etc/nginx/nginx.conf
Di sini, cari dan perbarui baris berikut untuk mencerminkan jalur root web baru Anda:
root /path/to/new/webroot;
Langkah 2:Instal PHP di FreeBSD
7. Tidak seperti HTTP Apache server, Nginx tidak memiliki kemampuan untuk memproses kode PHP secara native. Sebagai imbalannya, server web Nginx meneruskan permintaan PHP ke juru bahasa PHP, seperti php-fpm FastCGI daemon, yang memeriksa dan mengeksekusi kode. Kode yang dihasilkan kemudian dikembalikan ke Nginx, yang merakit ulang kode kembali ke format html yang diminta dan mengirimkan kode lebih lanjut ke browser web pengunjung.
FreeBSD 11.x Repositori port menawarkan beberapa versi biner untuk bahasa pemrograman PHP, seperti PHP 5.6 , PHP 7.0 dan PHP 7.1 rilis. Untuk menampilkan semua versi PHP pra-kompilasi yang tersedia di FreeBSD 11.x , jalankan perintah di bawah ini .
# pkg search -o php # ls /usr/ports/lang/ | grep php
8. Anda dapat memilih untuk menginstal versi PHP apa pun yang menurut Anda paling cocok untuk aplikasi web yang Anda jalankan di sistem Anda. Namun, dalam panduan ini kita akan menginstal PHP versi terbaru.
Untuk memasang PHP 7.1 rilis dan beberapa modul penting PHP yang diperlukan untuk beragam aplikasi web, jalankan perintah berikut.
# pkg install php71 php71-mysqli php71-mcrypt php71-zlib php71-gd php71-json mod_php71 php71-mbstring php71-curl
9. Setelah Anda menginstal paket PHP di sistem Anda, buka PHP-FPM file konfigurasi untuk Nginx dan sesuaikan nilai pengguna dan grup agar sesuai dengan nilai pada pengguna runtime Nginx, yaitu www . Pertama, buat cadangan file dengan perintah di bawah ini.
# cp /usr/local/etc/php-fpm.d/www.conf{,.backup}
Kemudian, buka file dan perbarui baris berikut seperti yang disajikan dalam contoh di bawah ini.
user = www group = www
10. Juga, buat file konfigurasi PHP yang digunakan untuk produksi dengan mengeluarkan perintah di bawah ini. Pada file ini Anda dapat membuat perubahan khusus yang akan diterapkan ke interpreter PHP saat runtime.
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Misalnya, ubah date.timezone pengaturan untuk juru bahasa PHP untuk memperbarui lokasi fisik mesin Anda seperti yang ditunjukkan pada contoh di bawah ini. Daftar zona waktu PHP dapat ditemukan di sini:http://php.net/manual/en/timezones.php.
# vi /usr/local/etc/php.ini
Tambahkan zona waktu berikut (atur zona waktu sesuai negara Anda).
date.timezone = Europe/London
Anda juga dapat menyesuaikan variabel PHP lainnya, seperti ukuran file maksimum dari file yang diunggah, yang dapat ditingkatkan dengan mengubah nilai di bawah ini:
upload_max_filesize = 10M post_max_size = 10M
11. Setelah Anda membuat pengaturan khusus untuk PHP, aktifkan dan mulai PHP-FPM daemon untuk menerapkan konfigurasi baru dengan mengeluarkan perintah di bawah ini.
# sysrc php_fpm_enable=yes # service php-fpm start
12. Secara default, PHP-FPM daemon di FreeBSD mengikat pada soket jaringan lokal pada port 9000/TCP . Untuk menampilkan PHP-FPM soket jaringan jalankan perintah berikut.
# sockstat -4 -6| grep php-fpm
13. Agar server web Nginx meneruskan skrip PHP ke FastCGI server gateway, yang mendengarkan 127.0.0.1:9000
socket, buka file konfigurasi utama Nginx dan tambahkan blok kode berikut seperti yang diilustrasikan pada contoh di bawah ini.
# vi /usr/local/etc/nginx/nginx.conf
Blok kode FastCGI untuk nginx:
location ~ \.php$ { root /usr/local/www/nginx; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; }
14. Untuk melihat informasi PHP saat ini untuk server Anda, buat info.php
file di jalur weboot Nginx dengan mengeluarkan perintah berikut.
# echo "<?php phpinfo(); ?>" | tee /usr/local/www/nginx/info.php
15. Kemudian, uji dan mulai ulang daemon Nginx untuk menerapkan PHP FastCGI pengaturan dan kunjungi info.php
halaman di browser.
# nginx -t # Test nginx configuration file for syntax errors # service nginx restart
Ganti alamat IP atau nama domain di tautan di bawah ini. Halaman info PHP harus menampilkan informasi seperti yang diilustrasikan pada tangkapan layar di bawah ini.
http://yourdomain.com/info.php http://server_IP-or-FQDN/info.php
Langkah 3:Instal MariaDB di FreeBSD
16. Komponen terakhir hilang dari FEMP . Anda menumpuk di database. MariaDB/MySQL adalah salah satu perangkat lunak RDBMS open source yang paling terkait dengan server web Nginx yang digunakan untuk menerapkan situs web dinamis.
Sebenarnya, MariaDB/MySQL adalah salah satu database relasional yang paling banyak digunakan di dunia. Mencari melalui Port FreeBSD , Anda dapat menemukan beberapa rilis MariaDB/MySQL .
Dalam panduan ini kita akan menginstal MariaDB database, yang merupakan cabang komunitas MySQL basis data. Untuk mencari versi MariaDB yang tersedia , jalankan perintah berikut di terminal.
# ls -al /usr/ports/databases/ | grep mariadb # pkg search mariadb
17. Untuk menginstal versi terbaru dari server database MariaDB, jalankan perintah berikut. Anda juga harus menginstal modul driver database relasional PHP yang digunakan oleh skrip PHP untuk menghubungkan ke MySQL.
# pkg install mariadb102-server php71-mysqli
18. Setelah database terinstal, aktifkan daemon MySQL dan mulai layanan database dengan menjalankan perintah berikut.
# sysrc mysql_enable="YES" # service mysql-server start
19. Juga, pastikan Anda memulai ulang PHP-FPM daemon untuk memuat ekstensi driver MySQL.
# service php-fpm restart
20. On the next step, secure MariaDB database by launching mysql_secure_installation script. Use the below sample of the installation script in order to answer the questions. Basically, say yes (y)
for all asked questions to secure the database and type a strong password for MySQL root user.
# /usr/local/bin/mysql_secure_installationOutput Skrip Instalasi Aman MySQL
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!
21. Untuk menguji koneksi database MariaDB dari konsol, jalankan perintah di bawah ini.
# mysql -u root -p -e "show status like ‘Connections’"
22. Untuk lebih mengamankan MariaDB, yang secara default mendengarkan koneksi jaringan yang masuk di 0.0.0.0:3306/TCP socket, jalankan perintah di bawah ini untuk memaksa layanan mengikat loopback antarmuka dan sepenuhnya melarang akses jarak jauh. Setelah itu, restart layanan MySQL untuk menerapkan konfigurasi baru.
# sysrc mysql_args="--bind-address=127.0.0.1" # service mysql-server restart
Verifikasi apakah localhost binding berhasil diterapkan dengan menjalankan perintah netstat seperti yang ditunjukkan pada contoh di bawah ini.
# netstat -an -p tcp
Itu saja! Anda telah berhasil menginstal server web Nginx, database relasional MariaDB, dan bahasa pemrograman sisi server PHP di FreeBSD. Sekarang Anda dapat mulai membuat halaman web dinamis untuk menyajikan konten web kepada pengunjung Anda.