Cài đặt WordPress trên Ubuntu

WordPress là một trong những phần mềm xuất bản nội dung (public software) phổ biến được viết trên ngôn ngữ PHP và sử dụng hệ cơ sở dữ liệu MySQL. Trong bài trước, bạn đã biết được cách cài đặt một máy chủ LAMP trên hệ điều hành Ubuntu, trong bài viết này, bạn sẽ biết cách làm sao cài đặt được WordPress hoạt động trên máy chủ LAMP giống như trên các máy chủ thương mại để có thể thử nghiệm hay xây dựng một dự án cá nhân như viết một phần mở rộng, thiết kế, tùy biến giao diện…
Không giống như việc cài đặt và cập nhật WordPress trên các máy chủ thương mại đó là tải về từ trang chủ của nhà phát triển rồi tải lên máy chủ của bạn hoặc cài đặt qua các phần mềm hỗ trợ của nhà cung cấp, WordPress trên Ubuntu được đóng gói và có sẵn trên máy chủ phân phối.

1. Cài đặt WordPress

Để cài đăt bạn chỉ cần một dòng lệnh để hệ thống tự động tự động tải về cài đặt trên máy bạn:

sudo apt-get install wordpress php5-gd curl

Cụ thể như sau:

  • Lệnh cài đặt sudo apt-get install
  • Gói WordPress trên máy chủ: wordpress
  • Gói xử lý đồ họa php5-gd và gói kết nối lấy nội dung từ máy chủ – máy chủ curl

Giống như các gói cài đặt khác, WordPress được cài đặt vào thư mục /usr/share/ vì vậy để nó hoạt động và truy cập được bạn cần ánh xạ toàn bộ nội dung thư mục này vào thư mục nội dung của máy chủ LAMP

sudo ln -s /usr/share/wordpress /var/www/wordpress

Kể từ giờ, bạn có thể dễ dàng thay đổi theo ý bạn toàn bộ nội dung trong /usr/share/wordpress và máy chủ LAMP tự động nhận biết để trả về kết quả như bạn muốn ra trình duyệt.
Wordpress được cài đặt như một gói phần mềm trên hệ thống nên cách cài đặt cũng đơn giản hơn, thay vì chỉnh sửa nội dung của wp-config.php bạn có thể cài đặt chỉ bằng một lệnh sau mà không cần quan tâm đến bất cứ thông tin nào của máy chủ LAMP đang hoạt động:

sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress localhost

Hệ thống sẽ tự động tại một hệ cơ sở dữ liệu mới (database) cho wordpress và tự cấu hình nó để hoạt động. Nếu bạn muốn hệ thống tự động cài đặt trên một máy chủ được cấu hình trước (Virtual Host) thì chỉ cần thêm địa chỉ vào đằng sau

sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress wordpress.mydomain.org

Như vậy, WordPress đã được cài đặt hoàn chỉnh, bạn truy cập vào http://localhost/wordpress để khai báo thông tin của tài khoản quản trị.

Khai báo thông tin tài khoản quản trị cho WordPress
Khai báo thông tin tài khoản quản trị cho WordPress

2. Khắc phục vấn đền khó cập nhật WordPress

WordPress được cài đặt như một gói trên hệ thống từ máy chủ phân phối, tuy nhiên việc nâng cấp của các gói phần mềm trên máy chủ phân phối của Ubuntu phải tuân theo một quy trình hết sức khắt khe để đảm bảo các phần mềm không gây ảnh hưởng đến hệ thống cho nên phiên bản được cài đặt có thể không là phiên bản mới nhất.
Bản thân WordPress có tích hợp tính năng tự nâng cấp, tuy nhiên khi sử dụng tính năng này trên máy chủ LAMP cá nhân, việc cập nhật không diễn ra theo ý muốn bởi theo mặc định không thể kết nối tới máy chủ khác, để khắc phục vấn đề này ta cần cài đặt thêm gói curl như lệnh trên.
Sau khi cài đặt gói curl, khi bạn nâng cấp hay cài đặt thêm phần mở rộng, WordPress sẽ yêu cầu nhập thông tin kết nối FTP để thay đổi nội dung mà không tự động được như trên các máy chủ thương mại. Nguyên nhân là do phân quyền của hệ thống không cho phép thay đổi, để khắc phục, bạn cần gán toàn bộ thư mục /usr/share/wordpress/ được phân quyền cho www-data

13 thoughts on “Cài đặt WordPress trên Ubuntu”

  1. minh cai xampp trong thu muc /opt/lampp . Thong thuong giong windows thi copy vao thu muc hthost

    minh lam theo cach cua ban thay ki wa !! dang le thu muc ” wordpress ” phai o trpng /opt/lampp/hthost/wordpres chu

  2. bạn không nên cài xammp bởi vì nó được đóng gói dưới dạng portable nên khi bao gồm rất nhiều gói ít khi dùng đến và nó thiết lập các thư mục khác với cấu trúc chuẩn của một máy chủ web.

  3. bạn cần gán toàn bộ thư mục /usr/share/wordpress/ được phân quyền cho www-data

    Có phải đây chính là lý do gây ra lỗi:

    Unable to create directory /var/www/abcd.com/wp-content/uploads/2011/10. Is its parent directory writable by the server?

    Xin bạn hướng dẫn rõ thêm và cách làm được không?
    Hiện tại trang của mình dùng Nginx (không có Apache2), xảy ra lỗi như trên mỗi khi upload file hay plugin. Mong bạn giúp.
    Chân thành cám ơn.

  4. Hiện tại mình có một trang WordPress đang hoạt động bình thường trên Hosting.
    Mình được một người bạn tặng cho một VPS (Ubuntu 11.04), mình muốn dùng cho trang hiện hữu của mình, dời trang wordpress trên hosting sang VPS.
    Hiện tại mình cũng đang vọc thử để hiểu và làm quen thôi, vì là dân không chuyên nên gặp khá nhiều khó khăn. Mình theo các chỉ dẫn trên mạng để cài một gói Nginx, PHP, MySQL và cài 1 trang wordpress mới thành công. Nhưng nó lại xảy ra lỗi khó chịu nêu trên mà chưa khắc phục được (ngoài ra còn 1 lỗi rewrite, nên mình không cấu hình permalink đẹp được).
    Mình đọc 2 bài viết của bạn về gói LAMP và bài này, mình thấy hướng dẫn khá rõ rang nên định làm theo (vọc thôi), bạn cho mình hỏi:
    1.Trường hợp mình là không phải muốn cài 1 trang WP mới hoàn toàn mà là dời nhà, vậy đến bước “Hệ thống sẽ tự động tại một hệ cơ sở dữ liệu mới (database) cho wordpress và tự cấu hình nó để hoạt động. “ thì mình chép đè dữ liệu WP cũ vào và import database sql là được, có đúng không?
    2. Liệu là nó có lỗi về permalink và lỗi upload, update plugin,dữ liệu không được như tôi đã từng gặp?
    Mong tin, cám ơn bạn nhiều.

  5. Bạn chuyển WP sang một máy chủ khác phải không, nếu domain không thay đổi thì bạn cần làm mấy việc sau:

    Export dữ liệu MySQL từ host cũ
    Import dữ liệu MysSQL đó vào data bạn đã cài WP trên host mới
    Chuyển thư mục wordpress/wp-content/uploads từ host cũ lên host mới
    Nếu domain thay đổi thì cần sửa domain mới trong Option ngay trên Database

    Nếu bạn làm đúng các bước trên và có cấu trúc file trên host mới giống như cũ thì sẽ không xảy ra các lỗi bạn đề cập

  6. Ở bài viết trước, bạn có nói đến lỗi xảy ra khi bạn gán quyền của www cho www-data, việc này chỉ làm lần đầu khi cài đặt LAMP, về nguyên tắc thì lệnh đó có thể lặp lại và cho kết quả tương tự, theo như lỗi bạn mô tả thì bạn không có quyền chown trên máy chủ nên không thể dùng lệnh trên được.

  7. Xin hỏi lại bạn cho chắc, trường hợp tôi chuyển WP cũ sang VPS mới, sau bước cài LAMP thành công, để chuyển WP cũ sang tôi làm như sau có đúng không?
    1. Lệnh
    sudo apt-get install wordpress php5-gd curl
    2. Lệnh
    sudo ln -s /usr/share/wordpress /var/www/wordpress
    3. Chép đè WP cũ lên WP mới trong /usr/share/wordpress , và sửa lại wp-config.php cho phù hợp.
    4. Import data, chỉnh lại tên miền nếu cần.
    5. Khắc phục khó cập nhật WP:
    chown -R www-data /usr/share/wordpress
    -Như vậy có đúng không bạn?
    -Mình có một suy nghĩ thế này:
    bỏ qua bước 2,
    bước 3 thì thay vì chép đè lên /usr/share/wordpress thì ta chép đè lên thẳng /var/www/wordpress
    bước 5 thì ta chown -R www-data /var/www/wordpress
    Bạn thấy thế có ổn không?Ta đã gán quyền thẳng cho /var/www/wordpress thì không cần phải ánh xạ nữa.
    Mong tin bạn.

  8. Đúng như bạn nói, với trường hợp bạn cài wordpress trực tiếp từ repository của Ubuntu thì không cần bước ánh xạ thư mục wordpress mà chỉ cần set quyền sở hữu www-data để có thể tự cập nhật.
    Lệnh ánh xạ dùng ở trên chỉ sử dụng khi bạn có mã nguồn của wordpress trên một vị trí khác, /home/user/wordpress chẳng hạn, còn nếu cài đặt như một phần mềm thì không cần, tuy nhiên bạn cài đặt wordpress như thế sau này sẽ có đôi chút vấn đề khi sử dụng.
    Tốt nhất, bạn nên để wordpress ra thư mục khác, dễ quản lý, dễ tùy biến.

  9. em làm đến đoạn http://localhost/wordpress thì có một file llswdw3_.phptml.part được tải về

    Làm sao để khai báo thông tin của tài khoản quản trị được ạ?
    Cảm ơn anh nhiều!
    Mong tin.

    • Để khai báo tài khoản quản trị thì khi cài đặt, wordpress sẽ yêu cầu bạn cung cấp thông tin. Chẳng hạn như đường dẫn của bạn thì chỉ cần truy cập vào thì quá trình cài đặt bắt đầu và bạn có thể khai báo thông tin tài khoản quản trị.
      llswdw3_.phptml.part tập tin này có vấn đề, thực tế thì wordpress không tải bất kỳ nội dung nào từ nguồn khác mà không thông báo với người dùng cả. bạn cần xem lại nguồn của wordpress bạn tải về

  10. Narga cho mình hỏi. mình đã cài LAMP server rồi và mình chọn cách thay đổi cấu hình apache để rời thư mục /var/www sang /home/johnsmeeth/www. Mình tải wordpress từ trang chủ về giải nén vào /home/johnsmeeth/www và đã cài xong. nhưng giờ cài plugin không được cứ bị hỏi tài khoản FTP chính là vấn đề bạn đã đề cập “bạn cần gán toàn bộ thư mục /usr/share/wordpress/ được phân quyền cho www-data” nhưng mình không biết câu lệnh gán quyền cho www-data như thế nào? mình đã gõ “sudo chown johnsmeeth:www-data /home/johnsmeeth/www” nhưng không được

    • Lệnh đúng là
      $ sudo chown www-data:www-data /home/johnsmeeth/www
      nếu tiếp tục gắp lỗi 403 Forbidden thì chạy tiếp lệnh
      chmod g+xr-w ~

      • Cám ơn bạn Đinh Quân, mình đã cài được.
        bạn có thể giải thích cho mình câu lệnh “chmod g+xr-w ~” không?

Comments are closed.