Cách cài đặt WordPress với LEMP trên Ubuntu 16.04
WordPress là CMS (hệ thống quản lý nội dung) phổ biến nhất trên internet. Nó cho phép bạn dễ dàng cài đặt các blog và trang web linh hoạt trên phần backend MySQL với PHP processor . WordPress đã được sử dụng một cách đáng kinh ngạc và là một lựa chọn tuyệt vời để cài đặt và chạy một trang web một cách nhanh chóng. Sau khi cài đặt , hầu hết tất cả các quản trị có thể được thực hiện thông qua giao diện user web.Trong hướng dẫn này, ta sẽ tập trung vào việc cài đặt một version WordPress trên một LEMP (Linux, Nginx, MySQL và PHP) trên server Ubuntu 16.04.
Yêu cầu
Để hoàn thành hướng dẫn này, bạn cần truy cập vào server Ubuntu 16.04.
Bạn cần thực hiện các việc sau trước khi bắt đầu :
- Tạo user
sudo
trên server của bạn : Ta sẽ hoàn thành các bước trong hướng dẫn này bằng cách sử dụng user không phải root có quyềnsudo
. Bạn có thể tạo user có quyềnsudo
theo hướng dẫn cài đặt server ban đầu Ubuntu 16.04 của ta . - Cài đặt LEMP : WordPress cần một web server , database và PHP để hoạt động chính xác. Cài đặt LEMP (Linux, Nginx, MySQL và PHP) đáp ứng tất cả các yêu cầu này. Làm theo hướng dẫn này để cài đặt và cấu hình phần mềm này.
- Bảo mật trang web bằng SSL : WordPress cung cấp nội dung động và xử lý xác thực và ủy quyền user . TLS / SSL là công nghệ cho phép bạn mã hóa lưu lượng truy cập từ trang web của bạn để kết nối của bạn được an toàn. Cách bạn cài đặt SSL sẽ phụ thuộc vào việc bạn có domain cho trang web của bạn hay không.
- Nếu bạn có domain … cách dễ nhất để bảo mật trang web là với Let's Encrypt, cung cấp các certificate miễn phí, tin cậy . Làm theo hướng dẫn Hãy mã hóa cho Nginx của ta để cài đặt điều này.
- Nếu bạn không có domain … và bạn chỉ đang sử dụng cấu hình này để thử nghiệm hoặc sử dụng cá nhân, bạn có thể sử dụng certificate tự ký thay thế. Điều này cung cấp cùng một loại mã hóa, nhưng không có xác thực domain . Làm theo hướng dẫn SSL tự ký của ta cho Nginx để cài đặt .
Khi bạn hoàn tất các bước cài đặt , hãy đăng nhập vào server của bạn với quyền là user sudo
và tiếp tục bên dưới.
Bước 1: Tạo Database MySQL và User cho WordPress
Bước đầu tiên mà ta sẽ thực hiện là một bước chuẩn bị. WordPress sử dụng MySQL để quản lý và lưu trữ thông tin trang web và user . Ta đã cài đặt MySQL, nhưng ta cần tạo database và user cho WordPress để sử dụng.
Để bắt đầu, hãy đăng nhập vào account root (quản trị) MySQL bằng cách ra lệnh sau:
- mysql -u root -p
Bạn sẽ được yêu cầu nhập password bạn đã đặt cho account root MySQL khi cài đặt .
Đầu tiên, ta có thể tạo một database riêng mà WordPress có thể kiểm soát. Bạn có thể đặt tùy ý , nhưng ta sẽ sử dụng wordpress
trong hướng dẫn này để đơn giản hóa . Bạn có thể tạo database cho WordPress bằng lệnh :
- CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Tiếp theo, ta sẽ tạo một account user MySQL riêng biệt mà ta sẽ sử dụng riêng để hoạt động trên database mới của bạn . Tạo database và account một chức năng là một ý tưởng hay từ quan điểm quản lý và bảo mật. Ta sẽ sử dụng tên wordpressuser
trong hướng dẫn này. Hãy thay đổi điều này nếu bạn muốn.
Ta sẽ tạo account này, đặt password và cấp quyền truy cập vào database ta đã tạo. Ta có thể thực hiện việc này bằng lệnh lệnh sau. Hãy nhớ chọn một password mạnh tại đây cho user database của bạn:
- GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
Đến đây bạn có một database và account user , mỗi account được tạo riêng cho WordPress. Ta cần xóa các quyền để version hiện tại của MySQL biết về những thay đổi gần đây mà ta đã thực hiện:
- FLUSH PRIVILEGES;
Thoát khỏi MySQL bằng lệnh :
- EXIT;
Bước 2: Điều chỉnh cấu hình của Nginx để xử lý chính xác WordPress
Tiếp theo, ta sẽ thực hiện một số điều chỉnh nhỏ đối với các file khối server Nginx của ta .
Mở file khối server mặc định với quyền sudo
để bắt đầu:
- sudo nano /etc/nginx/sites-available/default
Trong khối server
chính, ta cần thêm một vài khối location
.
Bắt đầu bằng cách tạo các khối vị trí khớp chính xác cho các yêu cầu đến /favicon.ico
và /robots.txt
, cả hai đều mà ta không muốn ghi lại các yêu cầu.
Ta sẽ sử dụng vị trí biểu thức chính quy để trùng với bất kỳ yêu cầu nào đối với file tĩnh. Ta sẽ lại tắt tính năng ghi log cho những yêu cầu này và sẽ đánh dấu chúng là có khả năng lưu vào bộ nhớ cache cao vì đây thường là những tài nguyên đắt tiền để cung cấp. Bạn có thể điều chỉnh danh sách file tĩnh này để chứa bất kỳ phần mở rộng file nào khác mà trang web có thể sử dụng:
server { . . . location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; allow all; } location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ { expires max; log_not_found off; } . . . }
Bên trong location /
khối hiện có, ta cần điều chỉnh danh sách try_files
để thay vì trả về lỗi 404 làm tùy chọn mặc định, quyền điều khiển được chuyển đến index.php
với các đối số yêu cầu.
Cái này sẽ trông giống như sau:
server { . . . location / { #try_files $uri $uri/ =404; try_files $uri $uri/ /index.php$is_args$args; } . . . }
Khi bạn hoàn tất, hãy lưu file .
Bây giờ, ta có thể kiểm tra cấu hình của bạn để tìm lỗi cú pháp bằng lệnh :
- sudo nginx -t
Nếu không có lỗi nào được báo cáo, hãy reload Nginx bằng lệnh :
- sudo systemctl reload nginx
Bước 3: Cài đặt các phần mở rộng PHP bổ sung
Khi cài đặt LEMP của ta , ta chỉ yêu cầu một thư viện mở rộng tối thiểu để PHP có thể giao tiếp với MySQL. WordPress và nhiều plugin của nó tận dụng các phần mở rộng PHP bổ sung.
Ta có thể download và cài đặt một số phần mở rộng PHP phổ biến nhất để sử dụng với WordPress bằng lệnh :
- sudo apt-get update
- sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
apt-get
như đã trình bày ở trên.Khi bạn hoàn tất cài đặt các tiện ích mở rộng, hãy khởi động lại quy trình PHP-FPM để PHP processor đang chạy có thể tận dụng các tính năng mới được cài đặt:
- sudo systemctl restart php7.0-fpm
Bước 4: Download WordPress
Bây giờ phần mềm server của ta đã được cấu hình , ta có thể download và cài đặt WordPress. Đặc biệt, vì lý do bảo mật, bạn nên tải version WordPress mới nhất từ trang web của họ.
Thay đổi thành một folder có thể ghi và sau đó download bản phát hành nén bằng lệnh :
- cd /tmp
- curl -O https://wordpress.org/latest.tar.gz
Extract file nén để tạo cấu trúc folder WordPress:
- tar xzvf latest.tar.gz
Ta sẽ chuyển các file này vào folder root của ta trong giây lát. Trước khi làm điều đó, ta có thể sao chép file cấu hình mẫu sang tên file mà WordPress thực sự đọc:
- cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
Ta cũng có thể tạo folder upgrade
để WordPress không gặp vấn đề về quyền khi cố gắng tự thực hiện việc này sau khi cập nhật phần mềm:
- mkdir /tmp/wordpress/wp-content/upgrade
Bây giờ, ta có thể sao chép toàn bộ nội dung của folder vào folder root . Ta đang sử dụng cờ -a
đảm bảo các quyền của ta được duy trì. Ta đang sử dụng một dấu chấm ở cuối folder nguồn của ta để cho biết rằng mọi thứ trong folder nên được sao chép, bao gồm mọi file ẩn:
- sudo cp -a /tmp/wordpress/. /var/www/html
Bước 5: Cấu hình Thư mục WordPress
Trước khi ta cài đặt WordPress dựa trên web, ta cần điều chỉnh một số mục trong folder WordPress của bạn .
Điều chỉnh Quyền sở hữu và Quyền
Một trong những điều lớn ta cần hoàn thành là cài đặt quyền và quyền sở hữu file hợp lý. Ta cần có khả năng ghi vào các file này như một user bình thường và ta cần web server cũng có thể truy cập và điều chỉnh các file và folder nhất định để hoạt động chính xác.
Ta sẽ bắt đầu bằng cách gán quyền sở hữu tất cả các file trong tài liệu root cho tên user của ta . Ta sẽ sử dụng sammy
làm tên user của bạn trong hướng dẫn này, nhưng bạn nên thay đổi điều này để phù hợp với bất kỳ tên user sudo
của bạn. Ta sẽ chỉ định quyền sở hữu group cho group www-data
:
- sudo chown -R sammy:www-data /var/www/html
Tiếp theo, ta sẽ đặt bit setgid
trên từng folder trong root tài liệu. Điều này khiến các file mới được tạo trong các folder này kế thừa group của folder mẹ (mà ta vừa đặt thành www-data
) thay vì group chính của user đang tạo. Điều này chỉ đảm bảo khi nào ta tạo file trong folder trên dòng lệnh, web server sẽ vẫn có quyền sở hữu group đối với nó.
Ta có thể đặt bit setgid
trên mọi folder trong cài đặt WordPress của bạn bằng lệnh :
- sudo find /var/www/html -type d -exec chmod g+s {} \;
Ta sẽ điều chỉnh một số quyền chi tiết khác. Đầu tiên, ta sẽ cấp cho group quyền truy cập ghi vào folder wp-content
để giao diện web có thể áp dụng các thay đổi về chủ đề và plugin:
- sudo chmod g+w /var/www/html/wp-content
Là một phần của quá trình này, ta sẽ cung cấp cho web server quyền truy cập ghi vào tất cả nội dung trong hai folder sau:
- sudo chmod -R g+w /var/www/html/wp-content/themes
- sudo chmod -R g+w /var/www/html/wp-content/plugins
Đây phải là một quyền hợp lý được đặt để bắt đầu. Một số plugin và quy trình có thể yêu cầu chỉnh sửa bổ sung.
Cài đặt file cấu hình WordPress
Bây giờ, ta cần thực hiện một số thay đổi đối với file cấu hình WordPress chính.
Khi ta mở file , trình tự kinh doanh đầu tiên của ta sẽ là điều chỉnh một số khóa bí mật để cung cấp một số bảo mật cho cài đặt của ta . WordPress cung cấp một trình tạo an toàn cho các giá trị này để bạn không phải cố gắng tự mình đưa ra các giá trị tốt. Chúng chỉ được sử dụng trong nội bộ, vì vậy sẽ không ảnh hưởng đến khả năng sử dụng khi có các giá trị phức tạp, an toàn ở đây.
Để lấy các giá trị bảo mật từ trình tạo khóa bí mật của WordPress, hãy nhập:
- curl -s https://api.wordpress.org/secret-key/1.1/salt/
Bạn sẽ nhận lại các giá trị duy nhất trông giống như sau:
Outputdefine('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
Đây là những dòng cấu hình mà ta có thể dán trực tiếp vào file cấu hình của bạn để đặt khóa an toàn. Sao chép kết quả bạn nhận được bây giờ.
Bây giờ, hãy mở file cấu hình WordPress:
- nano /var/www/html/wp-config.php
Tìm phần chứa các giá trị giả cho các cài đặt đó. Nó trông giống như sau :
. . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . .
Xóa các dòng đó và dán các giá trị bạn đã sao chép từ dòng lệnh:
. . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . .
Tiếp theo, ta cần sửa đổi một số cài đặt kết nối database ở đầu file . Bạn cần điều chỉnh tên database , user database và password liên quan mà ta đã cấu hình trong MySQL.
Một thay đổi khác mà ta cần thực hiện là đặt phương thức mà WordPress nên sử dụng để ghi vào hệ thống file . Vì ta đã cấp cho web server quyền ghi ở nơi nó cần, ta có thể đặt phương thức hệ thống file thành “direct” một cách rõ ràng. Không cài đặt cài đặt này với cài đặt hiện tại của ta sẽ dẫn đến việc WordPress nhắc nhập thông tin đăng nhập FTP khi ta thực hiện một số hành động.
Có thể thêm cài đặt này bên dưới cài đặt kết nối database hoặc bất kỳ nơi nào khác trong file :
. . . define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'password'); . . . define('FS_METHOD', 'direct');
Lưu file khi bạn hoàn tất.
Bước 6: Hoàn tất cài đặt thông qua giao diện web
Bây giờ cấu hình server đã hoàn tất, ta có thể hoàn tất cài đặt thông qua giao diện web.
Trong trình duyệt web , chuyển đến domain của server hoặc địa chỉ IP công cộng:
http://server_domain_or_IP
Chọn ngôn ngữ bạn muốn sử dụng:
Tiếp theo, bạn sẽ đến trang cài đặt chính.
Chọn tên cho trang web WordPress của bạn và chọn tên user (không nên chọn thông tin như "admin" vì mục đích bảo mật). Mật khẩu mạnh được tạo tự động. Lưu password này hoặc chọn một password mạnh thay thế.
Nhập địa chỉ email của bạn và chọn xem bạn có muốn ngăn cản các công cụ tìm kiếm lập index trang web của bạn hay không:
Khi bạn nhấp vào phía trước, bạn sẽ được đưa đến một trang nhắc bạn đăng nhập:
Sau khi đăng nhập, bạn sẽ được đưa đến console quản trị WordPress:
Nâng cấp WordPress
Khi các bản nâng cấp của WordPress có sẵn, bạn sẽ không thể cài đặt chúng thông qua giao diện với các quyền hiện tại.
Các quyền mà ta đã chọn ở đây nhằm cung cấp sự cân bằng tốt giữa bảo mật và khả năng sử dụng trong 99% số lần nâng cấp. Tuy nhiên, chúng hơi quá hạn chế để phần mềm tự động áp dụng các bản cập nhật.
Khi có bản cập nhật, hãy đăng nhập lại vào server của bạn với quyền là user sudo
của bạn. Tạm thời cấp cho quy trình web server quyền truy cập vào toàn bộ tài liệu root :
- sudo chown -R www-data /var/www/html
Bây giờ, hãy quay lại bảng quản trị WordPress và áp dụng bản cập nhật.
Khi bạn hoàn tất, hãy khóa quyền lại để bảo mật:
- sudo chown -R sammy /var/www/html
Điều này chỉ cần thiết khi áp dụng các nâng cấp cho chính WordPress.
Kết luận
WordPress nên được cài đặt và sẵn sàng sử dụng! Một số bước tiếp theo phổ biến là chọn cài đặt liên kết cố định cho bài đăng của bạn (có thể tìm thấy trong Settings > Permalinks
) hoặc chọn chủ đề mới (trong Giao Appearance > Themes
). Nếu đây là lần đầu tiên bạn sử dụng WordPress, hãy khám phá giao diện một chút để làm quen với CMS mới của bạn.
Các tin liên quan
Cách thêm không gian swap trên Ubuntu 16.042016-04-25
Cách cài đặt Java với Apt-Get trên Ubuntu 16.04
2016-04-23
Cách cài đặt WordPress với LAMP trên Ubuntu 16.04
2016-04-22
Cách thêm và xóa người dùng trên Ubuntu 16.04
2016-04-21
Cách cài đặt Git trên Ubuntu 16.04
2016-04-21
Có gì mới trong Ubuntu 16.04
2016-04-21
Cách nâng cấp lên Ubuntu 16.04 LTS
2016-04-08
Cách thiết lập múi giờ và đồng bộ hóa NTP trên Ubuntu 14.04 [Quickstart]
2016-03-28
Cách cài đặt LAMP trên Ubuntu 14.04 [Quickstart]
2016-03-28
Cách tạo người dùng Sudo trên Ubuntu [Quickstart]
2016-03-28