FreeBSD-de Apache, MariaDB we PHP (FAMP) stackini nädip gurmaly


Bu gollanma, Linux-daky LAMP stakasyna meňzeýän FreeBSD operasiýa ulgamynda FBAMP-y nädip gurmalydygyny we sazlamalydygyny görkezer. FBAMP gysgaça söz bolup, FreeBSD OS, Apache HTTP serweri, internetdäki iň meşhur açyk çeşme web serweri, MariaDB baglanyşyk bazasyny dolandyrmak ulgamy (RDBMS), MySQL maglumat bazasynyň hereketlendirijisi we PHP serweri esasynda programma üpjünçiliginiň ýygyndysyny aňladýar. gapdalynda.

Talaplar

  1. FreeBSD-iň täze gurnama
  2. FreeBSD başlangyç konfigurasiýalary
  3. FreeBSD bilen uzakdan birikdirilen ýagdaýynda göni konsola giriş ýa-da SSH.
  4. Tor interfeýsinde düzülen statiki IP adresi.

1-nji ädim: Apache-ni FreeBSD-de guruň

1. Gurjak ilkinji hyzmatymyz Apache HTTP serweridir. Düzgüne görä, FreeBSD Apache web serweri üçin dürli iş wagty modully birnäçe wersiýany hödürleýär.

Wersiýalary ikilik paketine öňünden düzüldi we FreeBSD PORTS ammarlary tarapyndan üpjün edildi. PORTS tarapyndan üpjün edilen ähli Apache paket ikiliklerini görkezmek üçin aşakdaky buýrugy beriň.

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

Şeýle hem aşakdaky buýrugy bermek bilen FreeBSD-de öňünden berlen Apache paketlerini gözläp bilersiňiz.

# pkg search apache2

2. Ondan soň, aşakdaky buýrugy bermek bilen ähli zerur modullar bilen Apache HTTP serweriniň iň soňky wersiýasyny guruň.

# pkg install apache24

3. Ulgamda Apache web serweri gurlandan soň, FreeBSD-de daemon ulgamyny giňeltmek üçin aşakdaky buýrugy beriň.

# sysrc apache24_enable="yes"

Apache daemonyny açmagyň alternatiw usuly, aşakdaky skrinshotda görkezilişi ýaly /etc/rc.conf faýlynda apache24_enable =\hawa\ setirini el bilen redaktirlemek we goşmak bolar.

4. Netijede, web serweriniň dogry işleýändigini ýa-da işlemeýändigini barlamak üçin aşakdaky buýrugy berip, Apache daemonyny başlaň we FQDN ( http:// IP-orFQDN) serweriňiziň IP adresine brauzeri görkezip, esasy web sahypasyna giriň. ) aşakdaky skrinshotda görkezilişi ýaly.

# service apache24 start

FreeBSD 11.x-de Apache web serweriniň deslapky web bukjasy /usr/local/www/apache24/data/ ulgam ýolunda ýerleşýär. Şol ýerde has gowy redaktirläp boljak kiçijik index.html faýly taparsyňyz.

2-nji ädim: FreeBSD-de PHP guruň

5. FreeBSD 11.x öňünden ýerine ýetirilen ikiliklerde gaplanan PHP terjime edilen serwer tarapy diliniň birnäçe wersiýasyny hödürleýär. FreeBSD Ports ammarlary tarapyndan üpjün edilen ähli elýeterli PHP wersiýa paketleriniň sanawyny almak üçin aşakdaky buýrugy beriň.

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

Freehli elýeterli FreeBSD PHP paket wersiýalaryny gözlemegiň alternatiw usuly, aşakdaky buýrugy işletmekdir.

# pkg search -o php

6. FreeBSD tarapyndan belli bir PHP wersiýasy (häzirki wagtda 5 ýa-da 7 wersiýa) üçin bar bolan ikili gözlemek üçin aşakdaky buýruklary işlediň. Çykyşdan daralmak we gezmek üçin az buýruk ulanyň.

# pkg search php5 |less
# pkg search php7

7. PHörite PHP wersiýasynyň haýsy modullary üpjün edýändigi barada has anyk maglumat almak üçin, PHP 7.1 wersiýasy üçin bar bolan modullary görkezýän aşakda görkezilişi ýaly aşakdaky buýrugy işlediň.

# pkg search php71

8. Bu gollanmada FBAMP toplumymyz üçin PHP 7.1 goýberilişini gurarys. Adaty CMS gurnamak üçin zerur bolan käbir möhüm modullar bilen PHP gurmak üçin aşakdaky buýrugy beriň.

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

9. Ondan soň,/usr/local/etc/apache24/Apache web serweri üçin php.conf konfigurasiýa faýlyny döretmeli, aşakdaky mazmun bilen ulgam ýoluny öz içine alýar.

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

Php.conf faýlyna aşakdaky setirleri goşuň.

<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. PHP şlýuzasynyň Apache web serweri bilen garaşylşy ýaly işleýändigini ýa-da işlemeýändigini barlamak üçin, Apache-iň deslapky web resminama kök ýoly bolan/usr/local/www/apache24/data/system ýolunda PHP info.php faýly dörediň. web serweri.

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

Üýtgeşmeleri ulanmak üçin Apache daemonyny täzeden açyň.

# service apache24 restart

Ondan soň, PHP gysgaça mazmunyny görmek üçin brauzerdäki aşakdaky URI-e giriň.

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

11. Önümçilik üçin PHP ini konfigurasiýa faýlyny işjeňleşdirmek üçin aşakdaky buýruklar. FBAMP bukjasyndaky dürli PHP sazlamalaryny üýtgetmek üçin php.ini önümçilik faýlyny üýtgedip bilersiňiz.

# 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

3-nji ädim: FreeBSD-de MariaDB guruň

12. FBAMP ýygyndymyz üçin iň soňky ýitirilen komponent MySQL maglumat bazasynyň serweridir. FreeBSD 11.x dürli maglumatlar bazalary üçin 1000-den gowrak paket hödürleýär.

MariaDB ýa-da MySQL maglumat bazalary üçin haýsy komponentleriň bardygyny görkezmek üçin aşakdaky buýruklary beriň. Bu gollanmada MariaDB maglumat bazasyny MySQL-dan (häzirki wagtda Oracle eýeçilik edýär we işjeň ösdürilýär) üstünde gurarys.

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

13. Bu gollanmada häzirki wagtda mariadb102 ikilik paket goýberilişi bilen görkezilen FreeBSD-de MariaDB maglumat bazasynyň serweriniň iň soňky wersiýasyny gurarys.

MariaDB serwerini we müşderisini we Apache serwer şlýuzasy arkaly maglumat bazasyna girmek üçin zerur PHP 7.1 modulyny gurmak üçin aşakdaky buýrugy işlediň.

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

14. Ondan soň, MariaDB serwer ulgamyny tutuşlygyna işlediň we aşakdaky buýruklary işledip maglumat bazasynyň daemonyny işlediň.

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

15. Maglumat bazasynyň ygtybarly bolmagy üçin mysql_secure_installation skriptini işlediň. MariaDB-ni gatylaşdyrmak üçin aşakdaky skript çykyş parçasyny ulanyň.

# /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. Düzgüne görä, MariaDB daemon 3306/TCP portundaky ýerlihostyň daşyndaky tor birikmelerini diňleýär. MariaDB rozetkasyny almak üçin lsof ýa-da sockstat buýrugyny işlediň. Bu konfigurasiýa howply we hyzmaty daşarky ulgam hüjümlerine sezewar edýär.

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

17. MariaDB-den uzakdan girmek zerurlygy ýok bolsa, aşakdaky buýrugy bermek bilen, MariaDB daemonynyň diňe ýerlihost diňleýändigine göz ýetiriň. Ondan soň üýtgeşmeleri ulanmak üçin MariaDB hyzmatyny täzeden açyň.

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

18. MariaDB tor rozetkasyny sanamak üçin ýene-de lsof ýa-da sockstat buýrugyny işlediň. Soket, aşakdaky suratda görkezilişi ýaly, indi ýerlihostda baglanyşmaly we diňlemeli.

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

19. Konsoldan MariDB maglumat bazasynyň birikmesini barlamak üçin aşakdaky buýrugy beriň. MySQL kök parolyny gyssagly giriziň we aşakdaky suratda görkezilişi ýaly konsol ekranynda deslapky maglumat bazalarynyň sanawy görkezilmelidir.

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

Bu hemmesi! FreeBSD-de MariaDB maglumat bazasy we PHP terjimeçisi bilen Apache web serwerini üstünlikli gurnadyňyz. Indi hiç wagt WordPress web sahypasyny ýerleşdirip bilersiňiz.

Indiki sapakda, Apache wirtual hostlaryny nädip işletmeli we döretmeli, .htaccess faýly tarapyndan talap edilýän moduly täzeden ýazmaga mümkinçilik bermeli we öz-özüňe gol çekilen şahadatnama ýa-da mugt ulanyp Apache birikmelerini nädip goramaly ýaly käbir ösen FPBAMP temalaryny ara alyp maslahatlaşarys. “Encrypt” guramasy tarapyndan hödürlenýän şahadatnama.