Wyszukiwanie w witrynie

Jak zainstalować stos Apache, MariaDB i PHP (FAMP) na FreeBSD


W tym przewodniku opisano, jak zainstalować i skonfigurować FBAMP w systemie operacyjnym FreeBSD, który jest podobny do stosu LAMP w systemie Linux. FBAMP to akronim oznaczający zbiór oprogramowania opartego na systemie operacyjnym FreeBSD, serwerze Apache HTTP, najpopularniejszym serwerze WWW typu open source w Internecie, MariaDB< system zarządzania relacyjnymi bazami danych (RDBMS), rozwidlenie silnika bazy danych MySQL i PHP po stronie serwera.

Wymagania

  1. Świeża instalacja FreeBSD
  2. Początkowe konfiguracje FreeBSD
  3. Bezpośredni dostęp do konsoli lub SSH w przypadku zdalnego połączenia z FreeBSD.
  4. Statyczny adres IP skonfigurowany w interfejsie sieciowym.

Krok 1: Zainstaluj Apache na FreeBSD

1. Pierwszą usługą, którą zainstalujemy, będzie serwer Apache HTTP. Domyślnie FreeBSD oferuje wiele wersji z różnymi modułami wykonawczymi dla serwera WWW Apache.

Wersje są wstępnie kompilowane do pakietu binarnego i dostarczane przez repozytoria FreeBSD PORTS. Aby wyświetlić wszystkie pliki binarne pakietów Apache dostarczone przez PORTS, wydaj następujące polecenie.

ls /usr/ports/www/ | grep apache

Możesz także wyszukiwać dostępne, wstępnie skompilowane pakiety Apache na FreeBSD, wydając poniższe polecenie.

pkg search apache2

2. Następnie zainstaluj najnowszą wersję serwera Apache HTTP ze wszystkimi wymaganymi modułami, wydając poniższe polecenie.

pkg install apache24

3. Po zainstalowaniu w systemie serwera WWW Apache wydaj następujące polecenie, aby włączyć demona w całym systemie we FreeBSD.

sysrc apache24_enable="yes"

Alternatywną metodą włączenia demona Apache jest ręczna edycja i dodanie linii apache24_enable="yes" w pliku /etc/rc.conf, jak pokazano na poniższym zrzucie ekranu.

4. Na koniec, aby sprawdzić, czy serwer WWW działa poprawnie, uruchom demona Apache, wydając poniższe polecenie i odwiedź domyślną stronę internetową, wskazując w przeglądarce adres IP serwera FQDN ( http://IP-orFQDN), jak pokazano na poniższym zrzucie ekranu.

service apache24 start

Domyślny katalog webroot serwera WWW Apache w FreeBSD 11.x znajduje się w ścieżce systemowej /usr/local/www/apache24/data/. Znajdziesz tam mały plik index.html, który możesz dowolnie edytować.

Krok 2: Zainstaluj PHP na FreeBSD

5. FreeBSD 11.x oferuje wiele wersji języka po stronie serwera interpretowanego przez PHP, spakowanych we wstępnie skompilowanych plikach binarnych. Aby uzyskać listę wszystkich dostępnych pakietów wersji PHP dostarczonych przez repozytoria portów FreeBSD, wydaj następującą komendę.

ls /usr/ports/lang/ | grep php

Alternatywną metodą wyszukiwania wszystkich dostępnych wersji pakietu FreeBSD PHP jest uruchomienie poniższego polecenia.

pkg search -o php

6. Aby wyszukać wszystkie dostępne pliki binarne dostarczone przez FreeBSD dla konkretnej wersji PHP (obecnie wersje 5 lub 7) uruchom poniższe polecenia. Użyj polecenia less, aby zawęzić dane wyjściowe i nawigować po nich.

pkg search php5 |less
pkg search php7

7. Aby dokładniej określić, jakie moduły udostępnia niestandardowa wersja PHP, uruchom następujące polecenie zgodnie z opisem poniżej, które wyświetli wszystkie dostępne moduły dla wersji PHP 7.1.

pkg search php71

8. W tym przewodniku zainstalujemy wersję PHP 7.1 dla naszego stosu FBAMP. Wydaj następujące polecenie, aby zainstalować PHP z niektórymi najważniejszymi modułami wymaganymi do typowej instalacji CMS.

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

9. Następnie musimy utworzyć plik konfiguracyjny php.conf dla serwera WWW Apache w /usr/local/etc/apache24/Includes/ ścieżka systemowa z następującą zawartością.

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

Dodaj następujące linie do pliku 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. Aby sprawdzić, czy bramka PHP działa zgodnie z oczekiwaniami z serwerem WWW Apache, utwórz plik PHP info.php w /usr/local/www/ ścieżka Apache24/data/system, która jest domyślną ścieżką główną dokumentu internetowego na serwerze WWW Apache.

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

Uruchom ponownie demona Apache, aby zastosować zmiany.

service apache24 restart

Następnie odwiedź następujący URI w przeglądarce, aby wyświetlić podsumowanie PHP.

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

11. Aby aktywować plik konfiguracyjny PHP ini na potrzeby produkcyjne, wydaj poniższe polecenia. Możesz zmodyfikować plik produkcyjny php.ini, aby zmienić różne ustawienia PHP w stosie 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

Krok 3: Zainstaluj MariaDB na FreeBSD

12. Ostatnim brakującym elementem naszego stosu FBAMP jest serwer bazy danych MySQL. FreeBSD 11.x oferuje ponad 1000 pakietów dla różnorodnych baz danych.

Aby wyświetlić jakie komponenty są dostępne dla baz danych MariaDB lub MySQL należy wydać poniższe polecenia. W tym przewodniku zainstalujemy bazę danych MariaDB za pośrednictwem MySQL (która jest obecnie własnością Oracle i jest aktywnie rozwijana).

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

13. W tym przewodniku zainstalujemy najnowszą wersję serwera bazy danych MariaDB we FreeBSD, która obecnie jest reprezentowana przez wydanie pakietu binarnego mariadb102.

Uruchom następującą komendę, aby zainstalować serwer i klienta MariaDB oraz wymagany moduł PHP 7.1 niezbędny do uzyskania dostępu do bazy danych poprzez bramę serwera Apache.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Następnie włącz serwer MariaDB w całym systemie i uruchom demona bazy danych, uruchamiając następujące polecenia.

sysrc mysql_enable="yes" 
service mysql-server start

15. Aby zabezpieczyć bazę danych, uruchom skrypt mysql_secure_installation. Użyj poniższego fragmentu wyjściowego skryptu, aby wzmocnić MariaDB.

/usr/local/bin/mysql_secure_installation
Przykładowe wyjście

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. Domyślnie demon MariaDB nasłuchuje połączeń sieciowych poza hostem lokalnym na porcie 3306/TCP. Uruchom polecenie netstat, lsof lub sockstat, aby uzyskać stan gniazda MariaDB. Taka konfiguracja jest niebezpieczna i naraża usługę na ataki z sieci zewnętrznej.

lsof -i4 -i6
sockstat -4 -6

17. Jeśli nie potrzebujesz zdalnego dostępu do MariaDB, upewnij się, że demon MariaDB nasłuchuje tylko na localhost, wydając poniższe polecenie. Następnie uruchom ponownie usługę MariaDB, aby zastosować zmiany.

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

18. Ponownie uruchom polecenie netstat, lsof lub sockstat, aby wyświetlić gniazdo sieciowe MariaDB. Gniazdo powinno teraz wiązać się i nasłuchiwać na hoście lokalnym, jak pokazano na poniższym obrazku.

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

19. Aby przetestować łączność z bazą danych MariaDB z konsoli, wydaj następujące polecenie. Wpisz hasło root MySQL w wierszu poleceń, a na ekranie konsoli powinna wyświetlić się lista domyślnych baz danych, jak pokazano na poniższym obrazku.

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

To wszystko! Pomyślnie zainstalowałeś serwer WWW Apache z bazą danych MariaDB i interpreterem PHP we FreeBSD. Możesz teraz błyskawicznie rozpocząć wdrażanie witryny WordPress.

W następnym samouczku omówimy zaawansowane tematy FPBAMP, takie jak włączanie i tworzenie wirtualnych hostów Apache, włączanie modułu przepisywania wymaganego przez plik .htaccess do prawidłowego działania oraz zabezpieczanie połączeń Apache za pomocą Certyfikat z podpisem własnym lub bezpłatny certyfikat oferowany przez podmiot Let's Encrypt.