Cách cài đặt drupal trên centos 7
Drupal là một trong những nền tảng CMS nguồn mở hàng đầu trên toàn thế giới. Nó linh hoạt, có thể mở rộng 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ẽ giải thích cách cài đặt Drupal 8.6 trên CentOS 7.
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 bằ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
Trước khi bạn bắt đầu cài đặt, đảm bảo bạn đã đáp ứng các điều kiện tiên quyết sau:
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
cài đặt Nginx. Đã cài đặt chứng chỉ SSL cho miền của bạn. 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. Được đăng nhập với tư cách là người dùng có quyền sudo.
Tạo cơ sở dữ liệu MySQL
Bước đầu tiên là tạo một cơ sở dữ liệu và tài khoản người dùng mới và cấp quyền thích hợp cho người dùng.
Nếu MySQL hoặc MariaDB đã được cài đặt trên máy chủ của bạn, bạn có thể bỏ qua bước này, nếu không, bạn có thể cài đặt gói máy chủ MariaDB 5.5 từ kho lưu trữ mặc định của CentOS bằng cách nhập:
sudo yum install mariadb-server
Đối với các cài đặt MariaDB / MySQL mới, nên chạy lệnh mysql_secure_installation
để cải thiện bảo mật của máy chủ cơ sở dữ liệu của bạn.
Đăng nhập vào vỏ MySQL bằng cách 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';
Cài đặt PHP
CentOS 7 xuất xưởng với phiên bản PHP 5.4, đã lỗi thời và không còn được hỗ trợ. Phiên bản PHP được đề xuất cho Drupal là PHP 7.2.
Để cài đặt PHP 7.2 trên CentOS 7 trước tiên, chúng tôi cần kích hoạt kho EPEL và Remi:
sudo yum install epel-release yum-utils
sudo yum install
sudo yum-config-manager --enable remi-php72
Khi các kho lưu trữ được kích hoạt để cài đặt PHP 7.2 và tất cả các phần mở rộng PHP được yêu cầu chạy các lệnh sau:
sudo yum install php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl git
Chúng tôi đã cài đặt PHP FPM vì chúng tôi sẽ sử dụng Nginx làm máy chủ web.
Theo mặc định, PHP FPM sẽ chạy dưới dạng apache
người dùng trên cổng 9000. Chúng tôi sẽ thay đổi người dùng thành nginx
và chuyển từ ổ cắm TCP sang ổ cắm Unix. Để làm như vậy, hãy mở tệp /etc/php-fpm.d/www.conf
và chỉnh sửa các dòng được tô sáng màu vàng:
… user = nginx… group = nginx… listen = /run/php-fpm/www.sock… listen.owner = nginx listen.group = nginx
Đảm bảo thư mục /var/lib/php
có quyền sở hữu chính xác bằng lệnh chown sau:
sudo chown -R root:nginx /var/lib/php
Cuối cùng, kích hoạt và bắt đầu dịch vụ PHP FPM:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
Cài đặt trình soạn thảo
Trình soạn thảo là một trình quản lý phụ thuộc cho PHP. Chúng tôi sẽ 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 với trình soạn thảo.
Lệnh sau sẽ cài đặt trình soạn thảo trên toàn cầu bằng cách 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 chạy lệnh sau sẽ 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.8.4 2019-02-11 10:52:10
Cài đặt Drupal
Bây giờ trình soạn thảo đã được cài đặt, hãy tạo một dự án Drupal mới bằng cách sử dụng mẫu Drupal bên trong thư mục /var/www/my_drupal
:
sudo /usr/local/bin/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 các tập lệnh cần thiết để chuẩn bị dự án để 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 của đầu ra sẽ như thế này:
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 mà chúng tôi đã tạo trong phần đầu tiên:
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. Installation complete. User name: admin User password: frxka2Db5v
Cuối cùng, đặt quyền chính xác để máy chủ web có thể có quyền truy cập đầy đủ vào các tệp và thư mục của trang web:
sudo chown -R nginx: /var/www/my_drupal
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/conf.d/example.com
/etc/nginx/conf.d/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' fastcgi_split_path_info ^(.+?\.php)(# 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.
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
Khởi động lại dịch vụ Nginx để các thay đổi có hiệu lực bằng cách nhập:
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.
Cài đặt 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ủ đề 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 drupal-project cho chúng tôi ra khỏi hộp.
Để 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 nginx /usr/local/bin/composer require drupal/pathauto
Bằng cách thêm sudo -u nginx
chúng tôi đang chạy lệnh với tư cách là người dùng nginx
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.
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 đây, 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 nginx /usr/local/bin/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.