웹사이트 검색

FreeBSD에 Apache, MariaDB 및 PHP(FAMP) 스택을 설치하는 방법


이 가이드에서는 Linux의 LAMP 스택과 유사한 FreeBSD 운영 체제에서 FBAMP를 설치하고 구성하는 방법을 설명합니다. FBAMP는 FreeBSD OS, Apache HTTP 서버, 인터넷에서 가장 널리 사용되는 오픈 소스 웹 서버인 MariaDB<를 기반으로 하는 소프트웨어 모음을 나타내는 약어입니다. 관계형 데이터베이스 관리 시스템(RDBMS), MySQL 데이터베이스 엔진의 포크 및 PHP 서버측.

요구사항

  1. FreeBSD를 새로 설치
  2. FreeBSD 초기 구성
  3. FreeBSD에 원격으로 연결하는 경우 직접 콘솔 액세스 또는 SSH.
  4. 네트워크 인터페이스에 구성된 고정 IP 주소입니다.

1단계: FreeBSD에 Apache 설치

1. 우리가 설치할 첫 번째 서비스는 Apache HTTP 서버입니다. 기본적으로 FreeBSD는 Apache 웹 서버에 대해 다양한 런타임 작업 모듈이 포함된 여러 버전을 제공합니다.

버전은 바이너리 패키지로 사전 컴파일되어 FreeBSD PORTS 저장소에서 제공됩니다. PORTS에서 제공하는 모든 Apache 패키지 바이너리를 표시하려면 다음 명령을 실행하세요.

ls /usr/ports/www/ | grep apache

아래 명령을 실행하여 FreeBSD에서 사용 가능한 사전 컴파일된 Apache 패키지를 검색할 수도 있습니다.

pkg search apache2

2. 그런 다음 다음 명령을 실행하여 모든 필수 모듈과 함께 최신 버전의 Apache HTTP 서버를 설치합니다.

pkg install apache24

3. Apache 웹 서버가 시스템에 설치된 후 다음 명령을 실행하여 FreeBSD에서 시스템 전체에 데몬을 활성화합니다.

sysrc apache24_enable="yes"

Apache 데몬을 활성화하는 다른 방법은 아래 스크린샷에 표시된 대로 /etc/rc.conf 파일에서 apache24_enable="yes" 줄을 수동으로 편집하고 추가하는 것입니다.

4. 마지막으로 웹 서버가 제대로 작동하는지 테스트하려면 아래 명령을 실행하여 Apache 데몬을 시작하고 브라우저를 FQDN의 서버 IP 주소()로 지정하여 기본 웹 페이지를 방문하십시오. http://IP-orFQDN) 아래 스크린샷과 같습니다.

service apache24 start

FreeBSD 11.x에서 Apache 웹 서버의 기본 웹 루트 디렉터리는 /usr/local/www/apache24/data/ 시스템 경로에 있습니다. 여기에서 원하는 대로 편집할 수 있는 작은 index.html 파일을 찾을 수 있습니다.

2단계: FreeBSD에 PHP 설치

5. FreeBSD 11.x는 사전 컴파일된 바이너리에 패키지된 PHP 해석 서버 측 언어의 여러 버전을 제공합니다. FreeBSD 포트 저장소에서 제공하는 사용 가능한 모든 PHP 버전 패키지 목록을 얻으려면 다음 명령을 실행하십시오.

ls /usr/ports/lang/ | grep php

사용 가능한 모든 FreeBSD PHP 패키지 버전을 검색하는 다른 방법은 아래 명령을 실행하는 것입니다.

pkg search -o php

6. 특정 PHP 버전(현재 5 또는 7 버전)에 대해 FreeBSD에서 제공하는 사용 가능한 모든 바이너리를 검색하려면 아래 명령을 실행하세요. less 명령을 사용하여 출력 범위를 좁히고 탐색합니다.

pkg search php5 |less
pkg search php7

7. 사용자 정의 PHP 버전이 제공하는 모듈에 대해 더 자세히 알아보려면 아래에 설명된 대로 다음 명령을 실행하세요. 그러면 PHP 7.1 버전에 사용 가능한 모든 모듈이 표시됩니다.

pkg search php71

8. 이 가이드에서는 FBAMP 스택용 PHP 7.1 릴리스를 설치합니다. 일반적인 CMS 설치에 필요한 가장 중요한 모듈 중 일부와 함께 PHP를 설치하려면 다음 명령을 실행하십시오.

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

9. 다음으로 /usr/local/etc/apache24/Includes/php.conf 구성 파일을 생성해야 합니다. > 다음 내용이 포함된 시스템 경로.

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

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. PHP 게이트웨이가 Apache 웹 서버에서 예상대로 작동하는지 테스트하려면 /usr/local/www/에 PHP info.php 파일을 만듭니다. apache24/data/system 경로는 Apache 웹 서버의 기본 웹 문서 루트 경로입니다.

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

변경 사항을 적용하려면 Apache 데몬을 다시 시작하세요.

service apache24 restart

그런 다음 브라우저에서 다음 URI를 방문하여 PHP 요약을 확인하세요.

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

11. 프로덕션용 PHP ini 구성 파일을 활성화하려면 아래 명령을 실행하십시오. FBAMP 스택의 다양한 PHP 설정을 변경하기 위해 php.ini 프로덕션 파일을 수정할 수 있습니다.

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단계: FreeBSD에 MariaDB 설치

12. FBAMP 스택에서 마지막으로 누락된 구성 요소는 MySQL 데이터베이스 서버입니다. FreeBSD 11.x는 다양한 데이터베이스를 위한 1000개 이상의 패키지를 제공합니다.

MariaDB 또는 MySQL 데이터베이스에 사용할 수 있는 구성요소를 표시하려면 다음 명령을 실행하세요. 이 가이드에서는 MySQL(현재 Oracle이 소유하고 적극적으로 개발하고 있음)을 통해 MariaDB 데이터베이스를 설치합니다.

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

13. 이 가이드에서는 현재 mariadb102 바이너리 패키지 릴리스로 표시되는 FreeBSD에 최신 버전의 MariaDB 데이터베이스 서버를 설치합니다.

MariaDB 서버 및 클라이언트와 Apache 서버 게이트웨이를 통해 데이터베이스에 액세스하는 데 필요한 필수 PHP 7.1 모듈을 설치하려면 다음 명령을 실행하십시오.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. 다음으로, 다음 명령을 실행하여 시스템 전체에서 MariaDB 서버를 활성화하고 데이터베이스 데몬을 시작합니다.

sysrc mysql_enable="yes" 
service mysql-server start

15. 데이터베이스를 보호하려면 mysql_secure_installation 스크립트를 실행하세요. 아래 스크립트 출력 발췌를 사용하여 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. 기본적으로 MariaDB 데몬은 3306/TCP 포트에서 localhost 외부의 네트워크 연결을 수신합니다. MariaDB 소켓 상태를 가져오려면 netstat, lsof 또는 sockstat 명령을 실행하세요. 이 구성은 위험하며 서비스를 외부 네트워크 공격에 노출시킵니다.

lsof -i4 -i6
sockstat -4 -6

17. MariaDB에 대한 원격 액세스가 필요하지 않은 경우 아래 명령을 실행하여 MariaDB 데몬이 localhost만 수신하는지 확인하세요. 그런 다음 MariaDB 서비스를 다시 시작하여 변경 사항을 적용합니다.

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

18. MariaDB 네트워크 소켓을 나열하려면 netstat, lsof 또는 sockstat 명령을 다시 실행하십시오. 아래 이미지에 표시된 대로 소켓은 이제 localhost에서 바인딩되고 수신 대기해야 합니다.

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

19. 콘솔에서 MariaDB 데이터베이스 연결을 테스트하려면 다음 명령을 실행하세요. 프롬프트에 MySQL 루트 비밀번호를 입력하면 아래 이미지와 같이 기본 데이터베이스 목록이 콘솔 화면에 표시됩니다.

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

그게 다야! FreeBSD에 MariaDB 데이터베이스와 PHP 인터프리터가 포함된 Apache 웹 서버를 성공적으로 설치했습니다. 이제 WordPress 웹사이트 배포를 즉시 시작할 수 있습니다.

다음 튜토리얼에서는 Apache 가상 호스트를 활성화 및 생성하는 방법, .htaccess 파일이 제대로 작동하기 위해 필요한 재작성 모듈을 활성화하는 방법, 그리고 자체 서명된 인증서 또는 Let's Encrypt 엔터티에서 제공하는 무료 인증서입니다.