Jinsi ya Kufunga Apache, MariaDB na PHP (FAMP) Stack kwenye FreeBSD


Mwongozo huu utaelezea jinsi ya kusakinisha na kusanidi FBAMP katika mfumo wa uendeshaji wa FreeBSD, ambao ni sawa na mrundikano wa LAMP kwenye Linux. FBAMP ni kifupi ambacho kinasimamia mkusanyiko wa programu kulingana na FreeBSD OS, seva ya Apache HTTP, seva ya tovuti huria maarufu katika mtandao, mfumo wa usimamizi wa hifadhidata wa uhusiano wa MariaDB (RDBMS), uma wa injini ya hifadhidata ya MySQL, na seva ya PHP. -upande.

Mahitaji

  1. Usakinishaji mpya wa FreeBSD
  2. Mipangilio ya Awali ya FreeBSD
  3. Ufikiaji wa kiweko cha moja kwa moja au SSH iwapo kuna muunganisho wa mbali kwa FreeBSD.
  4. Anwani tuli ya IP iliyosanidiwa kwenye Kiolesura cha Mtandao.

Hatua ya 1: Sakinisha Apache kwenye FreeBSD

1. Huduma ya kwanza tutakayosakinisha ni seva ya Apache HTTP. Kwa chaguo-msingi, FreeBSD hutoa matoleo mengi yenye moduli tofauti za wakati wa kufanya kazi kwa seva ya wavuti ya Apache.

Matoleo hayo yamekusanywa awali kuwa kifurushi cha mfumo wa jozi na kutolewa na hazina za FreeBSD PORTS. Ili kuonyesha jozi zote za vifurushi vya Apache zinazotolewa na PORTS, toa amri ifuatayo.

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

Unaweza pia kutafuta vifurushi vya Apache vilivyotimizwa awali kwenye FreeBSD kwa kutoa amri iliyo hapa chini.

# pkg search apache2

2. Kisha, weka toleo la hivi karibuni la seva ya Apache HTTP na moduli zote zinazohitajika kwa kutoa amri ifuatayo.

# pkg install apache24

3. Baada ya seva ya wavuti ya Apache kusakinishwa kwenye mfumo, toa amri ifuatayo ili kuwezesha mfumo mzima wa daemon katika FreeBSD.

# sysrc apache24_enable="yes"

Mbinu mbadala ya kuwezesha daemon ya Apache itakuwa kuhariri na kuambatisha mwenyewe mstari apache24_enable=\ndiyo\ katika faili ya /etc/rc.conf kama inavyoonyeshwa kwenye picha ya skrini iliyo hapa chini.

4. Hatimaye, ili kupima kama seva ya tovuti inafanya kazi ipasavyo, anzisha daemon ya Apache kwa kutoa amri iliyo hapa chini na tembelea ukurasa wa wavuti chaguo-msingi kwa kuelekeza kivinjari kwenye seva yako anwani ya IP ya FQDN (http://IP-orFQDN ) kama inavyoonyeshwa kwenye picha ya skrini iliyo hapa chini.

# service apache24 start

Saraka chaguomsingi ya webroot ya seva ya wavuti ya Apache katika FreeBSD 11.x iko katika /usr/local/www/apache24/data/ njia ya mfumo. Hapo utapata faili ndogo ya index.html unayoweza kuhariri inavyowezekana.

Hatua ya 2: Sakinisha PHP kwenye FreeBSD

5. FreeBSD 11.x inatoa matoleo mengi ya lugha ya upande wa seva iliyotafsiriwa ya PHP iliyowekwa katika jozi zilizotimizwa awali. Ili kupata orodha ya vifurushi vyote vya toleo la PHP vinavyotolewa na hazina za Bandari za FreeBSD toa amri ifuatayo.

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

Njia mbadala ya kutafuta matoleo yote ya kifurushi cha FreeBSD PHP ni kwa kutekeleza amri iliyo hapa chini.

# pkg search -o php

6. Kutafuta jozi zote zinazopatikana zinazotolewa na FreeBSD kwa toleo mahususi la PHP (matoleo 5 au 7 kwa sasa) endesha amri zilizo hapa chini. Tumia amri ndogo ili kupunguza na kupitia matokeo.

# pkg search php5 |less
# pkg search php7

7. Ili kuwa mahususi zaidi kuhusu moduli ambazo toleo maalum la PHP hutoa, endesha amri ifuatayo kama ilivyoelezwa hapa chini, ambayo inaonyesha moduli zote zinazopatikana za toleo la PHP 7.1.

# pkg search php71

8. Katika mwongozo huu tutasakinisha toleo la PHP 7.1 kwa rafu yetu ya FBAMP. Toa amri ifuatayo ili kusakinisha PHP na baadhi ya moduli muhimu zinazohitajika kwa usakinishaji wa kawaida wa CMS.

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

9. Kisha, tunahitaji kuunda faili ya usanidi wa php.conf kwa seva ya wavuti ya Apache katika /usr/local/etc/apache24/Includes/ njia ya mfumo na maudhui yafuatayo.

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

Ongeza mistari ifuatayo kwenye faili ya 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. Ili kujaribu kama lango la PHP linafanya kazi inavyotarajiwa na seva ya wavuti ya Apache, tengeneza faili ya PHP info.php katika /usr/local/www/apache24/data/system path, ambayo ni njia ya msingi ya hati ya wavuti ya Apache. seva ya wavuti.

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

Anzisha tena daemon ya Apache ili kutekeleza mabadiliko.

# service apache24 restart

Ifuatayo, tembelea URI ifuatayo kwenye kivinjari ili kuona muhtasari wa PHP.

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

11. Ili kuamilisha faili ya usanidi ya PHP ini kwa uzalishaji toa amri zilizo hapa chini. Unaweza kurekebisha faili ya uzalishaji ya php.ini ili kubadilisha mipangilio mbalimbali ya PHP kwenye rafu yako ya FBAMP.

# 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

Hatua ya 3: Sakinisha MariaDB kwenye FreeBSD

12. Sehemu ya mwisho inayokosekana kwa rafu yetu ya FBAMP ni seva ya hifadhidata ya MySQL. FreeBSD 11.x inatoa zaidi ya vifurushi 1000 kwa hifadhidata mbalimbali.

Ili kuonyesha ni vipengele vipi vinavyopatikana kwa hifadhidata ya MariaDB au MySQL, toa amri zifuatazo. Katika mwongozo huu tutasakinisha hifadhidata ya MariaDB juu ya MySQL (ambayo sasa inamilikiwa na kuendelezwa kikamilifu na Oracle).

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

13. Katika mwongozo huu tutasakinisha toleo jipya zaidi la seva ya hifadhidata ya MariaDB katika FreeBSD, ambayo kwa sasa inawakilishwa na toleo la kifurushi cha binary cha mariadb102.

Tekeleza amri ifuatayo ili kusakinisha seva ya MariaDB na mteja na moduli inayohitajika ya PHP 7.1 inayohitajika kufikia hifadhidata kupitia lango la seva ya Apache.

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

14. Kisha, wezesha mfumo mzima wa seva ya MariaDB na anza daemoni ya hifadhidata kwa kuendesha amri zifuatazo.

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

15. Ili kupata hifadhidata endesha mysql_secure_installation script. Tumia dondoo la pato la hati hapa chini ili kufanya MariaDB kuwa ngumu.

# /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. Kwa chaguo-msingi, daemoni ya MariaDB husikiliza miunganisho ya mtandao nje ya mwenyeji kwenye bandari 3306/TCP. Endesha lsof au amri ya sockstat kupata hali ya tundu ya MariaDB. Usanidi huu ni hatari na huweka huduma wazi kwa mashambulizi ya nje ya mtandao.

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

17. Ikiwa huhitaji ufikiaji wa mbali kwa MariaDB, hakikisha kuwa daemon ya MariaDB inasikiliza mwenyeji wa ndani pekee, kwa kutoa amri iliyo hapa chini. Baadaye, anzisha upya huduma ya MariaDB ili kutekeleza mabadiliko.

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

18. Tena, endesha amri ya lsof au sockstat ili kuorodhesha soketi ya mtandao ya MariaDB. Soketi inapaswa kufunga na kusikiliza kwenye localhost sasa, kama inavyoonyeshwa kwenye picha hapa chini.

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

19. Ili kujaribu muunganisho wa hifadhidata ya MariaDB kutoka kwa kiweko toa amri ifuatayo. Ingiza nenosiri la msingi la MySQL kwa haraka na orodha ya hifadhidata chaguomsingi inapaswa kuonyeshwa kwenye skrini yako ya kiweko kama inavyoonyeshwa kwenye picha iliyo hapa chini.

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

Ni hayo tu! Umesakinisha seva ya wavuti ya Apache na hifadhidata ya MariaDB na mkalimani wa PHP katika FreeBSD. Sasa unaweza kuanza kupeleka tovuti ya WordPress kwa muda mfupi.

Kwenye mafunzo yanayofuata tutajadili baadhi ya mada za kina za FPBAMP, kama vile jinsi ya kuwezesha na kuunda seva pangishi pepe za Apache, kuwezesha moduli ya kuandika upya inayohitajika na faili ya .htaccess kufanya kazi vizuri na jinsi ya kupata miunganisho ya Apache kwa kutumia cheti cha Kujiandikisha Mwenyewe au bila malipo. Cheti kinachotolewa na huluki ya Let's Encrypt.