Giunsa ang Pag-install sa Apache, MariaDB ug PHP (FAMP) Stack sa FreeBSD


Kini nga giya maghulagway unsaon pag-instalar ug pag-configure sa FBAMP sa FreeBSD operating system, nga susama sa LAMP stack sa Linux. Ang FBAMP usa ka acronym nga nagpasabot sa usa ka koleksyon sa software base sa FreeBSD OS, Apache HTTP server, ang pinakasikat nga open-source web server sa internet, MariaDB relational database management system (RDBMS), usa ka fork sa MySQL database engine, ug PHP server. -kilid.

Mga kinahanglanon

  1. Usa ka bag-ong instalasyon sa FreeBSD
  2. FreeBSD Initial Configurations
  3. Direktang pag-access sa console o SSH kung adunay layo nga koneksyon sa FreeBSD.
  4. Usa ka static nga IP Address nga gi-configure sa Network Interface.

Lakang 1: I-install ang Apache sa FreeBSD

1. Ang unang serbisyo nga among i-install mao ang Apache HTTP server. Sa kasagaran, ang FreeBSD nagtanyag og daghang mga bersyon nga adunay lain-laing mga runtime work modules para sa Apache web server.

Ang mga bersiyon pre-compiled ngadto sa binary package ug gihatag sa FreeBSD PORTS repository. Aron ipakita ang tanan nga mga binary sa Apache packages nga gihatag sa PORTS, i-isyu ang mosunod nga sugo.

# ls /usr/ports/www/ | grep apache

Mahimo usab nimo pangitaon ang mga magamit nga pre-complied nga mga pakete sa Apache sa FreeBSD pinaagi sa pag-isyu sa ubos nga sugo.

# pkg search apache2

2. Sunod, i-install ang pinakabag-o nga bersyon sa Apache HTTP server nga adunay tanan nga gikinahanglan nga mga module pinaagi sa pag-isyu sa mosunod nga sugo.

# pkg install apache24

3. Human ma-install ang Apache web server sa sistema, i-issue ang mosunod nga command aron mahimo ang daemon system-wide sa FreeBSD.

# sysrc apache24_enable="yes"

Usa ka alternatibong paagi sa pagpagana sa Apache daemon mao ang pag-edit sa mano-mano ug pagdugang sa linya apache24_enable=\yes\ sa /etc/rc.conf file sama sa gihulagway sa ubos nga screenshot.

4. Sa katapusan, aron masulayan kung ang web server nagtrabaho sa husto, sugdi ang Apache daemon pinaagi sa pag-isyu sa ubos nga sugo ug bisitaha ang default nga web page pinaagi sa pagtudlo sa usa ka browser sa imong server IP address sa FQDN (http://IP-orFQDN ) ingon sa gipakita sa ubos nga screenshot.

# service apache24 start

Ang default nga webroot nga direktoryo sa Apache web server sa FreeBSD 11.x nahimutang sa /usr/local/www/apache24/data/ system path. Didto makit-an nimo ang usa ka gamay nga index.html file nga mahimo nimong usbon kung gusto nimo.

Lakang 2: I-install ang PHP sa FreeBSD

5. Ang FreeBSD 11.x nagtanyag ug daghang bersiyon sa PHP nga gihubad nga server-side nga pinulongan nga giputos sa mga binary nga nauna nang gisunod. Aron makakuha usa ka lista sa tanan nga magamit nga mga pakete sa bersyon sa PHP nga gihatag sa mga repositoryo sa FreeBSD Ports i-isyu ang mosunud nga mando.

# ls /usr/ports/lang/ | grep php

Usa ka alternatibong pamaagi sa pagpangita sa tanang available nga FreeBSD PHP package versions kay pinaagi sa pagpadagan sa ubos nga command.

# pkg search -o php

6. Para pangitaon ang tanang available nga binary nga gihatag sa FreeBSD para sa usa ka espesipikong bersyon sa PHP (5 o 7 ka bersyon sa pagkakaron) padagana ang ubos nga mga sugo. Paggamit og gamay nga sugo aron makitid ug mag-navigate sa output.

# pkg search php5 |less
# pkg search php7

7. Para mas espesipiko kung unsa nga mga module ang gihatag sa custom nga bersyon sa PHP, padagana ang mosunod nga command sama sa gihulagway sa ubos, nga nagpakita sa tanang available nga modules para sa PHP 7.1 nga bersyon.

# pkg search php71

8. Niini nga giya atong i-install ang PHP 7.1 nga release para sa atong FBAMP stack. Ipagawas ang mosunod nga sugo sa pag-instalar sa PHP uban sa pipila sa labing importante nga mga module nga gikinahanglan alang sa usa ka tipikal nga pag-instalar sa CMS.

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

9. Sunod, kinahanglan natong himoon ang php.conf configuration file para sa Apache web server sa /usr/local/etc/apache24/Includes/ system path nga adunay mosunod nga sulod.

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

Idugang ang mosunod nga mga linya sa php.conf file.

<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. Aron masulayan kung ang gateway sa PHP nagtrabaho sama sa gipaabut sa Apache web server, paghimo og PHP info.php file sa /usr/local/www/apache24/data/system path, nga mao ang default web document root path sa Apache web server.

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

I-restart ang Apache daemon aron magamit ang mga pagbag-o.

# service apache24 restart

Sunod, bisitaha ang mosunod nga URI sa usa ka browser aron makita ang summary sa PHP.

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

11. Aron ma-activate ang PHP ini nga configuration file para sa produksyon nga isyu ang mga sugo sa ubos. Mahimo nimong usbon ang php.ini production file aron mabag-o ang lainlaing setting sa PHP sa imong FBAMP stack.

# 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

Lakang 3: I-install ang MariaDB sa FreeBSD

12. Ang katapusan nga nawala nga sangkap alang sa among FBAMP stack mao ang MySQL database server. Ang FreeBSD 11.x nagtanyag ug labaw sa 1000 ka pakete para sa lain-laing mga database.

Aron mapakita kung unsang mga sangkap ang magamit alang sa mga database sa MariaDB o MySQL, i-isyu ang mosunod nga mga mando. Niini nga giya atong i-install ang MariaDB database sa MySQL (nga karon gipanag-iya ug aktibo nga gipalambo sa Oracle).

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

13. Niini nga giya atong i-install ang pinakabag-o nga bersyon sa MariaDB database server sa FreeBSD, nga sa pagkakaron girepresentahan sa mariadb102 binary package release.

Pagdalagan ang mosunod nga sugo aron ma-install ang MariaDB server ug kliyente ug ang gikinahanglan nga PHP 7.1 nga module nga gikinahanglan aron ma-access ang database pinaagi sa Apache server gateway.

# pkg install mariadb102-server mariadb102-client php71-mysqli

14. Sunod, i-enable ang MariaDB server system-wide ug sugdi ang database daemon pinaagi sa pagpadagan sa mosunod nga mga sugo.

# sysrc mysql_enable="yes" 
# service mysql-server start

15. Aron masiguro ang database run mysql_secure_installation scrip. Gamita ang ubos nga script output excerpt aron matig-a ang MariaDB.

# /usr/local/bin/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 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. Sa kasagaran, ang MariaDB daemon maminaw sa mga koneksyon sa network gawas sa localhost sa port 3306/TCP. Pagdalagan ang lsof o sockstat nga sugo aron makuha ang kahimtang sa socket sa MariaDB. Kini nga pag-configure delikado ug nagpadayag sa serbisyo sa mga pag-atake sa gawas sa network.

# lsof -i4 -i6
# sockstat -4 -6

17. Kung dili nimo kinahanglan ang layo nga pag-access sa MariaDB, siguroha nga ang MariaDB daemon maminaw sa localhost lamang, pinaagi sa pag-isyu sa ubos nga sugo. Pagkahuman, i-restart ang serbisyo sa MariaDB aron magamit ang mga pagbag-o.

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

18. Pag-usab, padagana ang lsof o sockstat nga sugo aron malista ang MariaDB network socket. Ang socket kinahanglan magbugkos ug maminaw sa localhost karon, ingon sa gihulagway sa ubos nga imahe.

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

19. Aron sulayan ang MariaDB database connectivity gikan sa console isyu ang mosunod nga sugo. Pagsulod sa MySQL root password sa pag-aghat ug usa ka lista sa mga default nga database kinahanglan nga ipakita sa imong console screen sama sa gihulagway sa ubos nga hulagway.

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

Kana lang! Malampuson nimo nga na-install ang Apache web server nga adunay database sa MariaDB ug tighubad sa PHP sa FreeBSD. Mahimo ka na karon magsugod sa pag-deploy sa usa ka website sa WordPress sa wala’y oras.

Sa sunod nga tutorial atong hisgotan ang pipila ka mga advanced FPBAMP nga mga hilisgutan, sama sa kung unsaon pag-enable ug paghimo sa Apache virtual hosts, pag-enable sa pagsulat pag-usab nga module nga gikinahanglan sa .htaccess file nga molihok sa husto ug unsaon pag-secure sa mga koneksyon sa Apache gamit ang usa ka Self-Signed certificate o usa ka libre. Sertipiko nga gitanyag sa Let's Encrypt entity.