웹사이트 검색

FreeBSD 12에 FAMP 스택(Apache/MySQL/PHP)을 설치하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 시작하기 전에\n
  3. 1단계 - Apache 2.4 설치
  4. 2단계 - MySQL 8.0 설치
  5. 3단계 - PHP 7.4 설치
    1. PHP 모듈 설치(선택 사항)\n

    Linux의 LAMP 스택과 유사한 FAMP 스택은 FreeBSD 서버가 동적 웹사이트 및 웹 애플리케이션을 호스팅할 수 있도록 일반적으로 함께 설치되는 오픈 소스 소프트웨어 모음입니다. FAMP는 FreeBSD(운영 체제), Apache(HTTP 서버), MySQL/MariaDB(데이터베이스 서버) 및 PHP(동적 PHP 콘텐츠를 처리하는 프로그래밍 언어)의 약자입니다.

    이 가이드에서는 FreeBSD 패키지 관리자인 pkg를 사용하여 FreeBSD 12.1 서버에서 FAMP 스택의 구성요소를 설정합니다.

    요구 사항

    이 가이드를 시작하기 전에 다음이 필요합니다.

    • FreeBSD 12.1.
    • 루트 권한이 있는 사용자 또는 sudo 사용자가 구성을 변경할 수 있습니다.\n
    • FreeBSD 시스템 및 명령줄 인터페이스에 대한 기본 지식이 권장됩니다.\n

    시작하기 전에

    FreeBSD 버전 확인:

    freebsd-version
    # 12.1-RELEASE

    FreeBSD 시스템이 최신인지 확인하십시오:

    freebsd-update fetch install
    pkg update && pkg upgrade -y

    필요한 패키지를 설치합니다.

    pkg install -y sudo vim bash curl

    원하는 사용자 이름으로 새 사용자 계정을 만듭니다. 우리는 johndoe:를 사용합니다.

    adduser

    # Username: johndoe
    # Full name: John Doe
    # Uid (Leave empty for default): <Enter>
    # Login group [johndoe]: <Enter>
    # Login group is johndoe. Invite johndoe into other groups? []: wheel
    # Login class [default]: <Enter>
    # Shell (sh csh tcsh nologin) [sh]: bash
    # Home directory [/home/johndoe]: <Enter>
    # Home directory permissions (Leave empty for default): <Enter>
    # Use password-based authentication? [yes]: <Enter>
    # Use an empty password? (yes/no) [no]: <Enter>
    # Use a random password? (yes/no) [no]: <Enter>
    # Enter password: your_secure_password
    # Enter password again: your_secure_password
    # Lock out the account after creation? [no]: <Enter>
    # OK? (yes/no): yes
    # Add another user? (yes/no): no
    # Goodbye!

    visudo 명령을 실행하고 %wheel ALL=(ALL) ALL 줄의 주석을 제거하여 wheel 그룹의 구성원이 모든 명령을 실행할 수 있도록 합니다.

    visudo

    # Uncomment by removing hash (#) sign
    # %wheel ALL=(ALL) ALL

    이제 su를 사용하여 새로 만든 사용자로 전환합니다.

    su - johndoe

    참고: johndoe를 귀하의 사용자 이름으로 바꾸십시오.

    시간대 설정:

    sudo tzsetup

    1단계 - Apache 2.4 설치

    Apache 웹 서버는 현재 세계에서 가장 인기 있는 웹 서버 중 하나입니다. 웹 사이트 호스팅을 위한 탁월한 선택입니다.

    FreeBSD 패키지 관리자인 pkg를 사용하여 Apache를 설치할 수 있습니다. 패키지 관리자를 사용하면 FreeBSD에서 관리하는 저장소에서 대부분의 소프트웨어를 쉽게 설치할 수 있습니다.

    Apache를 설치하려면 다음 명령을 실행하십시오.

    sudo pkg install -y apache24

    버전 확인:

    httpd -v
    # Server version: Apache/2.4.41 (FreeBSD)

    이제 Apache를 활성화하고 시작합니다.

    sudo sysrc apache24_enable=yes
    sudo service apache24 start

    Apache가 시작되었는지 확인하려면 다음 명령을 실행할 수 있습니다.

    sudo service apache24 status

    결과적으로 다음과 유사한 내용이 표시됩니다.

    # Output
    apache24 is running as pid 17775.

    웹 브라우저에서 서버 공용 IP 주소를 방문하여 Apache가 오류 없이 설치되고 작동하는지 확인할 수 있습니다. http://your_server_IP로 이동합니다. 기본 "작동합니다!" Apache 페이지가 표시됩니다.

    2단계 - MySQL 8.0 설치

    이제 웹 서버를 가동하고 실행 중이므로 관계형 데이터베이스 관리 시스템인 MySQL을 설치할 차례입니다. MySQL 서버는 서버가 정보를 저장할 수 있는 데이터베이스를 구성하고 액세스를 제공합니다.

    다시 말하지만 pkg를 활용하여 소프트웨어를 구하고 설치할 수 있습니다.

    pkg를 사용하여 MySQL 8.0을 설치하려면 다음 명령을 사용하십시오.

    sudo pkg install -y mysql80-client mysql80-server

    이 명령은 현재 8.x.xMySQL 클라이언트 및 서버의 최신 버전을 설치합니다.

    버전 확인:

    mysql --version
    # mysql  Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)

    이제 MySQL을 활성화하고 시작합니다.

    sudo sysrc mysql_enable=yes
    sudo service mysql-server start

    MySQL이 시작되었는지 확인하려면 다음 명령을 실행할 수 있습니다.

    sudo service mysql-server status

    다음과 유사한 내용이 표시됩니다.

    # Output
    mysql is running as pid 19171.

    안전하지 않은 일부 기본값을 제거하고 데이터베이스 시스템에 대한 액세스를 약간 제한하는 mysql_secure_installation 보안 스크립트를 실행하는 것이 좋습니다.

    sudo mysql_secure_installation

    암호를 설정하라는 메시지가 표시되고 몇 가지 다른 질문이 이어집니다. 강력한 암호를 입력한 다음 나머지 질문에 대해서는 :key_enter:를 눌러 기본값을 선택합니다.

    3단계 - PHP 7.4 설치

    PHP는 웹 개발을 위해 설계된 서버 측 스크립팅 언어입니다. PHP는 FAMP 스택의 필수 구성 요소입니다. 또한 PHP 대신 Python이나 Perl이 일반적으로 사용됩니다. 그러나 가장 인기 있는 옵션인 PHP가 가장 자주 사용됩니다. 데이터베이스와 함께 웹 사이트 또는 앱에 동적 동작을 제공합니다.

    다시 한 번 pkg 시스템을 활용하여 PHP 구성 요소를 설치합니다.

    pkg와 함께 PHP 7.4를 설치하려면 다음 명령을 실행하십시오.

    sudo pkg install -y php74 php74-mysqli mod_php74

    이렇게 하면 php74, mod_php74php74-mysqli 패키지가 설치됩니다.

    PHP 버전 확인:

    php --version

    # PHP 7.4.1 (cli) (built: Jan  2 2020 01:32:38) ( NTS )
    # Copyright (c) The PHP Group
    # Zend Engine v3.4.0, Copyright (c) Zend Technologies

    다음 명령을 사용하여 샘플 PHP 구성 파일을 제자리에 복사합니다.

    sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

    이제 PHP-FPM을 활성화하고 시작합니다.

    sudo sysrc php_fpm_enable=yes
    sudo service php-fpm start

    PHP-FPM이 시작되었는지 확인하려면 다음 명령을 실행할 수 있습니다.

    sudo service php-fpm status

    결과적으로 다음과 유사한 내용이 표시됩니다.

    # Output
    php_fpm is running as pid 23005.

    PHP 모듈 설치(선택 사항)

    PHP의 기능을 향상시키기 위해 선택적으로 몇 가지 추가 모듈을 설치할 수 있습니다.

    현재 PHP 모듈에서 컴파일된 것을 보려면 다음을 실행할 수 있습니다.

    php -m
    # [PHP Modules]
    # Core
    # date
    # libxml
    # mysqlnd
    # pcre
    # Reflection
    # SPL
    # standard
    # [Zend Modules]

    사용 가능한 PHP 모듈을 검색하려면 다음 명령을 사용할 수 있습니다.

    pkg search ^php74-*

    결과는 대부분 설치할 수 있는 PHP 7.4 모듈입니다.

    # Output
    # php74-7.4.0                    PHP Scripting Language
    # php74-Ice37-3.7.2_1            Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
    # php74-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
    # php74-aphpunit-1.9             Testing framework for unit tests
    # php74-bcmath-7.4.0             The bcmath shared extension for php
    # php74-brotli-0.7.0             Brotli extension for PHP
    # php74-bsdconv-11.5.0           PHP wrapper for bsdconv
    # php74-bz2-7.4.0                The bz2 shared extension for php
    # php74-calendar-7.4.0           The calendar shared extension for php
    # php74-composer-1.8.6           Dependency Manager for PHP
    # php74-ctype-7.4.0              The ctype shared extension for php
    # php74-curl-7.4.0               The curl shared extension for php
    # . . .
    

    조사 후 패키지를 설치해야 한다고 결정한 경우 pkg install 명령을 사용하면 됩니다. 대부분의 PHP 웹 애플리케이션에는 추가 모듈이 필요하므로 모듈을 검색하는 방법을 알아두는 것이 좋습니다.

    4단계 - PHP 모듈을 사용하도록 Apache 구성

    PHP를 사용하기 전에 Apache와 함께 작동하도록 구성해야 합니다.

    sudo vim /usr/local/etc/apache24/modules.d/001_mod-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>
    

    파일을 저장하고 vim을 종료합니다.

    Apaches 구성 확인:

    sudo apachectl configtest

    Apache에서 구성을 변경했기 때문에 적용할 서비스를 다시 로드해야 합니다. 그렇지 않으면 Apache는 여전히 이전 구성으로 작동합니다.

    sudo apachectl restart

    5단계 - PHP 처리 테스트

    시스템이 PHP에 대해 올바르게 구성되었는지 테스트하기 위해 매우 기본적인 PHP 스크립트를 생성할 수 있습니다. 이 스크립트를 info.php라고 부를 것입니다. 기본적으로 DocumentRoot /usr/local/www/apache24/data로 설정됩니다. 다음을 입력하여 해당 위치 아래에 info.php 파일을 만들 수 있습니다.

    sudo vim /usr/local/www/apache24/data/info.php

    그리고 해당 파일에 다음 코드를 추가합니다.

    <?php phpinfo(); ?>
    

    http://your_server_IP/info.php로 이동하면 다음 페이지가 표시됩니다.

    FAMP 스택 설치 및 설정 후에는 서버에 대한 정보가 공개되지 않도록 info.php 파일을 제거해야 합니다.

    sudo rm /usr/local/www/apache24/data/info.php

    결론

    축하합니다. FreeBSD 12.1 서버에 FAMP 스택을 성공적으로 설치했습니다. 이제 다음에 수행할 작업에 대한 여러 선택 사항이 있습니다. 대부분의 웹사이트와 웹 소프트웨어를 그 위에 설치할 수 있는 플랫폼을 설치했습니다.