Thứ sáu, 19/09/2014 | 00:00 GMT+7

Cách cài đặt Drupal trên server Ubuntu 14.04 với Apache

Drupal là một hệ thống quản lý nội dung (CMS) phổ biến được sử dụng để chạy một số blog và trang web lớn nhất trên internet. Do sự ổn định của nền tảng, khả năng thích ứng của nền tảng và cộng đồng tích cực của nó, Drupal vẫn là một lựa chọn phổ biến sau hơn một thập kỷ có mặt trên thị trường.

Trong hướng dẫn này, ta sẽ trình bày cách cài đặt Drupal trên server Ubuntu 14.04. Ta sẽ sử dụng Apache để phục vụ trang web của bạn , vì đây là cấu hình được group Drupal đề xuất.

Yêu cầu

Trước khi bắt đầu với hướng dẫn này, bạn cần một server Ubuntu 14.04 với một số cấu hình cơ bản đã hoàn thành. Thực hiện theo hướng dẫn cài đặt server ban đầu Ubuntu 14.04 của ta để cài đặt user không phải root có quyền sudo.

Bạn cũng cần phải cấu hình Apache, PHP và MySQL trên server của bạn . Bạn có thể tìm hiểu cách cài đặt điều này theo hướng dẫn của ta về cách cài đặt LAMP trên Ubuntu 14.04 .

Khi bạn đã hoàn thành các yêu cầu trên, hãy tiếp tục với hướng dẫn này.

Trước khi lấy file Drupal và cài đặt chúng vào folder web, ta cần chuẩn bị hệ thống của bạn . Mặc dù Apache, PHP và MySQL đã được cài đặt, ta cần thực hiện một số thay đổi bổ sung và thực hiện một số chỉnh sửa cho từng thứ này để cài đặt.

Cấu hình Database và User MySQL cho Drupal

Điều đầu tiên ta sẽ làm là cấu hình database và user MySQL để cài đặt Drupal của ta sử dụng. Điều quan trọng là phải cấu hình một user và database chuyên dụng vì lý do bảo mật.

Để bắt đầu, hãy đăng nhập vào MySQL:

mysql -u root -p 

Bạn sẽ được yêu cầu nhập password của user root MySQL mà bạn đã cấu hình trong quá trình cài đặt phần mềm đó.

Khi bạn đã xác thực thành công, bạn sẽ được đưa vào dấu nhắc MySQL. Đầu tiên, hãy tạo một database để cài đặt Drupal của bạn để sử dụng. Ta sẽ gọi database của bạn là drupal vì đơn giản:

CREATE DATABASE drupal; 

Tiếp theo, bạn cần tạo một user mà phần mềm Drupal có thể sử dụng để kết nối với database . Trong hướng dẫn này, ta sẽ gọi user là drupaluser . Chọn một password mạnh để thay thế password trong khối bên dưới:

CREATE USER drupaluser@localhost IDENTIFIED BY 'password'; 

Bây giờ, ta có một database và một user , nhưng user của ta chưa có quyền thực hiện bất kỳ hành động nào trên database . Ta có thể khắc phục điều đó bằng cách cấp quyền cho user . Drupal cần nhiều quyền khác nhau để hoạt động chính xác. Dưới đây là một lựa chọn tốt sẽ cho phép phần mềm hoạt động mà không làm lộ database của ta một cách không cần thiết:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES ON drupal.* TO drupaluser@localhost; 

User của bạn hiện đã được cấp quyền quản lý database mà ta đã tạo. Để thực hiện những thay đổi này ngay bây giờ, ta cần phải chuyển thông tin quyền vào đĩa:

FLUSH PRIVILEGES; 

Bây giờ, ta có thể thoát phiên MySQL tương tác của bạn :

exit 

Bạn sẽ được đưa trở lại phiên bash của bạn .

Cài đặt các module PHP và tinh chỉnh cấu hình

Tiếp theo, ta sẽ cài đặt một vài module PHP mà ứng dụng Drupal cần. May mắn là chúng nằm trong repository lưu trữ mặc định của Ubuntu.

Cập nhật cache ẩn gói local của bạn và cài đặt chúng bằng lệnh :

sudo apt-get update sudo apt-get install php5-gd php5-curl libssh2-php 

Ta cũng sẽ thực hiện một vài chỉnh sửa nhỏ cho file cấu hình PHP của ta . Đây là những khuyến nghị của các nhà phát triển Drupal. Mở file cấu hình Apache PHP với các quyền sudo trong editor của bạn:

sudo nano /etc/php5/apache2/php.ini 

Tìm kiếm chỉ thị expose_php và chỉ thị allow_url_fopen và đặt cả hai thành "Tắt":

. . . expose_php = Off . . . allow_url_fopen = Off . . . 

Lưu file khi bạn hoàn tất.

Bật chức năng ghi lại và file Htaccess trong Apache

Tiếp theo, ta nên xem Apache. Đầu tiên, ta muốn kích hoạt chức năng viết lại. Điều này sẽ cho phép trang web Drupal của ta sửa đổi URL thành các chuỗi thân thiện với con người.

Các module mod_rewrite Apache thực tế đã được cài đặt theo mặc định. Tuy nhiên, nó không được kích hoạt. Ta có thể bật lựa chọn để bật module đó bằng lệnh :

sudo a2enmod rewrite 

Điều này sẽ kích hoạt module vào lần khởi động lại Apache tiếp theo. Trước khi khởi động lại Apache, ta cần điều chỉnh cấu hình server ảo của bạn để cho phép sử dụng .htaccess . Tệp này sẽ chứa các luật ghi lại thực tế và được bao gồm theo mặc định trong cài đặt Drupal.

Mở file virtualhost mặc định ngay bây giờ:

sudo nano /etc/apache2/sites-enabled/000-default.conf 

Trong khối “VirtualHost”, hãy thêm khối folder trỏ đến folder root của ta . Trong khối này, hãy đặt chỉ thị AllowOverride thành “Tất cả”. Bạn cũng có thể cần thêm chỉ thị ServerName để trỏ đến domain của bạn và thay đổi chỉ thị ServerAdmin để phản ánh địa chỉ email hợp lệ:

<VirtualHost *:80>     . . .     ServerName  example.com     ServerAdmin webmaster@example.com     DocumentRoot /var/www/html      <Directory /var/www/html>         AllowOverride All     </Directory>     . . . </VirtualHost> 

Lưu file khi bạn hoàn tất.

Bây giờ, ta chỉ cần khởi động lại web server để áp dụng các thay đổi của ta đối với Apache và PHP:

sudo service apache2 restart 

Cài đặt các file Drupal

Bây giờ hệ thống của ta đã sẵn sàng, ta có thể cài đặt Drupal vào folder root của ta .

Trên thực tế, ban đầu ta sẽ extract các file vào folder chính của ta và sau đó sao chép chúng vào vị trí thích hợp. Làm như vậy sẽ cung cấp cho ta quyền truy cập sẵn sàng vào các file root trong trường hợp xảy ra sự cố hoặc trong trường hợp các file nào vô tình bị xóa sau này.

Truy cập trang download Drupal và xem version mới nhất trong phần "Bản phát hành được đề xuất". Nhấp chuột phải vào liên kết tar.gz của version bạn quan tâm và chọn "sao chép địa chỉ liên kết" hoặc bất kỳ tùy chọn tương tự nào mà trình duyệt của bạn cung cấp.

Quay lại server của bạn, thay đổi thành folder chính của bạn và sử dụng wget để download file dự án bằng liên kết bạn đã sao chép:

cd ~ wget http://ftp.drupal.org/files/projects/drupal-7.32.tar.gz 

Liên kết của bạn có thể sẽ có số version khác ở cuối. Khi file đã được download , hãy extract folder ứng dụng bằng lệnh :

tar xzvf drupal* 

Bây giờ, hãy chuyển sang cấu trúc folder mới được extract và sử dụng trình rsync để sao chép an toàn tất cả các file vào folder root web của server của bạn. Ta đang sử dụng dấu chấm trong lệnh này để chỉ định folder hiện tại. Điều này là cần thiết để sao chép một số file ẩn mà ta cần:

cd drupal* sudo rsync -avz . /var/www/html 

Đến đây bạn có version root của các file trong một folder trong folder chính của bạn trong trường hợp bạn cần tham khảo chúng. Ta sẽ chuyển vào folder root của web để tùy chỉnh cài đặt của ta :

cd /var/www/html 

Điều chỉnh các file Drupal để bảo mật và dễ cài đặt

Lệnh cài đặt dựa trên web yêu cầu ta thực hiện một số thay đổi đối với folder Drupal của ta để hoàn tất quá trình một cách chính xác. Ta nên giải quyết vấn đề này trước để không phải chuyển đổi qua lại giữa trình duyệt web và dòng lệnh.

Đầu tiên, ta cần tạo một folder mới trong các sites/default cây con sites/default được gọi là files :

mkdir /var/www/html/sites/default/files 

Tiếp theo, ta nên sao chép file cài đặt mặc định sang tên file mà Drupal sử dụng cho cấu hình hoạt động:

cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php 

Tệp cài đặt hoạt động này tạm thời cần một số quyền bổ sung trong quá trình cài đặt. Ta cần cấp quyền ghi cho chủ sở hữu group vào lúc này ( ta sẽ chỉ định chủ sở hữu group cho user web trong giây lát). Ta sẽ loại bỏ điều này sau khi cài đặt thành công:

chmod 664 /var/www/html/sites/default/settings.php 

Tiếp theo, ta cần cấp quyền sở hữu group đối với các file của bạn cho user web, trong Ubuntu là www-data . Ta muốn cung cấp cho toàn bộ cài đặt Drupal các thuộc tính quyền sở hữu sau:

sudo chown -R :www-data /var/www/html/* 

Server của bạn hiện đã được cấu hình thích hợp để chạy lệnh cài đặt dựa trên web.

Hoàn thành quy trình cài đặt dựa trên web

Phần còn lại của quá trình cài đặt sẽ diễn ra trong trình duyệt web . Mở trình duyệt của bạn và chuyển đến domain hoặc địa chỉ IP của server :

http://server_domain_or_IP 

Bạn sẽ thấy trang đầu tiên của quy trình cài đặt Drupal:

Drupal chọn profile

Trừ khi bạn có lý do để không, hãy chọn cài đặt "Chuẩn" và nhấp vào "Lưu và tiếp tục". Nhấp vào một vài nút tiếp tục tiếp theo cho đến khi bạn đến trang cấu hình database . Điền vào các chi tiết bạn đã sử dụng khi cấu hình database và user của bạn .

Đối với hướng dẫn này, ta sử dụng database có tên là drupal , user database có tên là drupaluser và password của password . Bạn nên chọn một password khác trong giai đoạn tạo user . Nhấp vào “Lưu và tiếp tục” khi bạn đã điền vào chi tiết database của bạn :

Cấu hình database  Drupal

Lưu ý : Khi bạn nhấp vào “Lưu và tiếp tục”, có khả năng bạn sẽ được chuyển hướng trở lại cùng trang cấu hình database . Nếu điều này xảy ra, chỉ cần làm mới trang. Database sẽ được cấu hình và profile sẽ được cài đặt.

Bạn sẽ thấy một hộp thông tin ở đầu trang cho bạn biết rằng bây giờ thích hợp để thay đổi các quyền của file cài đặt. Ta sẽ làm điều này ngay lập tức. Hiện tại, bạn cần cài đặt một số thông tin cơ bản về trang web của bạn . Điền vào các trường sử dụng các giá trị thích hợp cho trang web :

Drupal cấu hình trang web

Nhấp vào nút “Lưu và Tiếp tục” lần cuối cùng để hoàn tất cài đặt. Đến đây bạn có thể truy cập trang web của bạn bằng cách truy cập domain của bạn:

Drupal đã hoàn thành cài đặt

Bạn đã hoàn tất cài đặt Drupal thành công.

Tuy nhiên, ta vẫn cần hoàn nguyên các quyền cho file cài đặt của bạn để user lạ không thể thực hiện thay đổi. Trên server của bạn, hạn chế quyền ghi vào file bằng lệnh :

chmod 644 /var/www/html/sites/default/settings.php 

Điều này sẽ khóa các thay đổi tiếp theo đối với file cài đặt.

Xử lý sự cố

Nếu giai đoạn cuối cùng của quá trình cài đặt Drupal không hoàn tất, hãy kiểm tra log lỗi của bạn:

sudo tail /var/log/apache2/error.log 

Nếu bạn gặp lỗi như sau:

[Wed Nov 12 13:40:10.566144 2014] [:error] [pid 7178] [client 108.29.37.206:55238] PHP Fatal error:  Call to undefined function field_attach_load() in /var/www/html/includes/entity.inc on line 316, referer: http://12.34.56.78/install.php?profile=standard&locale=en sh: 1: /usr/sbin/sendmail: not found 

Điều này cho thấy rằng quá trình cài đặt không hoàn tất thành công. Có một số nguyên nhân và cách khắc phục cho lỗi này được Drupal ghi lại:

https://www.drupal.org/node/481758

Một số bản sửa lỗi có thể xảy ra nhất bao gồm chỉnh sửa file /etc/php5/apache2/php.ini để nâng max_execution_time :

sudo nano /etc/php5/apache2/php.ini 

File :

max_execution_time = 300 

Bạn cũng có thể cần thử cài đặt trình duyệt trong một trình duyệt khác ngoài Chrome, chẳng hạn như Safari. Cài đặt cookie của trình duyệt có thể can thiệp vào quá trình cài đặt.

Dù , khi bạn thực hiện bản sửa lỗi của bạn , bạn sẽ phải xóa database Drupal hiện có và file /var/www/html/sites/default/settings.php hiện có, thay thế chúng bằng các bản sao mặc định và bắt đầu cài đặt lại. Nếu bạn có dữ liệu hoặc cài đặt nào đáng lưu giữ, hãy backup .

Để làm điều này, bạn có thể đăng nhập vào MySQL và DROP DATABASE drupal; và sau đó thực hiện lại phần database trước đó để tạo database và cấp các quyền trên đó.

Bạn cũng có thể chạy lại cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php để thay thế file cài đặt. Đảm bảo rằng bạn chạy chmod 664 /var/www/html/sites/default/settings.php để đặt lại các quyền chính xác.

Sau đó, hãy truy cập lại địa chỉ IP của bạn - có thể trong một trình duyệt khác - và thử cài đặt lại lần cuối.

Kết luận

Đến đây bạn đã có một cơ sở vững chắc để xây dựng trang web Drupal của bạn . Drupal cực kỳ linh hoạt, cho phép bạn tùy chỉnh giao diện và chức năng của trang web dựa trên nhu cầu của bạn và nhu cầu của user .

Để có một số ý tưởng về nơi đi từ đây, hãy truy cập trang thẻ Drupal của ta , nơi bạn có thể tìm thấy các hướng dẫn để giúp bạn theo cách của bạn. Bạn cũng sẽ tìm thấy một khu vực câu hỏi và trả lời để nhận được sự trợ giúp từ hoặc đóng góp cho cộng đồng.


Tags:

Các tin liên quan

Cách sử dụng Reprepro cho Kho lưu trữ Gói Bảo mật trên Ubuntu 14.04
2014-09-10
Cách cài đặt Discourse trên Ubuntu 14.04
2014-09-10
Cách sử dụng Foreman để quản lý các node puppet trên Ubuntu 14.04
2014-09-08
Cách sử dụng phân phối giám sát mở với Check_MK trên Ubuntu 14.04
2014-09-08
Cách cài đặt và cấu hình một Daemon và Ứng dụng khách SNMP trên Ubuntu 14.04
2014-08-18
Giới thiệu về cách sử dụng Consul, Hệ thống khám phá dịch vụ, trên Ubuntu 14.04
2014-08-15
Cách cấu hình Lãnh sự trong Môi trường Sản xuất trên Ubuntu 14.04
2014-08-15
Cách bảo mật lãnh sự bằng mã hóa TLS trên Ubuntu 14.04
2014-08-15
Cách tạo một cụm RethinkDB được chia nhỏ trên Ubuntu 14.04
2014-08-08
Cách cấu hình Varnish Cache 4.0 với SSL Termination trên Ubuntu 14.04
2014-08-07