Bii o ṣe le Fi Apache sii, MariaDB ati PHP (FAMP) Stack lori FreeBSD


Itọsọna yii yoo ṣapejuwe bii o ṣe le fi sori ẹrọ ati tunto FBAMP ninu ẹrọ iṣẹ FreeBSD, eyiti o jọra si akopọ LAMP lori Linux. FBAMP jẹ adape ti o duro fun ikojọpọ ti sọfitiwia ti o da lori FreeBSD OS, olupin Apache HTTP, olupin ayelujara ṣiṣi orisun ti o gbajumọ julọ ni intanẹẹti, eto iṣakoso data data ibatan ibatan ti MariaDB (RDBMS), orita ti ẹrọ ibi ipamọ data MySQL, ati olupin PHP -ẹgbẹ.

Awọn ibeere

  1. Fifi sori tuntun ti FreeBSD
  2. Awọn atunto Ibẹrẹ FreeBSD
  3. Iwọle irawọ taara tabi SSH ni ọran ti asopọ latọna jijin si FreeBSD.
  4. Adirẹsi IP aimi ti a tunto lori Ọlọpọọmídíà Nẹtiwọọki kan.

Igbesẹ 1: Fi Apache sori FreeBSD

1. Iṣẹ akọkọ ti a yoo fi sii ni olupin HTTP Afun. Nipa aiyipada, FreeBSD nfunni awọn ẹya lọpọlọpọ pẹlu awọn modulu iṣẹ asiko oriṣiriṣi fun olupin ayelujara Apache.

Awọn ẹya naa ti ṣajọ ṣajọ sinu package alakomeji ati pese nipasẹ awọn ibi ipamọ FreeBSD PORTS. Lati ṣe afihan gbogbo awọn binaries ti Apache ti a pese nipasẹ PORTS, gbekalẹ aṣẹ atẹle.

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

O tun le wa fun awọn idii Apache ti a ṣaju tẹlẹ lori FreeBSD nipasẹ ipinfunni aṣẹ isalẹ.

# pkg search apache2

2. Itele, fi ẹya tuntun ti olupin HTTP afun pẹlu gbogbo awọn modulu ti a beere nipasẹ ipinfunni aṣẹ atẹle.

# pkg install apache24

3. Lẹhin ti o ti fi olupin ayelujara Apache sori ẹrọ, gbejade aṣẹ atẹle lati jẹki eto daemon jakejado ni FreeBSD.

# sysrc apache24_enable="yes"

Ọna miiran ti muu mu daemon Apache yoo jẹ lati ṣatunkọ pẹlu ọwọ ati fi ila sii apache24_enable =\"bẹẹni \" ni faili /etc/rc.conf bi a ṣe ṣalaye ninu sikirinifoto isalẹ.

4. Lakotan, lati danwo ti olupin ayelujara ba n ṣiṣẹ daradara, bẹrẹ Apem daemon nipasẹ ipinfunni aṣẹ isalẹ ki o ṣabẹwo si oju-iwe wẹẹbu aiyipada nipa titọkasi ẹrọ lilọ kiri lori adirẹsi IP olupin rẹ ti FQDN ( http:// IP-orFQDN ) bi a ṣe han ninu sikirinifoto ni isalẹ.

# service apache24 start

Itọsọna webroot aiyipada ti olupin ayelujara Apache ni FreeBSD 11.x wa ni /usr/agbegbe/www/apache24/data/ ọna eto. Nibẹ ni iwọ yoo wa faili index.html kekere kan ti o le ṣatunkọ bi pelu.

Igbesẹ 2: Fi PHP sori FreeBSD

5. FreeBSD 11.x nfunni ni awọn ẹya pupọ ti PHP ti tumọ ede olupin-ẹgbẹ ti o ṣajọ ninu awọn alakomeji ti a ṣaju tẹlẹ. Lati gba atokọ ti gbogbo awọn idii ẹya PHP ti o wa ti a pese nipasẹ awọn ibi ipamọ FreeBSD Awọn ibudo gbekalẹ aṣẹ atẹle.

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

Ọna miiran ti wiwa fun gbogbo awọn ẹya package FreeBSD PHP jẹ nipa ṣiṣe pipaṣẹ isalẹ.

# pkg search -o php

6. Lati wa gbogbo awọn alakomeji ti o wa ti a pese nipasẹ FreeBSD fun ẹya PHP kan pato (awọn ẹya 5 tabi 7 lọwọlọwọ) ṣiṣe awọn ofin isalẹ. Lo pipaṣẹ to kere lati dín ati lilö kiri nipasẹ iṣẹjade.

# pkg search php5 |less
# pkg search php7

7. Lati jẹ alaye diẹ sii lori awọn modulu wo ni ẹya PHP aṣa n pese, ṣiṣe aṣẹ atẹle bi a ti ṣalaye rẹ ni isalẹ, eyiti o ṣe afihan gbogbo awọn modulu ti o wa fun ẹya PHP 7.1.

# pkg search php71

8. Ninu itọsọna yii a yoo fi sori ẹrọ ifasilẹ PHP 7.1 fun akopọ FBAMP wa. Ṣe aṣẹ atẹle lati fi sori ẹrọ PHP pẹlu diẹ ninu awọn modulu pataki julọ ti o nilo fun fifi sori CMS aṣoju kan.

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

9. Nigbamii ti, a nilo lati ṣẹda faili iṣeto php.conf fun olupin ayelujara Apache ni/usr/agbegbe/ati be be lo/apache24/Pẹlu/ọna eto pẹlu akoonu atẹle.

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

Ṣafikun awọn ila wọnyi si faili 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. Lati le ṣe idanwo ti ẹnu-ọna PHP ba n ṣiṣẹ bi o ti ṣe yẹ pẹlu olupin wẹẹbu Apache, ṣẹda faili PHP info.php ni/usr/agbegbe/www/apache24/data/eto ọna, eyiti o jẹ ọna gbongbo iwe ayelujara aiyipada ti Apache olupin ayelujara.

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

Tun daemon Tun bẹrẹ lati lo awọn ayipada.

# service apache24 restart

Nigbamii, ṣabẹwo si URI atẹle ni aṣawakiri kan lati wo akopọ PHP.

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

11. Ni ibere lati muu faili iṣeto ni ini PHP ṣiṣẹ fun ọrọ iṣelọpọ awọn ofin isalẹ. O le yipada faili iṣelọpọ php.ini lati le yi awọn eto PHP oriṣiriṣi pada ninu akopọ FBAMP rẹ.

# 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

Igbesẹ 3: Fi MariaDB sori FreeBSD

12. Apakan ti o padanu kẹhin fun akopọ FBAMP wa ni olupin ipamọ data MySQL. FreeBSD 11.x nfunni diẹ sii ju awọn idii 1000 fun awọn apoti isura data oniruru.

Lati ṣe afihan iru awọn paati ti o wa fun MariaDB tabi awọn apoti isura data MySQL, ṣe agbekalẹ awọn ofin wọnyi. Ninu itọsọna yii a yoo fi sori ẹrọ ibi ipamọ data MariaDB lori MySQL (eyiti o jẹ ohun-ini bayi ti o dagbasoke ni itara nipasẹ Oracle).

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

13. Ninu itọsọna yii a yoo fi sori ẹrọ ẹya tuntun ti olupin data MariaDB ni FreeBSD, eyiti o jẹ aṣoju lọwọlọwọ nipasẹ idasilẹ package binadb102.

Ṣiṣe aṣẹ wọnyi lati fi sori ẹrọ olupin MariaDB ati alabara ati module ti o nilo PHP 7.1 nilo lati wọle si ibi ipamọ data nipasẹ ẹnu-ọna olupin Apache.

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

14. Nigbamii, mu eto olupin MariaDB ṣiṣẹ jakejado ati bẹrẹ daemon data nipa ṣiṣe awọn ofin wọnyi.

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

15. Lati ni aabo ibi ipamọ data ṣiṣe mysql_secure_installation scrip. Lo iṣẹjade iwe afọwọkọ isalẹ lati ṣe lile 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. Nipa aiyipada, MariaDB daemon tẹtisi fun awọn isopọ nẹtiwọọki ni ita localhost lori ibudo 3306/TCP. Ṣiṣe lsof tabi aṣẹ sockstat lati gba ipo iṣan MariaDB. Iṣeto yii jẹ eewu ati ṣafihan iṣẹ si awọn ikọlu nẹtiwọọki ita.

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

17. Ti o ko ba nilo iwọle latọna jijin si MariaDB, rii daju pe MariaDB daemon tẹtisi si localhost nikan, nipa fifiranṣẹ aṣẹ isalẹ. Lẹhinna, tun bẹrẹ iṣẹ MariaDB lati lo awọn ayipada.

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

18. Lẹẹkansi, ṣiṣe lsof tabi aṣẹ sockstat lati le ṣe atokọ iho nẹtiwọki MariaDB. Iho yẹ ki o di ki o tẹtisi lori localhost ni bayi, bi a ṣe ṣalaye ninu aworan isalẹ.

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

19. Lati ṣe idanwo asopọpọ data data MariaDB lati inu ọrọ itunu aṣẹ ti o tẹle. Tẹ ọrọ igbaniwọle MySQL sii ni iyara ati atokọ ti awọn apoti isura infomesonu aiyipada yẹ ki o han ni iboju itọnisọna rẹ bi a ṣe ṣalaye ninu aworan isalẹ.

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

Gbogbo ẹ niyẹn! O ti ṣaṣeyọri sori ẹrọ olupin ayelujara Apache pẹlu ibi ipamọ data MariaDB ati onitumọ PHP ni FreeBSD. O le bẹrẹ bayi lati ṣafihan oju opo wẹẹbu WordPress ni akoko kankan.

Lori ẹkọ ti nbọ a yoo jiroro diẹ ninu awọn akọle FPBAMP to ti ni ilọsiwaju, bii bii o ṣe le mu ṣiṣẹda ati ṣẹda awọn ọmọ ogun foju foju Apache, jẹ ki atunkọ atunkọ ti o nilo nipasẹ faili .htaccess lati ṣiṣẹ daradara ati bi o ṣe le ni aabo awọn isopọ Apache nipa lilo ijẹrisi Iforukọsilẹ ti Ara ẹni tabi ọfẹ Ijẹrisi ti a fun nipasẹ Jẹ ki Encrypt nkankan.