웹사이트 검색

FreeBSD 12에서 Nginx와 함께 ExpressionEngine CMS를 설치하는 방법


이 페이지에서

  1. 요구 사항\n
  2. 전제 조건
  3. 초기 단계
  4. PHP 설치
  5. MariaDB 설치
  6. Acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)\n
  7. Nginx 설치
  8. ExpressionEngine 설치
  9. ExpressionEngine 설정 완료
  10. 링크

ExpressionEngine은 PHP로 작성된 성숙하고 유연하며 안전한 무료 오픈 소스 콘텐츠 관리 시스템(CMS)입니다. 소스 코드는 Github에서 호스팅됩니다. ExpressionEngine을 사용하면 모든 기능을 갖춘 웹 사이트를 구축하거나 웹 앱을 만들거나 모바일 애플리케이션에 콘텐츠를 제공할 수 있습니다. 복잡한 프로그래밍 기술이 필요하지 않습니다. 이 가이드는 PHP, MariaDB를 데이터베이스로, Nginx를 웹 서버로 사용하여 새로운 FreeBSD 12에 ExpressionEngine을 설치하는 과정을 안내합니다.

요구 사항

ExpressionEngine에는 PHP 및 MySQL/MariaDB를 실행하는 웹 서버가 필요합니다. 권장 소프트웨어 스택 및 버전은 다음과 같습니다.

  • PHP 버전 7.0 이상, PHP-FPM 및 다음 PHP 확장(gd, fileinfo, intl, mbstring).
  • MySQL 버전 5.6 이상 또는 Percona 버전 5.6 이상. 이 가이드에서는 MariaDB를 사용합니다.\n
  • Nginx 또는 Apache와 같은 웹 서버. 이 가이드에서는 Nginx를 사용합니다.\n

전제 조건

  • FreeBSD 12를 실행하는 운영체제입니다.\n
  • sudo 권한이 있는 루트가 아닌 사용자.\n

이 자습서에서는 도메인 이름 example.com을 사용합니다. 아래 명령 및 구성 파일(특히 Nginx 구성 파일 및 Lets encrypt 명령)에서 example.com이라는 단어를 자신의 도메인 이름으로 바꾸십시오.

초기 단계

FreeBSD 버전 확인:

uname -ro
# FreeBSD 12.0-RELEASE

시간대 설정:

tzsetup

운영 체제 패키지(소프트웨어)를 업데이트합니다. 이는 운영 체제 기본 소프트웨어 패키지에 대한 최신 업데이트 및 보안 수정 사항이 있는지 확인하기 때문에 중요한 첫 번째 단계입니다.

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

FreeBSD 12.0 운영 체제의 기본 관리에 필요한 몇 가지 필수 패키지를 설치합니다.

pkg install -y sudo vim unzip wget bash socat

PHP 설치

PHP와 필요한 PHP 확장을 설치합니다.

sudo pkg install -y php72 php72-mbstring php72-tokenizer php72-pdo php72-pdo_mysql php72-openssl php72-hash php72-json php72-phar php72-filter php72-zlib php72-dom php72-xml php72-xmlwriter php72-xmlreader php72-curl php72-session php72-ctype php72-iconv php72-gd php72-simplexml php72-zip php72-filter php72-tokenizer php72-calendar php72-fileinfo php72-intl php72-phar php72-soap php72-xmlrpc

모듈로 컴파일된 PHP를 표시하려면 다음을 실행할 수 있습니다.

php -m

ctype
curl
exif
fileinfo
. . .
. . .

PHP 버전 확인:

php --version

# PHP 7.2.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies

PHP-FPM 서비스 시작 및 활성화:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

MariaDB 설치

MariaDB 데이터베이스 서버 설치:

sudo pkg install -y mariadb102-client mariadb102-server

MariaDB 버전 확인:

mysql --version
# mysql  Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1

MariaDB 서비스를 시작하고 활성화합니다.

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

mysql_secure 설치 스크립트를 실행하여 MariaDB 보안을 개선하고 MariaDB root 사용자의 비밀번호를 설정합니다.

sudo mysql_secure_installation

각 질문에 답하십시오.

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

루트 사용자로 MariaDB 셸에 연결합니다.

sudo mysql -u root -p
# Enter password

Shopware용 빈 MariaDB 데이터베이스 및 사용자를 만들고 자격 증명을 기억합니다.

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

MariaDB에서 종료:

mysql> exit

dbname, usernamepassword를 자신의 이름으로 바꾸십시오.

Acme.sh 클라이언트 설치 및 Lets Encrypt 인증서 획득(선택 사항)

HTTPS로 웹 사이트를 보호할 필요는 없지만 사이트 트래픽을 보호하는 것이 좋습니다. Lets Encrypt에서 TLS 인증서를 얻기 위해 acme.sh 클라이언트를 사용합니다. Acme.sh는 종속성이 없는 Lets Encrypt에서 TLS 인증서를 얻기 위한 순수 Unix 셸 소프트웨어입니다.

acme.sh를 다운로드하고 설치합니다.

sudo pkg install -y acme.sh

acme.sh 버전 확인:

acme.sh --version
# v2.8.2

도메인/호스트 이름에 대한 RSA 및 ECC/ECDSA 인증서 받기:<br>

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

테스트용 가짜 인증서를 원하는 경우 위 명령에 --staging 플래그를 추가할 수 있습니다.

위 명령어를 실행하면 인증서가 다음 위치에 있게 됩니다.

  • RSA의 경우: /home/username/example.com 디렉토리.
  • ECC/ECDSA의 경우: /home/username/example.com_ecc 디렉터리.

발급된 인증서를 나열하려면 다음을 실행할 수 있습니다.

acme.sh --list

인증서를 저장할 디렉터리를 만듭니다. /etc/letsencrypt. 디렉터리를 사용합니다.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

인증서를 /etc/letsencrypt 디렉터리에 설치/복사합니다.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

모든 인증서는 60일마다 자동으로 갱신됩니다.

인증서를 얻은 후 루트 사용자에서 종료하고 일반 sudo 사용자로 돌아갑니다.

exit

Nginx 설치

NGINX 웹 서버를 설치합니다.

sudo pkg install -y nginx

NGINX 버전 확인:

nginx -v
# nginx version: nginx/1.14.2

NGINX 서비스 시작 및 사용 설정:

sudo sysrc nginx_enable=yes
sudo service nginx start

다음을 실행하여 ExpressionEngine용 Nginx를 구성합니다.

sudo vim /usr/local/etc/nginx/expressionengine.conf

그리고 다음 구성으로 파일을 채웁니다.

server {

listen 443 ssl; listen 80; server_name example.com; root /usr/local/www/expressionengine; # RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
index index.php; location / { index index.php; try_files $uri $uri/ @ee; } location @ee { rewrite ^(.*) /index.php?$1 last; } location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_index index.php5; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

sudo vim /usr/local/etc/nginx/nginx.conf를 실행하고 아래 줄을 http {} 블록에 추가하여 Shopware 구성을 포함합니다.

include expressionEngine.conf;

구문 오류에 대한 Nginx 구성을 확인하십시오.

sudo nginx -t

Nginx 서비스 다시 로드:

sudo service nginx reload

ExpressionEngine 설치

ExpressionEngine이 상주해야 하는 문서 루트 디렉토리를 생성합니다.

sudo mkdir -p /usr/local/www/expressionengine

문서 루트 폴더로 이동합니다.

cd /usr/local/www/expressionengine

ExpressionEngine의 최신 릴리스를 다운로드하고 서버의 폴더에 파일 압축을 풉니다.

sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip

/usr/local/www/expressionengine 디렉토리의 소유권을 www:로 변경합니다.

sudo chown -R www:www /usr/local/www/expressionengine

브라우저에서 업로드한 admin.php 파일의 URL을 가리킵니다. 예: http://example.com/admin.php. 화면의 지시에 따라 ExpressionEngine을 설치합니다. 설치 마법사가 완료되면 서버에서 system/ee/installer/ 디렉토리의 이름을 바꾸거나 제거해야 합니다.

ExpressionEngine 설정 완료

데이터베이스 및 관리자 계정 세부 정보를 입력하여 ExpressionEngine 설치를 완료합니다.

그러면 기본 로그인 페이지가 표시됩니다.

다음은 ExpressionEngine 관리 대시보드입니다.

다음은 프런트엔드 페이지입니다.

그게 다야! ExpressionEngine 설치가 완료되었습니다.

연결

  • https://expressionengine.com/
  • https://github.com/ExpressionEngine/ExpressionEngine