차례:
- 전제 조건
- 시작하기 전에
- 1. MySQL 데이터베이스 생성
- 2. PHP 설치
- 3. Composer 설치
- 4. Drupal 설치
- 5. Nginx 구성
- 6. 설치 테스트
- 7. Drupal 모듈 및 테마 설치
- 8. Drupal 코어 업데이트
- 결론
Drupal은 전 세계에서 가장 인기있는 오픈 소스 CMS 플랫폼 중 하나입니다. PHP로 작성되었으며 소규모 개인 블로그에서 대기업, 정치 및 정부 사이트에 이르는 다양한 유형의 웹 사이트를 구축하는 데 사용할 수 있습니다.
이 튜토리얼에서는 Ubuntu 18.04 시스템에 Drupal 8.6을 설치하는 방법을 보여줍니다. Drupal을 설치하는 방법은 여러 가지가 있습니다. 이 학습서에서는 drupal-project라는 Drupal 프로젝트 용 작성기 템플리트를 사용하여 Drupal 8.6을 설치하는 데 필요한 단계를 설명합니다.
Nginx를 웹 서버, 최신 PHP 7.2 및 MySQL / MariaDB를 데이터베이스 서버로 사용합니다.
전제 조건
이 학습을 계속하기 전에 다음 전제 조건을 충족하는지 확인하십시오.
- 공용 서버 IP를 가리키는 도메인 이름이 있습니다.
example.com
을 사용합니다.이 지침에 따라 Nginx를 설치했으며 도메인에 SSL 인증서를 설치했습니다. 다음 지침에 따라 무료 Let 's Encrypt SSL 인증서를 설치할 수 있습니다.
시작하기 전에
패키지 색인 및 시스템 패키지를 최신 버전으로 업데이트하십시오.
sudo apt update && sudo apt upgrade
1. MySQL 데이터베이스 생성
sudo apt install mysql-server
신규 MySQL 설치의 경우
mysql_secure_installation
명령을 실행하여 MySQL 서버의 보안을 향상시키는 것이 좋습니다.
이제 MySQL 셸에 로그인하고 새 데이터베이스와 사용자 계정을 만들고 사용자에게 적절한 권한을 부여해야합니다.
MySQL 쉘에 로그인하려면 다음 명령을 입력하고 프롬프트가 표시되면 비밀번호를 입력하십시오.
mysql -u root -p
drupal
이라는 데이터베이스,
drupaluser
라는 사용자를 작성하고 사용자에게 필요한 권한을 부여하려면 다음 명령을 실행하십시오.
CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON drupal.* TO 'drupaluser'@'localhost' IDENTIFIED BY 'change-with-strong-password';
2. PHP 설치
Ubuntu 18.04의 기본 PHP 버전 인 PHP 7.2는 Drupal 8.6에서 완벽하게 지원되며 권장됩니다. Nginx를 웹 서버로 사용하기 때문에 PHP-FPM도 설치합니다.
필요한 모든 PHP 모듈을 설치하려면 다음 명령을 실행하십시오.
sudo apt install php7.2-cli php7.2-fpm php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl
설치 프로세스가 완료된 후 PHP-FPM 서비스가 자동으로 시작됩니다. 서비스 상태를 인쇄하여 확인할 수 있습니다.
systemctl status php7.2-fpm
출력은 fpm 서비스가 활성화되어 실행 중임을 나타냅니다.
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-19 19:54:13 UTC; 9h ago Docs: man:php-fpm7.2(8) Main PID: 17781 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 507) CGroup: /system.slice/php7.2-fpm.service ├─17781 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf) ├─17796 php-fpm: pool www └─17797 php-fpm: pool www
3. Composer 설치
Composer는 PHP의 종속성 관리자이며이를 사용하여 Drupal 템플릿을 다운로드하고 필요한 모든 Drupal 구성 요소를 설치합니다.
composer를 전체적으로 설치하려면 curl을 사용하여 Composer 설치 프로그램을 다운로드하고 파일을
/usr/local/bin
디렉토리로 이동하십시오.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
작성기 버전을 인쇄하여 설치를 확인하십시오.
composer --version
출력은 다음과 같아야합니다.
Composer version 1.6.5 2018-05-04 11:44:59
4. Drupal 설치
이제 composer를 설치 했으므로
/var/www/my_drupal
디렉토리 내의 composer 템플리트를 사용하여 새로운 Drupal 프로젝트를 진행하고 작성할 수 있습니다.
sudo composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction
위의 명령은 템플릿을 다운로드하고 필요한 모든 PHP 패키지를 가져오고 프로젝트를 설치하기 위해 스크립트를 실행합니다. 프로세스는 몇 분 정도 걸릴 수 있으며 성공하면 출력 끝은 다음과 같아야합니다.
Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777
다음 단계는 Drush를 사용하여 Drupal을 설치하는 것입니다. 아래 명령에서 1 단계에서 만든 MySQL 데이터베이스 및 사용자 정보를 전달합니다.
cd /var/www/my_drupal
sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal
인스톨러는 다음과 같은 메시지를 표시 할 것입니다. 계속하려면 enter를 누르십시오.
You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):
설치가 완료되면 스크립트는 관리 사용자 이름과 비밀번호를 인쇄합니다. 출력은 다음과 같아야합니다.
Starting Drupal installation. This takes a while. Consider using the --notify global option. Installation complete. User name: admin User password: XRkC9Q5WN9
마지막으로, 웹 서버가 사이트의 파일 및 디렉토리에 완전히 액세스 할 수 있도록 올바른 권한을 설정해야합니다. Nginx와 PHP는 모두
www-data
사용자 및
www-data
그룹으로 실행되므로 다음 명령을 실행해야합니다.
sudo chown -R www-data: /var/www/my_drupal
5. Nginx 구성
이 자습서의 전제 조건을 확인하지 않으면 지금 시스템에 SSL 인증서가있는 Nginx가 설치되어 있어야합니다.
새로운 Drupal 프로젝트를위한 새로운 서버 블록을 만들기 위해 공식 Nginx 사이트에서 Nginx 레시피를 사용합니다.
텍스트 편집기를 열고 다음 파일을 작성하십시오.
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
# Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /var/www/my_drupal/web; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Block access to scripts in site files directory location ~ ^/sites/+/files/.*\.php$ { deny all; } # Block access to "hidden" files and directories whose names begin with a # period. This includes directories used by version control systems such # as Subversion or Git to store control files. location ~ (^|/)\. { return 403; } location / { try_files $uri /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } # Don't allow direct access to PHP files in the vendor directory. location ~ /vendor/.*\.php$ { deny all; return 404; } location ~ '\.php$|^/update.php' /.*)$; include fastcgi_params; # Block httpoxy attacks. See https://httpoxy.org/. fastcgi_param HTTP_PROXY ""; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; fastcgi_intercept_errors on; fastcgi_pass unix:/run/php/php7.2-fpm.sock; # Fighting with Styles? This little gem is amazing. # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6 location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7 try_files $uri @rewrite; } # Handle private files through Drupal. Private file's path can come # with a language prefix. location ~ ^(/+)?/system/files/ { # For Drupal >= 7 try_files $uri /index.php?$query_string; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; expires max; log_not_found off; } }
example.com을 Drupal 도메인으로 바꾸고 SSL 인증서 파일의 올바른 경로를 설정하는 것을 잊지 마십시오. 모든 HTTP 요청이 HTTPS로 리디렉션됩니다. 이 구성에 사용 된 스 니펫은이 안내서에서 작성됩니다.
sites-enabled
디렉토리에 대한 심볼릭 링크를 만들어 서버 블록을 활성화하십시오.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Nginx 서비스를 다시 시작하기 전에 구문 오류가 없는지 테스트하십시오.
sudo nginx -t
오류가 없으면 출력은 다음과 같아야합니다.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
마지막으로 다음을 입력하여 Nginx 서비스를 다시 시작하십시오.
6. 설치 테스트
브라우저를 열고 도메인을 입력하고 설치가 완료되면 다음과 유사한 화면이 나타납니다.
관리자로 로그인하여 새 Drupal 설치 사용자 정의를 시작할 수 있습니다.
7. Drupal 모듈 및 테마 설치
Drupal 프로젝트가 설치되었으므로 일부 모듈과 테마를 설치하려고합니다. Drupal 모듈과 테마는 사용자 정의 작성기 저장소에서 호스팅되며 drupal-project는 즉시 사용할 수 있도록 구성합니다.
모듈이나 테마를 설치하려면 프로젝트 디렉토리로
cd
하고
composer require drupal/module_or_theme_name
type
composer require drupal/module_or_theme_name
입력
composer require drupal/module_or_theme_name
됩니다. 예를 들어, Pathauto 모듈을 설치하려면 다음 명령을 실행해야합니다.
cd /var/www/my_drupal
sudo -u www-data composer require drupal/pathauto
sudo -u www-data
를 추가하여 사용자
www-data
로 명령을 실행합니다.
Using version ^1.3 for drupal/pathauto./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing drupal/token (1.5.0): Downloading (100%) - Installing drupal/ctools (3.2.0): Downloading (100%) - Installing drupal/pathauto (1.3.0): Downloading (100%) Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested. Writing lock file Generating autoload files > DrupalProject\composer\ScriptHandler::createRequiredFiles
위의 출력에서 볼 수 있듯이 composer는 모든 패키지 종속성을 설치합니다.
8. Drupal 코어 업데이트
업그레이드하기 전에 항상 파일과 데이터베이스를 백업하는 것이 좋습니다. 백업 및 마이그레이션 모듈을 사용하거나 데이터베이스 및 파일을 수동으로 백업 할 수 있습니다.
설치 파일을 백업하려면 다음 rsync 명령을 사용할 수 있습니다. 물론 설치 디렉토리의 올바른 경로를 사용해야합니다.
sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)
데이터베이스를 백업하기 위해 표준
mysqldump
명령을 사용할 수 있습니다.
mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql
또는
drush sql-dump
:
cd /var/www/my_drupal
vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql
백업을 만들었으므로 다음 명령을 실행하여 모든 Drupal 코어 파일을 계속 업데이트 할 수 있습니다.
sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies
결론
축하합니다. 작곡가를 사용하여 Drupal 8을 성공적으로 설치했으며 모듈과 테마를 설치하는 방법을 배웠습니다. 이제 사이트 사용자 정의를 시작할 수 있습니다. Drupal 8 사용 설명서는 Drupal 설치 관리 방법에 대한 자세한 정보를 제공하는 좋은 출발점입니다. 또한 Github의 Drupal Composer 템플릿 프로젝트를 방문해야합니다.
우분투 drupal mysql mariadb cms nginx 작곡가우분투 18.04에 아나콘다를 설치하는 방법
Anaconda는 대규모 데이터 처리, 예측 분석 및 과학 컴퓨팅에 사용되는 가장 널리 사용되는 Python 데이터 과학 및 기계 학습 플랫폼입니다. 이 튜토리얼은 Ubuntu 18.04에서 Anaconda Python Distribution을 다운로드하고 설치하는 단계를 안내합니다.
우분투 18.04에 안드로이드 스튜디오를 설치하는 방법
Android Studio는 모든 기능을 갖춘 크로스 플랫폼 IDE로 모든 유형의 Android 기기에서 애플리케이션을 빌드 할 수 있도록 도와줍니다. 이 튜토리얼은 Ubuntu 18.04에 Android Studio를 설치하는 방법을 설명합니다.
우분투 18.04에 Apache Cassandra를 설치하는 방법
Apache Cassandra는 단일 장애 지점이없는 무료 오픈 소스 NoSQL 데이터베이스입니다. 이 튜토리얼에서는 Ubuntu 18.04에 Apache Cassandra를 설치하는 방법을 보여줍니다.