Android

Cách cài đặt drupal trên Ubuntu 18.04

How to install Drupal on Ubuntu 18.04

How to install Drupal on Ubuntu 18.04

Mục lục:

Anonim

Drupal là một trong những nền tảng CMS nguồn mở phổ biến nhất trên toàn thế giới. Nó được viết bằng PHP và có thể được sử dụng để xây dựng các loại trang web khác nhau, từ blog cá nhân nhỏ đến các trang web công ty, chính trị và chính phủ lớn.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Drupal 8.6 trên máy Ubuntu 18.04. Có nhiều cách để cài đặt Drupal. Hướng dẫn này bao gồm các bước cần thiết để cài đặt Drupal 8.6 bằng cách sử dụng mẫu soạn thảo cho các dự án Drupal được gọi là drupal-project.

Chúng tôi sẽ sử dụng Nginx làm máy chủ web, PHP 7.2 và MySQL / MariaDB mới nhất làm máy chủ cơ sở dữ liệu.

Điều kiện tiên quyết

Hãy chắc chắn rằng bạn đã đáp ứng các điều kiện tiên quyết sau đây trước khi tiếp tục với hướng dẫn này:

  • Bạn có một tên miền trỏ đến IP máy chủ công cộng của bạn. Chúng tôi sẽ sử dụng example.com . Bạn đã cài đặt Nginx bằng cách làm theo các hướng dẫn sau. Bạn đã cài đặt chứng chỉ SSL cho tên miền của mình. Bạn có thể cài đặt chứng chỉ SSL Encrypt SSL miễn phí bằng cách làm theo các hướng dẫn sau.

Trước khi bắt đầu

Cập nhật chỉ mục gói và gói hệ thống lên các phiên bản mới nhất:

sudo apt update && sudo apt upgrade

1. Tạo cơ sở dữ liệu MySQL

sudo apt install mysql-server Đối với các cài đặt MySQL mới, nên chạy lệnh mysql_secure_installation để cải thiện bảo mật cho máy chủ MySQL của bạn.

Bây giờ chúng ta cần đăng nhập vào vỏ MySQL và để tạo một cơ sở dữ liệu và tài khoản người dùng mới và cung cấp cho người dùng các quyền cấp quyền thích hợp.

Để đăng nhập vào vỏ MySQL, gõ lệnh sau và nhập mật khẩu khi được nhắc:

mysql -u root -p

Để tạo cơ sở dữ liệu có tên drupal , người dùng có tên drupaluser và cấp các quyền cần thiết cho người dùng chạy các lệnh sau:

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. Cài đặt PHP

PHP 7.2 là phiên bản PHP mặc định trong Ubuntu 18.04 được hỗ trợ đầy đủ và được khuyến nghị cho Drupal 8.6. Vì chúng tôi sẽ sử dụng Nginx làm máy chủ web, chúng tôi cũng sẽ cài đặt PHP-FPM.

Để cài đặt tất cả các mô-đun PHP cần thiết, hãy chạy lệnh sau:

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

Dịch vụ PHP-FPM sẽ tự động bắt đầu sau khi quá trình cài đặt hoàn tất, bạn có thể xác minh nó bằng cách in trạng thái dịch vụ:

systemctl status php7.2-fpm

Đầu ra phải chỉ ra rằng dịch vụ fpm đang hoạt động và đang chạy.

● 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. Cài đặt Trình soạn thảo

Trình soạn thảo là trình quản lý phụ thuộc cho PHP và chúng tôi sẽ sử dụng nó để tải xuống mẫu Drupal và cài đặt tất cả các thành phần Drupal cần thiết.

Để cài đặt trình soạn thảo trên toàn cầu, hãy tải xuống trình cài đặt Trình soạn thảo với curl và di chuyển tệp vào thư mục /usr/local/bin :

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Xác minh cài đặt bằng cách in phiên bản soạn thảo:

composer --version

Đầu ra sẽ trông giống như thế này:

Composer version 1.6.5 2018-05-04 11:44:59

4. Cài đặt Drupal

Bây giờ chúng tôi đã cài đặt trình soạn thảo, chúng tôi có thể tiến hành và tạo một dự án Drupal mới bằng cách sử dụng mẫu trình soạn thảo bên trong thư mục /var/www/my_drupal :

sudo composer create-project drupal-composer/drupal-project:8.x-dev /var/www/my_drupal --stability dev --no-interaction

Lệnh trên sẽ tải xuống mẫu, tìm nạp tất cả các gói php cần thiết và chạy một số tập lệnh để chuẩn bị dự án của chúng tôi để cài đặt. Quá trình có thể mất vài phút và nếu thành công, kết thúc đầu ra sẽ như sau:

Create a sites/default/settings.php file with chmod 0666 Create a sites/default/files directory with chmod 0777

Bước tiếp theo là cài đặt Drupal bằng Drush. Trong lệnh bên dưới, chúng tôi sẽ chuyển cơ sở dữ liệu MySQL và thông tin người dùng được tạo ở bước 1:

cd /var/www/my_drupal sudo vendor/bin/drush site-install --db-url=mysql://drupaluser:change-with-strong-password@localhost/drupal

Trình cài đặt sẽ nhắc bạn với thông báo sau, chỉ cần nhấn enter để tiếp tục.

You are about to DROP all tables in your 'drupal' database. Do you want to continue? (yes/no):

Sau khi cài đặt hoàn tất, tập lệnh sẽ in tên người dùng và mật khẩu quản trị. Đầu ra sẽ trông giống như sau:

Starting Drupal installation. This takes a while. Consider using the --notify global option. Installation complete. User name: admin User password: XRkC9Q5WN9

Cuối cùng, chúng ta cần đặt quyền chính xác để máy chủ web có thể truy cập đầy đủ vào các tệp và thư mục của trang web. Cả Nginx và PHP đều đang chạy dưới dạng người dùng www-data www-data và nhóm www-data , vì vậy chúng tôi cần ban hành lệnh sau:

sudo chown -R www-data: /var/www/my_drupal

5. Cấu hình Nginx

Đến bây giờ, bạn đã có Nginx với chứng chỉ SSL được cài đặt trên hệ thống của bạn, nếu không kiểm tra các điều kiện tiên quyết cho hướng dẫn này.

Để tạo một khối máy chủ mới cho dự án Drupal mới của chúng tôi, chúng tôi sẽ sử dụng công thức Nginx từ trang web chính thức của Nginx.

Mở trình soạn thảo văn bản của bạn và tạo tệp sau:

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-av 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; } } Đừng quên thay thế example.com bằng tên miền Drupal của bạn và đặt đường dẫn chính xác đến các tệp chứng chỉ SSL. Tất cả các yêu cầu HTTP sẽ được chuyển hướng đến HTTPS. Các đoạn được sử dụng trong cấu hình này được tạo trong hướng dẫn này.

Kích hoạt khối máy chủ bằng cách tạo một liên kết tượng trưng đến thư mục sites-enabled :

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Trước khi khởi động lại dịch vụ Nginx, hãy kiểm tra để chắc chắn rằng không có lỗi cú pháp:

sudo nginx -t

Nếu không có lỗi, đầu ra sẽ trông như thế này:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Cuối cùng, khởi động lại dịch vụ Nginx bằng cách gõ:

sudo systemctl restart nginx

6. Kiểm tra cài đặt

Mở trình duyệt của bạn, nhập tên miền của bạn và giả sử cài đặt thành công, một màn hình tương tự như sau sẽ xuất hiện:

Bạn có thể đăng nhập với tư cách quản trị viên và bắt đầu tùy chỉnh cài đặt Drupal mới của mình.

7. Cài đặt các mô-đun và chủ đề Drupal

Bây giờ bạn đã cài đặt dự án Drupal của mình, bạn sẽ muốn cài đặt một số mô-đun và chủ đề. Các mô-đun và chủ đề của Drupal được lưu trữ trên kho lưu trữ của nhà soạn nhạc tùy chỉnh, cấu hình của dự án drupal cho chúng ta.

Để cài đặt một mô-đun hoặc một chủ đề, tất cả những gì bạn cần làm là cd vào thư mục dự án và loại trình composer require drupal/module_or_theme_name . Ví dụ: nếu chúng ta muốn cài đặt mô-đun Pathauto, chúng ta cần chạy lệnh sau:

cd /var/www/my_drupal sudo -u www-data composer require drupal/pathauto Bằng cách thêm vào sudo -u www-data chúng tôi đang chạy lệnh dưới dạng www-data người dùng

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

Như bạn có thể thấy từ đầu ra, trình soạn thảo ở trên cũng cài đặt tất cả các phụ thuộc gói cho chúng tôi.

8. Cập nhật lõi Drupal

Trước khi nâng cấp, bạn nên sao lưu các tệp và cơ sở dữ liệu của mình. Bạn có thể sử dụng mô-đun Sao lưu và Di chuyển hoặc sao lưu thủ công cơ sở dữ liệu và tệp của mình.

Tất nhiên, để sao lưu các tệp cài đặt, bạn có thể sử dụng lệnh rsync sau, bạn sẽ cần sử dụng đúng đường dẫn đến thư mục cài đặt:

sudo rsync -a /var/www/my_drupal/ /var/www/my_drupal_$(date +%F)

Để sao lưu cơ sở dữ liệu, chúng ta có thể sử dụng lệnh mysqldump tiêu chuẩn:

mysqldump -u root -p > /var/www/my_drupal_database_$(date +%F).sql

hoặc drush sql-dump :

cd /var/www/my_drupal vendor/bin/drush sql-dump > /var/www/my_drupal_database_$(date +%F).sql

Bây giờ chúng tôi đã tạo bản sao lưu, chúng tôi có thể tiếp tục và cập nhật tất cả các tệp lõi Drupal bằng cách chạy lệnh sau:

sudo -u www-data composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies

Phần kết luận

Xin chúc mừng, bạn đã cài đặt thành công Drupal 8 bằng trình soạn thảo và tìm hiểu cách cài đặt các mô-đun và chủ đề. Bây giờ bạn có thể bắt đầu tùy chỉnh trang web của bạn. Hướng dẫn sử dụng Drupal 8 là nơi khởi đầu tốt để tìm hiểu thêm về cách quản lý cài đặt Drupal của bạn. Bạn cũng nên truy cập dự án mẫu Trình soạn thảo Drupal trên Github.

ubfox drupal mysql mariadb cms nginx nhà soạn nhạc