logo

Thông báo

Icon
Error

Chia sẻ
Tùy chọn
Xem
Xem bài viết cuối
Offline admin  
#1 Đã gửi : 18/03/2015 lúc 05:37:23(UTC)
admin

Danh hiệu: Administration

Chức danh:

Nhóm: Administrators
Gia nhập: 23-07-2013(UTC)
Bài viết: 5,625
Man
Viet Nam
Đến từ: Vietnam

Cảm ơn: 8 lần
Được cảm ơn: 2 lần trong 2 bài viết

EasyEngine – Tự cài NGINX dành riêng cho WordPress

Chúng ta đã quá quen với các script tự động cài webserver tối ưu như Centminmod là một ví dụ điển hình, hoặcmình cũng đã có serie cài đặt LEMP khá chi tiết để bạn có thể tự cài cho mình một webserver NGINX + PHP-FPM để sử dụng vì nó đã được chứng mình là có hiệu suất làm việc tốt hơn Apache rất nhiều.

Nhưngviệc tự động cài đặt hay sử dụng Centminmod cũng đều phải sử dụng qua nhiều dòng lệnh khá rườm rà, và nhấthiện nay các script tự cài đặt webserver chúng ta biết đều không tập trung riêng dành cho WordPress, nên muốn dùng được cho WordPress bạn phải cấu hình lại rất nhiều.

Vậy, nếu bạn cần một script tự động cài webserver dành riêng cho WordPress, được tối ưu để chạy WordPress từ bình thường đến multi site, tự động thiết lập cho các plugin quan trọng như W3 Total CacheWP Super Cache hay sử dụng FastCGI Cache thì có thể xem bài hướng dẫn này để biết cách sử dụng EasyEngine Script - một script tự cài đặt webserver được tối ưu riêng cho WordPress và rất dễ sử dụng.

Hãy nên nhớ rằng cách sử dụng Ubuntu khác với CentOS nên chịu khó lên Google search nếu bạn gặp vấn đề gì đó về Ubuntu.

Video hướng dẫn

EasyEngine là một bash script có chức năng tự động cài đặt webserver toàn diện dành riêng cho WordPress trên hệ điều hành Debian/Ubuntu, đây quả thựcđiều khá bất ngờ vì đại đa số các bash script hiện nay đều hoạt động tốt nhất và chú trọng vào RHEL/CentOS.

Các chức năng chính của EasyEngine

  • Tự động cài đặt NGINX + PHP-FPM kèm theo các modules quan trọng nhất như Zend Opcache, Zend Optimizer, Ioncube,…
  • Tự động cài đặt và cấu hình Postfix để gửi mail không vào spam box.
  • Tự động cài đặt phpMyAdmin và cấu hình bảo mật.
  • Cài đặt Memcached và cấu hình tối ưu.
  • Hỗ trợ các ứng dụng GUI theo gõi cache.
  • Cấu hình riêng dành cho WordPress.
  • Hỗ trợ các plugin cache của WordPress.
  • Tạo website nhanh với 1 dòng lệnh duy nhất.
  • Tích hợp WP CLI.
  • Sử dụng ít tài nguyên nhất.
  • Tự động update script và các ứng dụng bên trong.
  • Có thể cấu hình như một host bình thường, tức là mỗi user sẽ có 1 tài khoản sFTP riêng để quản trị website của họ.

Tuy nhiên, nhược điểm của script này là nếu bạn tạo một website mới dễ dàng bấy nhiêu thì việc chuyển website về đây có thể mất thời gian hơn bình thường

Cấu hình yêu cầu

Để có thể sử dụng tốt script này, mình khuyến khích bạn nên có một máy chủ với cấu hình như sau:

  • Hệ điều hành: 12.04 32-bits hay 64-bits đều được. Bản 14.04 mình test thì lúc được lúc không.
  • RAM: 512MB trở lên

Bạn có thể sử dụng VPS tại DigitalOceanSite5,..đều rất tốt để sử dụng script này.

Xem thêmCác nhà cung cấp VPS tốt nhất.

Cài đặt EasyEngine Script

Để cài EasyEngine Script, chúng ta có 2 bước.

Đầu tiên là chạy lệnh dưới đây để tải script về và nạp script vào máy chủ.

wget -qO ee rt.cx/ee && sudo bash ee

Đợi một xíu để nó chạy và sẽ hỏi, điền kết quả và ấn Enter:

  • Enter your name [root]: Nhập tên của bạn vào, không dấu nhé.
  • Enter your email address [root@eescript]: Nhập email của bạn vào.

Sau khi bước cài đặt ban đầu hoàn tất, hãy gõ thêm lệnh dưới đây để cài các ứng dụng như webserver, postfix,….

ee stack install

Trường hợp bạn làm bước này mà nó có hiện dòng nào lỗi kiểu “Unable to download xx, exit status =  xx” thì hãy gõ lại lệnh ee stack install để chạy lại. Sau khi cài xong, bạn truy cập vào IP của máy chủ sẽ thấy trang welcome của NGINX hiện ra thế này:

Trang Welcome của NGINXTrang Welcome của NGINX

Nhưng chưa hết, để tránh lỗi cú pháp PHP trong các themes/plugin thì bạn nên mở file /etc/php5/fpm/php.ini và tìm:

short_open_tag = Off

thay Off thành On nhé. Sau đó khởi động lại PHP-FPM:

service php5-fpm restart

Trong vài trường hợp nó sẽ bị lỗi xung đột cổng 80, tốt nhất bạn cứ chạy lệnh này 1 lần sau khi cài đặt:

sudo fuser -k 80/tcp

Cài mới một website WordPress

Việc cài mới một website WordPress trên EasyEngine dễ dàng vô cùng, chỉ với một câu lệnh sau đây:

ee site create example.com --wp

easyengine-newsite

Ở đoạn trên, nó sẽ tự thêm domain example.com vào máy chủ, đồng thời tự setup một website WordPress với username và email là thông tin mà bạn đã nhập lúc cài đặt EasyEngine script, tên database cũng tự đặt luôn. Thế nhưng, câu lệnh trên là cài đặt một website WordPress không có bất cứ plugin cache nào, nếu bạn muốn cài đặt kèm theo các plugin cache thì có thể chọn 1 trong 3 câu lệnh dưới đây:

# WordPress + WP Super Cạche
ee site create example.com --wpsc

# WordPress + W3 Total Cache
ee site create example.com --w3tc

# WordPress + FastCGI_Cache
ee site create example.com --wpfc

Cái nào cũng tốt cả, bạn có thể chọn 1 trong 3. Mình thì hay dùng W3 Total Cache.

Hoặc nếu bạn cần tự cài đặt một website WordPress Multi Site thì chỉ cần thêm tham số --wpsubdirhoặc --wpsubdom vào. Ví dụ:

# WordPress Multi Site for Sub Directory + W3 Total Cache

ee site create example.com --wpsubdir --w3tc

Trong đó,

  • –wpsubdir: Website multi site sử dụng tên miền dạng example.com/site1, example.com/site2
  • –wpsubdom: Website multi site sử dụng tên miền dạng site1.example.com, site2.example.com

Easy, right?

Nhưng không chỉ chạy website WordPress trên máy chủ với EasyEngine, bạn còn có thể thêm domain vào và sử dụng với mục đích khác bằng các câu lệnh sau:

# Thêm domain để chạy website HTML
ee site create example.com --html

# Thêm domain để chạy website PHP
ee site create example.com --php

# Thêm domain để chạy website PHP + MySQL
ee site create example.com --mysql

Cấu trúc thư mục & cấu hình EasyEngine

Để có thể sử dụng tốt script này thì bạn nên nắm rõ cấu trúc phân chia thư mục của nó và nơi lưu các file cấu hình của những ứng dụng cần thiết. Dưới đây là danh sách các khu vực mà bạn nên biết.

Nginx

Configuration Files:

  • /etc/nginx/ – Tất cả các file cấu hình liên quan tới NGINX đều lưu ở đây.
  • /etc/nginx/nginx.conf – File cấu hình chính của NGINX.
  • /etc/nginx/sites-available/ – File cấu hình của các domain đã thêm vào máy chủ. Nếu cần sửa gì ở từng domain thì nên sửa trong đây.
  • /etc/nginx/sites-enables/ – Thư mục chứa các symbolic link dẫn đến file cấu hình của domain tương ứng, nó chỉ có trong đây nếu domain đó đang kích hoạt. Không cần sửa/xem.

Log Files:

  • /var/log/nginx/ – Thư mục chứa toàn bộ các file log của NGINX.
  • /var/log/nginx/example.com.access.log – File access log của domain example.com.
  • /var/log/nginx/example.com.error.log – File error log của domain example.com.

PHP

Configuration Files:

  • /etc/php5/ – Tất cả các file cấu hình của PHP nằm trong đây.
  • /etc/php5/fpm/php.ini – File cấu hình chính của PHP.
  • /etc/php5/fpm/php-fpm.conf – Các cài đặt của PHP-FPM.
  • /etc/php5/fpm/conf.d/www.conf – File cấu hình PHP-FPM riêng lẻ, bạn có thể tạo ra nhiều file với tên khác nhau nếu có nhu cầu.

Log Files:

  • /var/log/php5-fpm/ – Tất cả các log liên quan đến PHP-FPM đều nằm ở đây.
  • /var/log/php5-fpm/slow.log – Xem log các script thực thi chậm.
  • /var/log/php5-fpm/php.log – Log liên quan đến PHP.

MySQL – Configuration & logs

Configuration Files:

  • /etc/mysql/my.cnf – Đây là file cấu hình chính dành cho MySQL.
  • /root/.my.cnf – File này chứa user & pass root của MySQL.

Log Files:

  • /var/log/mysql/mysql.log – Các log chung liên quan đến MySQL.
  • /var/log/mysql/mysql-slow.log – Log ghi lại các query thực thi lâu đến MySQL.

Cấu trúc thư mục website

Following is the convention we will be using for WordPress as well as non-WordPress sites.

  • /var/www – Tất cả các thư mục của từng domain sẽ được lưu trong đây.
  • /var/www/example.com – Tất cả dữ liệu liên quan đến domain example.com đều lưu trong đây. Thư mục này cũng chứa file wp-config.php của WordPress.
  • /var/www/example.com/htdocs – Thư mục gốc chứa dữ liệu website mà nó sẽ hiển thị ra ngoài, đây chính là thư mục public_html mà bạn hay gặp.
  • /var/www/example.com/logs – Thư mục chứa log liên quan đến domain example.com

Công cụ quản trị (phpMyAdmin, Cache GUI,…)

Như ở đầu bài mình có đề cập EasyEngine có cài sẵn phpMyAdmin và các công cụ khác, cũng như đã bảo mật nó.

Mặc định thư mục chứa các công cụ này được bảo vệ bằng một lớp mật khẩu nên bạn cần thiết lập lại mật khẩu để có thể truy cập nó (HTTP Authentication). Để thiết lập lại mật khẩu này, bạn chạy lệnh sau:

ee secure --auth

Lúc này nó sẽ hỏi bạn thiết lập lại username/mật khẩu, điền và ấn Enter để kết thúc.

Cuối cùng là truy cập vào trang công cụ quản trị bằng đường dẫn https://123.456.78.9:22222. Trong đó, 123.456.78.9 là IP của máy chủ bạn đang dùng. Bạn không cần quan tâm đến cảnh báo lỗi SSL/HTTPS mà cứ ấn bỏ qua và nhập username/mật khẩu bảo vệ vào.

easyengine-admintools

Tại đây, bạn cứ di chuyển tới thư mục của công cụ cần sử dụng là được, phpMyAdmin nằm ở db/pma.

Cách chuyển website về máy chủ đang dùng EasyEngine

Do EasyEngine chúng ta không nên tự thêm domain thủ công mà sử dụng các lệnh của nó để thêm, cũng như tận dụng tối đa sức mạnh của nó nên quy trình chuyển website về có thể hơi rườm rà một xíu. Trước hết, để chuyển một website WordPress về máy chủ đang dùng EasyEngine Script, bạn hãy làm lần lượt các bước sau:

  • Bước 1: Tạo website WordPres bằng lệnh của EasyEngine.
  • Bước 2: Vào thư mục /var/www/example.com/htdocs và xóa toàn bộ file/folder trong đó.
  • Bước 3: Tải source của website cần chuyển về, kèm theo database.
  • Bước 4: Mở file /var/www/example.com/wp-config.php lên để xem thông tin database của website đã được tạo ra ở bước 1.
  • Bước 5: Truy cập vào MySQL Server theo thông tin database đó bằng lệnhmysql -u [database username] -p. Sau đó xóa database bằng lệnhDROP DATABASE [tên database] và tạo lại một cái tên giống hệt vậy bằng lệnhCREATE DATABASE [tên database].
  • Bước 6: Import database từ file .sql đã backup từ máy chủ cũ vào database trên máy chủ có EasyEngine bằng lệnh mysql -u [database username -p [tên database] < tên-file.sql.
  • Bước 7: Kiểm tra file wp-config.php, phần $table_prefix xem tiền tố của database có trùng với database mà bạn vừa import vào không, vì có thể bạn đã đổi tiền tố database nhằm bảo mật.
  • Bước 8. Chown lại thư mục /var/www/example.com cho user và group www-data với lệnhchown -R www-data:www-data /var/www/example.com.
  • Bước 8: Trỏ domain về.

Mình chỉ cần bạn nhớ như vậy, nếu bạn chưa có kinh nghiệm việc chuyển dữ liệu từ website cũ về máy chủ thì hãy tạm tham khảo qua 2 clip của mình phía dưới. Mình sẽ có video riêng về việc chuyển website dành riêng cho EasyEngine.

Thiết lập sFTP riêng cho từng domain

Cách này vô cùng hữu dụng nếu bạn cần cho phép người khác có thể quản lý dữ liệu của từng domain, giống như WPNode đang làm ở gói host miễn phí của họ vậy đó. Cách làm hơi rườm rà một xíu nhưng làm riết sẽ quen thôi.

Trong hướng dẫn này, mình sẽ lấy ví dụ là tạo một user tên thachpham và nó sở hữu domain thachpham.dev trên máy chủ.

Bước 1. Tạo user

useradd -G www-data -ms /bin/false thachpham

Đừng quên thiết lập mật khẩu cho nó.

passwd thachpham

Bước 2. Tạo thư mục trong /home

Như ở bài quản lý user & sudo mình có nói rằng, mặc định trên Linux nó sẽ có một thư mục được tạo ra mang tên user nằm trong /home. Và ở đây cũng vậy, mình đã tạo user tên thachpham thì bây giờ mình đã có một thư mục là /home/thachpham.

Nhưng ở đây, mình sẽ cần tạo thêm một thư mục tên domain cần quản trị để tránh cấp quyền cho user vào thư mục /var vì khá nhạy cảm.

mkdir -p /home/thachpham/thachpham.dev/htdocs

Bước 3. Phân quyền cho từng thư mục

chown thachpham:www-data /home/thachpham/thachpham.dev/htdocs
chown root:root /home/thachpham/
chown root:root /home/

Giải nghĩa:

  • Thư mục /home/thachpham/thachpham.dev/htdocs sẽ được sở hữu bởi user thachpham và group www-data.
  • Thư mục /home/thachpham/ sẽ được sở hữu bởi user root và group root.
  • Thư mục /home/ sẽ được sở hữu bởi user root và group root.

Bước 4. Thiết lập sFTP

Bạn hãy mở file /etc/ssh/sshd_config và tìm:

Subsystem sftp /usr/lib/openssh/sftp-server

thay thành

Subsystem sftp internal-sftp

Đồng thời chèn mấy đoạn dưới đây vào cuối file đó:

Match group www-data
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp

Cuối cùng là khởi động lại SSH.

service ssh restart

Bước 5. CHMOD lại thư mục chứa web

chmod g+s /var/www/thachpham.dev/htdocs/
chmod 775 /var/www/thachpham.dev/htdocs

Bước 6. Mount thư mục chứa web gốc vào thư mục của user

mount --bind /var/www/thachpham.dev/htdocs /home/thachpham/thachpham.dev/htdocs

Bạn lưu ý rằng, sau khi mount xong thì dù bạn có chép dữ liệu vào /home/thachpham/thachpham.dev/htdocs hay /var/www/thachpham.dev/htdocs đều như nhau cả.

Xong, bây giờ hãy thử sử dụng một phần mềm kết nối vào sFTP như WinSCP hay FileZilla và kết nối vào máy chủ của bạn với user mà bạn vừa tạo ra thì sẽ thấy bạn đã có quyền sửa file trong domain mà bạn sở hữu rồi đó.

Cài đặt phpMyAdmin

Ở phiên bản mới, EasyEngine mặc định không có cài sẵn phpMyAdmin mà bạn sẽ cần tự cài thông qua một lệnh có sẵn của nó. Để cài đặt phpMyAdmin, bạn sử dụng lệnh sau:

ee stack install --phpmyadmin

Sau đó truy cập vào phpMyAdmin với đường dẫn https://IP-của-bạn:22222/db/pma

Chủ đề liên quan:

Ai đang xem chủ đề này?
OceanSpiders 2.0
Di chuyển  
Bạn không thể tạo chủ đề mới trong diễn đàn này.
Bạn không thể trả lời chủ đề trong diễn đàn này.
Bạn không thể xóa bài của bạn trong diễn đàn này.
Bạn không thể sửa bài của bạn trong diễn đàn này.
Bạn không thể tạo bình chọn trong diễn đàn này.
Bạn không thể bỏ phiếu bình chọn trong diễn đàn này.

Powered by YAF.NET 2.2.3 | YAF.NET © 2003-2018, Yet Another Forum.NET
Thời gian xử lý trang này hết 1.269 giây.