Cài đặt Wordpress trên LAMP trong Debian 9

theanh

Administrator
Nhân viên
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt và cấu hình phiên bản WordPress mới nhất trên một ngăn xếp LAMP trong Debian 9 -Stretch. Wordpress, không còn nghi ngờ gì nữa, là một trong những Hệ thống quản lý nội dung hoặc CMS nguồn mở phổ biến nhất hiện nay được sử dụng để xuất bản trên internet, hỗ trợ hơn 60 triệu trang web trên toàn thế giới, cho dù là các trang blog nhỏ hay các thương hiệu lớn đáng chú ý. Dựa trên công cụ PHP và MySQL, Wordpress thường được liên kết với bộ sưu tập LAMP, được cài đặt trên các máy chủ chuyên dụng hoặc máy chủ riêng ảo hoặc trên các nhà cung cấp dịch vụ lưu trữ web dùng chung. Từ viết tắt LAMP mô tả một tập hợp phần mềm, hay còn gọi là gói phần mềm, thường bao gồm hạt nhân nguồn mở Linux, bất kể bản phân phối nào được chọn, máy chủ HTTP Apache, một trong những máy chủ web nguồn mở phổ biến nhất trên internet do tính ổn định, linh hoạt và hiệu suất của nó, ngôn ngữ lập trình được biên dịch phía máy chủ PHP và hệ thống quản lý cơ sở dữ liệu quan hệ MariaDB (RDBMS), một trong những phần mềm cơ sở dữ liệu phổ biến nhất, được cộng đồng nguồn mở phân nhánh và đồng thời phát triển từ MySQL gốc.

YÊU CẦU:
  • Cài đặt sạch hệ điều hành Debian 9 trên máy chủ riêng ảo hoặc máy ảo hoặc trực tiếp trên máy bare-metal tự chuyên dụng.
  • Truy cập từ xa SSH trong trường hợp VPS hoặc máy chủ từ xa hoặc truy cập bảng điều khiển trực tiếp
  • Ít nhất một Địa chỉ IP tĩnh cho giao diện mạng được định cấu hình trên máy chủ
  • Trong trường hợp trang web phải có sẵn công khai trên internet, bạn sẽ cần một địa chỉ công khai đã đăng ký tên miền với các bản ghi DNS thích hợp được cấu hình. Trong hướng dẫn này, chúng tôi sẽ sử dụng linuxbox.ml làm tên miền ví dụ và địa chỉ IP tĩnh từ không gian riêng, trong NAT, phía sau bộ định tuyến chính. Có thể truy cập tên miền từ internet bằng cách chuyển tiếp cổng Apache 80 và 443 từ phía bộ định tuyến đến mạng LAN máy ảo tự lưu trữ nội bộ.
Phần một – Cài đặt gói phần mềm LAMP
  1. Điều đầu tiên bạn muốn làm trước khi bắt đầu cài đặt tất cả các thành phần LAMP là đăng nhập vào máy chủ Debian 9 và thực hiện quy trình cập nhật cho tất cả các thành phần hệ thống, chẳng hạn như nâng cấp hạt nhân, cập nhật gói hoặc bản vá bảo mật, bằng cách đưa ra các lệnh sau với quyền root.
Mã:
apt-get update
Mã:
apt-get nâng cấp
Mã:
apt-get dist-upgrade
  1. Ở bước tiếp theo, bạn nên thiết lập tên máy của mình bằng cách thay thế biến hostname bằng tên mô tả của riêng bạn bằng cách chạy lệnh bên dưới. Lưu ý rằng bạn có thể cần khởi động lại hệ thống để áp dụng tên máy chủ mới cho phù hợp.
Mã:
hostnamectl set-hostname hostname.yourdomain.com
  1. Bạn cũng nên cài đặt các tiện ích sau, chúng sẽ hữu ích sau này để khắc phục nhiều sự cố khác nhau.
Mã:
apt install net-tools sudo wget curl bash-completion
  1. Sau khi tên máy chủ đã được áp dụng, hãy đăng nhập lại bằng quyền root và cài đặt máy chủ Apache HTTP, theo mặc định, được biên dịch trước thành gói nhị phân và được cung cấp bởi kho lưu trữ Debian 9.
Mã:
apt install apache2
  1. Tiếp theo, hãy cài đặt phiên bản mới nhất của trình thông dịch ngôn ngữ PHP và tất cả các mô-đun cần thiết cho máy chủ web Apache để triển khai Wordpress CMS bằng cách đưa ra lệnh sau.
Mã:
apt install libapache-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc
  1. Thành phần cuối cùng còn thiếu để ngăn xếp LAMP hoàn chỉnh là máy chủ cơ sở dữ liệu MariaDB. Thực hiện lệnh sau để cài đặt máy chủ MariaDB cùng với mô-đun PHP cần thiết để truy cập cơ sở dữ liệu từ máy chủ Apache HTTP.
Mã:
apt install php7.0-mysql mariadb-server mariadb-client
Sau khi cơ sở dữ liệu MariaDB đã được cài đặt, hãy khởi động daemon và bảo mật cơ sở dữ liệu bằng cách chạy mysql_secure_installationscript như minh họa trong đoạn trích bên dưới. Chủ yếu trả lời bằng cho tất cả các câu hỏi mà tập lệnh nhắc bạn. Ngoài ra, hãy đảm bảo rằng bạn chọn mật khẩu mạnh cho tài khoản root. Lưu ý rằng tài khoản root MySQL không giống với tài khoản root Linux. Đầu tiên chỉ được sử dụng để quản lý cơ sở dữ liệu MariaDB và thứ hai là tài khoản siêu người dùng trong mọi hệ thống Linux. Các tài khoản này không bao giờ chồng chéo trong một hệ thống.
Mã:
systemctl start mariadb
Mã:
[B]mysql_secure_installation[/b]
Mã:
[I]LƯU Ý: KHUYẾN NGHỊ CHẠY TẤT CẢ CÁC PHẦN CỦA Script NÀY CHO TẤT CẢ CÁC MÁY CHỦ MariaDB
[/I][I] ĐANG SỬ DỤNG TRONG SẢN XUẤT! VUI LÒNG ĐỌC KỸ TỪNG BƯỚC!
[/I][I]
[/I][I]Để đăng nhập vào MariaDB để bảo mật, chúng ta cần có
[/I][I]mật khẩu hiện tại của người dùng root. Nếu bạn vừa cài đặt MariaDB và
[/I][I]bạn chưa đặt mật khẩu root, mật khẩu sẽ để trống,
[/I][I]do đó, bạn chỉ cần nhấn enter ở đây.
[/I][I]
[/I][I]Nhập mật khẩu hiện tại cho root (nhập nếu không có):
[/I][I]OK, mật khẩu đã sử dụng thành công, tiếp tục...
[/I][I]
[/I][I]Đặt mật khẩu root đảm bảo rằng không ai có thể đăng nhập vào MariaDB
[/I][I]người dùng root mà không có quyền thích hợp.
[/I][I][B]Đặt mật khẩu root? [Y/n] y[/b]
[/I][I]Mật khẩu mới:
[/I][I]Nhập lại mật khẩu mới:
[/I][I]Đã cập nhật mật khẩu thành công!
[/I][I]Đang tải lại bảng đặc quyền..
[/I][I]... Thành công!
[/I][I]Theo mặc định, cài đặt MariaDB có một người dùng ẩn danh, cho phép bất kỳ ai
[/I][I]đăng nhập vào MariaDB mà không cần phải tạo tài khoản người dùng cho
[/I][I]họ. Điều này chỉ nhằm mục đích thử nghiệm và giúp quá trình cài đặt
[/I][I]diễn ra suôn sẻ hơn một chút. Bạn nên xóa những người dùng này trước khi chuyển sang
[/I][I]môi trường sản xuất.
[/I][I][B]Xóa người dùng ẩn danh? [Y/n][/b] [B]y[/b]
[/I][I]... Thành công!
[/I][I]Thông thường, root chỉ được phép kết nối từ 'localhost'. Điều này
[/I][I]đảm bảo rằng không ai có thể đoán được mật khẩu gốc từ mạng.
[/I][I][B]Không cho phép đăng nhập gốc từ xa? [Y/n] y[/b]
[/I][I]... Thành công!
[/I][I]Theo mặc định, MariaDB đi kèm với một cơ sở dữ liệu có tên là 'test' mà bất kỳ ai cũng có thể
[/I][I]truy cập. Cơ sở dữ liệu này cũng chỉ dành cho mục đích thử nghiệm và cần phải xóa
[/I][I]trước khi chuyển sang môi trường sản xuất.
[/I][I][B]Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] y[/b]
[/I][I]- Đang xóa cơ sở dữ liệu thử nghiệm...
[/I][I]... Thành công!
[/I][I]- Xóa đặc quyền trên cơ sở dữ liệu thử nghiệm...
[/I][I]... Thành công!
[/I][I]Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi được thực hiện cho đến nay
[/I][I]sẽ có hiệu lực ngay lập tức.
[/I][I][B]Tải lại các bảng đặc quyền ngay bây giờ? [Y/n] y[/b]
[/I][I]... Thành công!
[/I][I]Đang dọn dẹp...
[/I][I]Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì cài đặt MariaDB
[/I][I]của bạn hiện đã an toàn.
[/I][I]Cảm ơn bạn đã sử dụng MariaDB![/I]

  1. Chúng tôi vẫn chưa hoàn tất việc bảo mật cơ sở dữ liệu MariaDB. Theo mặc định, bạn có thể đăng nhập vào MariaDB từ localhost bằng tài khoản root của cơ sở dữ liệu mà không cần phải nhập mật khẩu. Để ngăn ngừa các sự cố bảo mật có thể xảy ra, hãy đăng nhập vào cơ sở dữ liệu bằng người dùng root và đưa ra các lệnh sau.
Mã:
mysql –u root
Mã:
MariaDB> [B]use mysql;[/b]
Mã:
MariaDB>[B]update user set plugin='' where User='root';[/b]
Mã:
MariaDB> [B]flush privileges;[/b]
Mã:
MariaDB> [B]quit[/b]


Bây giờ, hãy kiểm tra cơ sở dữ liệu bằng cách thử đăng nhập bằng tài khoản root mà không cần mật khẩu. Bạn sẽ bị từ chối quyền truy cập vào cơ sở dữ liệu MariaDB.
  1. Ở bước tiếp theo, chúng tôi sẽ bật và cấu hình TLS và viết lại các mô-đun cho máy chủ web Apache, theo mặc định là bị vô hiệu hóa. Chạy các lệnh bên dưới để kích hoạt cả hai mô-đun.
Mã:
a2enmod rewrite ssl
Mã:
a2ensite default-ssl.conf
  1. Sau đó, mở các tệp cấu hình Apache cho cả hai trang web được kích hoạt và thêm khối sau bên dưới chỉ thị DocumentRoot như minh họa trong ảnh chụp màn hình sau.
Mã:
nano /etc/apache2/sites-enabled/000-default.conf
Mã:
nano /etc/apache2/sites-enabled/default-ssl.conf
Trên cả hai tệp cấu hình được chỉnh sửa từng cái một, hãy thêm khối mã sau:
Mã:
[I] 
[/I][I]Options Indexes FollowSymLinks MultiViews
[/I][I]AllowOverride All
[/I][I]Require all granted
[/I][I] [/I]

  1. Trong tệp cấu hình TLS default-ssl.conf của apache, bạn cũng có thể thêm nội dung bên dưới, nếu chưa có, để tạo ra tính bảo mật của giao thức SSL Apache. Các dòng mã này sẽ khắc phục các lỗ hổng SSL phổ biến.
Mã:
[I]SSLProtocol all -SSLv2 -SSLv3
[/I]# Thêm SSL Cipher vào một dòng dài
[I]SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE- RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE -RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-R SA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES25 6-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES1 28-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH: !EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA[/I]
[I]SSLHonorCipherOrder on[/I]
[I]SSLOptions +StrictRequire[/I]
[I][/I]
[I]Header luôn đặt Strict-Transport-Security "max-age=63072000; includeSubdomains"[/I]
[I]Header luôn đặt X-Frame-Options DENY[/I]
[I]Header luôn đặt X-Content-Type-Options nosniff[/I]


Nếu các dòng minh họa trong đoạn trích trên đã tồn tại trong tệp cấu hình Apache SSL, hãy đảm bảo bạn sửa đổi chúng để trông giống như mô tả ở trên. Để áp dụng các thiết lập này, hãy bật mô-đun headers của Apache và khởi động lại dịch vụ bằng cách thực hiện các lệnh sau:
Mã:
a2enmod headers
Mã:
systemctl restart apache2.service
Đối với một trang web sản xuất, việc bật mô-đun Apache TLS là bắt buộc vì WordPress CMS chủ yếu tạo nội dung động thông qua cổng PHP và cũng xử lý quy trình xác thực cho người dùng nội bộ. Sử dụng công nghệ TLS đảm bảo thông tin được truyền đi được mã hóa ở cả hai đầu và kết nối được bảo mật. Bên thứ ba hoặc người trung gian có thể chặn lưu lượng truy cập nhưng không thể giải mã nội dung vì thông tin không được cung cấp dưới dạng văn bản thuần túy.
  1. Sau khi bạn đã thực hiện tất cả các thay đổi trên, hãy kiểm tra cấu hình Apache để phát hiện các lỗi cú pháp tiềm ẩn và nếu mọi thứ ổn, hãy khởi động lại daemon LAMP để phản ánh tất cả các thay đổi đã thực hiện cho đến nay và kích hoạt các dịch vụ trên toàn hệ thống bằng cách phát hành các lệnh sau.
Mã:
apachectl –t
Mã:
systemctl restart apache2.service mariadb.service
Mã:
systemctl enable apache2.service mariadb.service

  1. Cuối cùng, hãy kiểm tra xem các dịch vụ Apache và MariaDB đã mở cổng ở trạng thái lắng nghe hay chưa bằng cách phát hành lệnh netstat và lọc đầu ra bằng egrep Bây giờ, máy chủ web Apache phải có cổng 80 và 443 (tương ứng với giao thức http và https) thường được hiển thị và MariaDB chỉ nên liên kết trên socket localhost:3306. Sử dụng cờ -n đối với lệnh netstat để ngăn chặn việc hiển thị tên dịch vụ.
Mã:
netstat -tlp| egrep 'http|mysql'

  1. Để đảm bảo máy chủ web của bạn có thể truy cập được từ internet thông qua giao thức HTTP và HTTPS, hãy mở trình duyệt và điều hướng đến tên miền của bạn. Khi duyệt qua giao thức HTTPS, lỗi chứng chỉ sẽ được hiển thị trong trình duyệt. Nguyên nhân là do tệp cấu hình TLS mặc định của Apache được định cấu hình để sử dụng Chứng chỉ tự ký. Bạn nên chấp nhận lỗi TLS và tiếp tục điều hướng đến trang web mặc định như minh họa bên dưới.
http://www.yourdomain.com



https://www.yourdomain.com



Trong trường hợp bạn không thể truy cập trang web mặc định của miền từ internet, trước tiên bạn nên xác minh xem một số quy tắc tường lửa trong hệ thống có đang chặn các yêu cầu hay không hoặc đảm bảo các cổng thích hợp trên bộ định tuyến được chuyển tiếp vào mạng LAN nội bộ của bạn trong trường hợp máy chủ nằm sau mạng NAT. Bạn cũng có thể muốn kiểm tra các bản ghi DNS trong bảng điều khiển đăng ký tên miền của mình và đảm bảo rằng chúng trỏ đến IP WAN của bạn và liệu các bản ghi đã hoàn tất việc truyền bá trên internet hay chưa.


  1. Để kiểm tra xem PHP có hoạt động như mong đợi ở phía máy chủ hay không, hãy tạo một PHP php trong đường dẫn hệ thống /var/www/html/, đây là đường dẫn gốc tài liệu web mặc định của máy chủ web Apache, phát lệnh bên dưới và điều hướng đến URI sau từ trình duyệt để có kết quả: http://www.yourdomain.com/info.php
Mã:
echo '' > /var/www/html/info.php


PHẦN HAI – Cài đặt Wordpress
  1. Bây giờ ngăn xếp LAMP đã được cấu hình đầy đủ, việc cài đặt Wordpress CMS tương đối đơn giản. Trước tiên, hãy đăng nhập vào cơ sở dữ liệu MariaDB và tạo cơ sở dữ liệu cài đặt cho Wordpress và người dùng có mật khẩu phù hợp để cài đặt và quản lý Wordpress CMS bằng cách sử dụng các lệnh bên dưới. Bạn có thể thoải mái thay thế tên cơ sở dữ liệu và thông tin xác thực cơ sở dữ liệu để phù hợp với yêu cầu của riêng bạn.
Mã:
mysql –u root -p
Mã:
[I]CREATE DATABASE wordpress;[/I]
Mã:
[I]GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';[/I]
Mã:
[I]FLUSH PRIVILEGES;[/I]

  1. Tiếp theo, tải xuống tarball Wordpress mới nhất từ trang web chính thức bằng tiện ích wget và giải nén tệp nén bằng tiện ích tar. Sao chép các tệp cài đặt vào đường dẫn gốc tài liệu máy chủ web Apache bằng cách phát hành các lệnh bên dưới. Ngoài ra, hãy đảm bảo bạn xóa trang web index.html mặc định.
Mã:
wget http://wordpress.org/latest.tar.gz
Mã:
tar xfz latest.tar.gz
Mã:
cp -rf wordpress/* /var/www/html/
Mã:
rm /var/www/html/index.html

  1. Sửa đổi quyền của đường dẫn webroot Apache như mô tả bên dưới để cấp cho nhóm www-data của máy chủ web quyền ghi đầy đủ vào thư mục cài đặt. Cấu hình này sẽ cho phép máy chủ web Apache tạo hoặc sửa đổi các tệp và thư mục theo đường dẫn hệ thống cụ thể này. Những mục quan trọng nhất sẽ là thư mục uploads và tệp .htaccess, có thể được sử dụng để kiểm soát và mở rộng chức năng của Apache.
Mã:
chmod –R 775 /var/www/html/
Mã:
chgrp –R www-data /var/www/html/
Mã:
ls –al /var/www/html

  1. Bây giờ, mọi thứ đã sẵn sàng, chúng ta hãy bắt đầu cài đặt Wordpress. Quá trình cài đặt sẽ được thực hiện từ trình duyệt. Mở trình duyệt và truy cập tên miền của bạn thông qua giao thức HTTPS. Trên màn hình cài đặt đầu tiên, hãy nhấn nút Let’s go để bắt đầu cài đặt.

  1. Trong màn hình cài đặt tiếp theo, hãy thêm tên cơ sở dữ liệu, thông tin xác thực truy cập cơ sở dữ liệu và máy chủ cơ sở dữ liệu mà bạn đã tạo trước đó để cài đặt Wordpress và nhấn nút Submit để tiếp tục. Cấu hình của cơ sở dữ liệu sẽ được lưu trong /var/www/html/wp-config.php Bạn có thể sửa đổi tệp theo cách thủ công sau này cho các mục đích đặc biệt của Wordpress.

  1. Trên màn hình tiếp theo, hãy nhấp vào nút Run the install và điền tiêu đề trang web, thông tin xác thực quản trị viên trang web và địa chỉ email của bạn. Một mật khẩu mạnh sẽ được tự động tạo bởi các tập lệnh cài đặt. Bạn có thể chọn lưu mật khẩu này hoặc cung cấp mật khẩu mạnh của riêng bạn. Khi bạn hoàn tất, hãy nhấn nút Cài đặt Wordpress để hoàn tất quá trình cài đặt.



  1. Cuối cùng, sau khi quá trình cài đặt hoàn tất thành công, hãy đăng nhập vào bảng điều khiển Wordpress bằng thông tin đăng nhập đã tạo trong quá trình cài đặt và bắt đầu quản lý trang web của riêng bạn.






Xin chúc mừng! Bạn đã cài đặt thành công phiên bản mới nhất của Wordpress CMS trên gói phần mềm LAMP trong Debian 9, tên mã là Stretch.
 
Back
Bên trên