Cài đặt và cấu hình Bedrock trong môi trường ServBay
Tổng quan
Tài liệu này sẽ hướng dẫn bạn cách cài đặt và cấu hình Bedrock trong môi trường phát triển cục bộ ServBay. Bedrock mang lại cấu trúc dự án WordPress hiện đại, quản lý phụ thuộc qua Composer, tối ưu hóa quản lý cấu hình và tuân thủ các thực hành tốt nhất, từ đó nâng cao hiệu quả và bảo mật trong quá trình phát triển, triển khai, bảo trì dự án WordPress. Khi kết hợp với khả năng quản lý môi trường mạnh mẽ và đơn giản của ServBay, bạn có thể nhanh chóng xây dựng môi trường phát triển Bedrock.
Bedrock là gì?
Bedrock là một cấu trúc dự án WordPress do nhóm Roots phát triển, nhằm nâng cao trải nghiệm lập trình viên. Nó khác biệt rõ rệt so với cấu trúc WordPress truyền thống, với các đặc điểm nổi bật như:
- Quản lý phụ thuộc bằng Composer: WordPress core, theme và plugin đều có thể quản lý qua Composer, đơn giản hóa quá trình cập nhật và xử lý xung đột phụ thuộc.
- Quản lý cấu hình cải tiến: Áp dụng nguyên lý Twelve-Factor App, sử dụng file
.env
để quản lý biến môi trường, tách biệt cấu hình và mã nguồn giúp bảo mật và linh hoạt hơn. - Tổ chức dự án hợp lý: WordPress core nằm trong thư mục con riêng (
web/wp
), theme và plugin đặt ởweb/app
, cấu trúc rõ ràng, dễ bảo trì. - Tăng cường bảo mật: Mặc định có các biện pháp bảo mật như ẩn đường dẫn file core, giảm rủi ro tấn công.
Bedrock là lựa chọn lý tưởng để xây dựng các ứng dụng WordPress hiện đại, dễ bảo trì, ổn định và bảo mật.
Vì sao nên chọn ServBay để phát triển với Bedrock?
ServBay là công cụ môi trường phát triển web cục bộ dành riêng cho macOS, tích hợp các web server phổ biến (Caddy/Nginx/Apache), nhiều phiên bản PHP, cơ sở dữ liệu (MySQL/PostgreSQL/MongoDB) cùng các stack phát triển phổ biến như Node.js, Python, Go, Java... Khi sử dụng ServBay cùng Bedrock, bạn có thể:
- Thiết lập môi trường nhanh chóng: ServBay đã cài sẵn PHP, Composer và cơ sở dữ liệu - những yêu cầu của Bedrock - nên không cần cấu hình thủ công phức tạp.
- Chuyển đổi phiên bản linh hoạt: Dễ dàng chuyển đổi giữa các phiên bản PHP để kiểm thử tính tương thích của Bedrock.
- Quản lý cơ sở dữ liệu tích hợp: Quản lý và tạo Database cho Bedrock nhanh bằng phpMyAdmin hoặc Adminer đi kèm ServBay.
- Cấu hình website đơn giản: Dùng giao diện đồ họa của ServBay lên cấu hình website (virtual host) cho dự án Bedrock, định vị chính xác thư mục gốc trang web.
- Quản lý tập trung: Quản lý tất cả gói phần mềm và website cho phát triển cục bộ chỉ trong một ứng dụng.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn đáp ứng các điều kiện sau:
- Đã cài đặt và chạy ServBay trên macOS.
- Có kiến thức cơ bản về sử dụng dòng lệnh.
- Nắm được Composer căn bản (bài viết vẫn cung cấp lệnh cụ thể nên bạn có thể tham khảo trực tiếp).
Các bước cài đặt Bedrock
Phần này sẽ hướng dẫn chi tiết cách cài đặt và cấu hình dự án Bedrock trong môi trường ServBay.
Bước 1: Tạo thư mục dự án
Đầu tiên, di chuyển vào thư mục gốc website mặc định của ServBay /Applications/ServBay/www
, và tạo thư mục dự án mới. Khuyến khích đặt tên mang tính mô tả, ví dụ servbay-bedrock-app
.
cd /Applications/ServBay/www
mkdir servbay-bedrock-app
cd servbay-bedrock-app
2
3
Thư mục này sẽ là thư mục gốc cho dự án Bedrock của bạn.
Bước 2: Tạo dự án Bedrock bằng Composer
ServBay đã tích hợp Composer, nên bạn có thể sử dụng trực tiếp lệnh composer
trong terminal. Trong thư mục dự án vừa tạo (/Applications/ServBay/www/servbay-bedrock-app
), chạy lệnh Composer sau để tạo dự án Bedrock:
composer create-project roots/bedrock .
Lệnh này sẽ tải về phiên bản Bedrock mới nhất cùng toàn bộ phụ thuộc cần thiết vào thư mục hiện tại (.
). Quá trình này có thể mất một lúc tùy vào tốc độ mạng.
Bước 3: Tạo cơ sở dữ liệu và tài khoản người dùng
Bedrock và WordPress cần một cơ sở dữ liệu để lưu trữ nội dung và cài đặt. Ở đây, chúng ta sử dụng phpMyAdmin đi kèm ServBay để tạo database và user tương ứng.
Truy cập phpMyAdmin đi kèm ServBay
Mở trình duyệt, truy cập địa chỉ nội bộ mặc định của ServBay https://servbay.host/. Tại trang chào mừng của ServBay, nhấn vào liên kết "phpMyAdmin" để vào giao diện quản lý cơ sở dữ liệu.
Tạo tài khoản user cho database
Để tăng bảo mật và dễ quản lý, bạn nên tạo một tài khoản người dùng và cơ sở dữ liệu riêng biệt cho từng dự án.
Chuyển đến trang tài khoản người dùng
Tại trang chính của phpMyAdmin, click vào mục "Người dùng" trong menu điều hướng trên cùng.
Thêm user mới
Nhấn "Thêm tài khoản người dùng", sau đó điền các thông tin:
- Tên người dùng: Đặt tên cho tài khoản database dùng cho dự án, ví dụ
bedrock_user
. - Máy chủ: Chọn
localhost
, nghĩa là user chỉ kết nối được từ máy nội bộ. - Mật khẩu: Nhập một mật khẩu an toàn cho user này. Nên lưu lại mật khẩu này. Ví dụ cho môi trường phát triển, bạn có thể đặt là
password123
, nhưng khi triển khai thực tế hãy sử dụng mật khẩu mạnh. - Nhập lại mật khẩu: Nhập lại mật khẩu vừa tạo.
Ở phần "Tạo database với tên giống tài khoản và cấp toàn bộ quyền", chọn mục này để phpMyAdmin tự động tạo database tên
bedrock_user
và cấp toàn bộ quyền cho user này trên cơ sở dữ liệu mới.Đảm bảo đánh dấu vào "Cấp toàn quyền" để user có quyền thao tác đầy đủ với database vừa tạo.
Cuối cùng, nhấn nút "Thực hiện" ở cuối trang để hoàn tất quá trình tạo user và database.
- Tên người dùng: Đặt tên cho tài khoản database dùng cho dự án, ví dụ
Bước 4: Cấu hình Bedrock
Bedrock sử dụng biến môi trường để quản lý cấu hình, thường lưu trữ trong file .env
ở thư mục gốc dự án.
Chỉnh sửa file cấu hình môi trường
Trong thư mục gốc dự án Bedrock (
/Applications/ServBay/www/servbay-bedrock-app
), bạn sẽ thấy file mẫu tên là.env.example
. Hãy copy file này và đổi tên thành.env
:bashcp .env.example .env
1File
.env
là nơi lưu cấu hình thực cho dự án, còn.env.example
chỉ là file mẫu không chứa thông tin nhạy cảm.Cấu hình file
.env
Mở file
.env
vừa tạo bằng trình soạn thảo bạn yêu thích (VS Code, Sublime Text, Nano...). Tìm đến phần cấu hình kết nối cơ sở dữ liệu và sửa lại các giá trị cho phù hợp với thông tin đã tạo ở bước 3:dotenv# Database DB_NAME='bedrock_user' # Tên database, trùng với tên user DB_USER='bedrock_user' # Tên tài khoản database DB_PASSWORD='password123' # Mật khẩu tài khoản database DB_HOST='localhost' # Địa chỉ máy chủ database, với ServBay là localhost DB_PREFIX='wp_' # Tiền tố bảng, giữ mặc định hoặc thay đổi tùy nhu cầu # WordPress Environment WP_ENV='development' # Môi trường hiện tại, ví dụ development, staging, production... # Site URLs WP_HOME='http://servbay-bedrock.local' # Địa chỉ truy cập website đầy đủ WP_SITEURL='${WP_HOME}/wp' # Đường dẫn WordPress core
1
2
3
4
5
6
7
8
9
10
11
12
13Sửa các giá trị này tùy theo tình huống thực tế, đặc biệt là
DB_PASSWORD
nên thay bằng mật khẩu bạn đã đặt trong phpMyAdmin.WP_HOME
vàWP_SITEURL
quy định địa chỉ truy cập website và đường dẫn con chứa core WordPress.servbay-bedrock.local
là một tên miền phát triển thường dùng, bạn có thể thay đổi cho phù hợp.WP_SITEURL
cần trỏ đến thư mục con chứa code WordPress (web/wp
).Bạn cũng có thể tùy chỉnh nhiều thiết lập khác cho Bedrock và WordPress trong file
.env
như định nghĩa hằng số, cấu hình gửi mail...
Bước 5: Cấu hình Web server (website trong ServBay)
Để ServBay nhận diện và vận hành dự án Bedrock, bạn cần thêm một website (virtual host) mới vào ServBay.
Thêm website mới
Mở ứng dụng ServBay, chọn thẻ "Website" trong thanh điều hướng bên trái. Nhấn nút "+" hoặc "Thêm website" để tạo cấu hình website mới. Điền các thông tin sau:
- Tên: Đặt tên nhận diện website, ví dụ
My Bedrock Site
. Chỉ sử dụng trong giao diện ServBay nên đặt sao cho dễ nhớ. - Tên miền: Nhập domain bạn đặt trong
WP_HOME
ở file.env
, ví dụservbay-bedrock.local
. ServBay sẽ tự động ánh xạ domain này về máy của bạn (127.0.0.1
). - Loại website: Chọn
PHP
. - Phiên bản PHP: Chọn phiên bản tương thích với Bedrock (thường là phiên bản PHP mới nhất, ổn định trên ServBay).
- Thư mục gốc: Lưu ý quan trọng: Root của Bedrock KHÔNG phải thư mục dự án mà là thư mục con
web
. Hãy đặt root website thành/Applications/ServBay/www/servbay-bedrock-app/web
.
- Tên: Đặt tên nhận diện website, ví dụ
Lưu cấu hình
Điền xong mọi thông tin, nhấn lưu. ServBay sẽ tự động cập nhật cấu hình web server. Nếu được nhắc khởi động lại dịch vụ, hãy thực hiện theo hướng dẫn.
Bước 6: Hoàn thiện cài đặt WordPress
Lúc này dự án Bedrock đã sẵn sàng, website đã cấu hình trong ServBay. Bạn chỉ cần hoàn tất các bước cài đặt WordPress truyền thống qua giao diện web.
Truy cập trang cài đặt
Mở trình duyệt, truy cập địa chỉ đã đặt trong file
.env
và cấu hình ServBay làWP_SITEURL
, ví dụhttp://servbay-bedrock.local/wp
. Nếu mọi thứ đã đúng, bạn sẽ thấy giao diện cài đặt WordPress quen thuộc.Nhập thông tin cơ sở dữ liệu
Trợ lý cài đặt sẽ yêu cầu nhập thông tin database. Dùng chính thông tin đã tạo ở bước 3:
- Tên cơ sở dữ liệu:
bedrock_user
(trùng tên user) - Tên người dùng:
bedrock_user
- Mật khẩu: Mật khẩu đã đặt (ví dụ
password123
) - Máy chủ cơ sở dữ liệu:
localhost
- Tiền tố bảng:
wp_
(giữ mặc định hoặc thay đổi nếu cần)
Nhấn "Gửi". WordPress sẽ kiểm thử kết nối.
- Tên cơ sở dữ liệu:
Nhập thông tin trang web
Nếu kết nối database thành công, bạn sẽ chuyển đến phần nhập thông tin website. Điền các thông tin:
- Tiêu đề website: Tên trang web.
- Tên tài khoản quản trị: Tạo một tài khoản quản trị.
- Mật khẩu quản trị: Đặt mật khẩu mạnh cho admin.
- Email quản trị: Địa chỉ email quản trị viên.
- Hiển thị công cụ tìm kiếm: Ở môi trường cục bộ nên tick "Chặn máy tìm kiếm index trang web".
Hoàn tất cài đặt
Nhấn "Cài đặt WordPress". WordPress sẽ hoàn thành quá trình cài và tạo cấu trúc bảng cần thiết. Sau khi thành công, bạn thấy trang thông báo hoàn thành và có thể đăng nhập vào bảng điều khiển WordPress.
Bước 7: Cài đặt theme và plugin kiểu Composer
Bedrock khuyến khích quản lý theme và plugin bằng Composer thay vì cài trực tiếp qua WordPress admin.
Tìm tên gói Composer của theme/plugin
Nhiều theme và plugin nổi tiếng đều có gói Composer trên Packagist (packagist.org) hoặc WordPress Packagist (wpackagist.org). Tên gói thường là
vendor/package-name
, ví dụwpackagist-theme/twentytwentyone
hoặcwpackagist-plugin/wordpress-seo
.Cài đặt bằng Composer
Trong thư mục gốc dự án Bedrock (
/Applications/ServBay/www/servbay-bedrock-app
), dùng các lệnh Composer sau:Cài theme:
bashcomposer require wpackagist-theme/your-theme-name
1Cài plugin:
bashcomposer require wpackagist-plugin/your-plugin-name
1Thay
your-theme-name
vàyour-plugin-name
bằng tên thực tế của theme hoặc plugin. Composer sẽ tự động cài theme vàoweb/app/themes
, plugin vàoweb/app/plugins
.Kích hoạt trong WordPress
Đăng nhập quản trị (
http://servbay-bedrock.local/wp/wp-admin/
):- Đối với theme: Vào "Giao diện" → "Giao diện", tìm theme vừa cài và kích hoạt.
- Đối với plugin: Vào "Plugin" → "Plugin đã cài", tìm plugin và kích hoạt.
Bedrock vẫn hỗ trợ cài theme/plugin qua file .zip trong admin WordPress, nhưng phương pháp Composer là hiện đại, tiện lợi và đồng bộ hơn.
Xây dựng website với Bedrock
Bạn đã hoàn tất cài đặt và cấu hình Bedrock trên ServBay. Hãy bắt đầu xây dựng website WordPress của mình và tận hưởng các lợi ích do Bedrock mang lại.
- Tạo trang và bài viết: Đăng nhập admin WordPress, tạo nội dung tại các menu "Trang", "Bài viết" như thông thường.
- Cấu hình menu điều hướng: Thiết lập menu tại "Giao diện" → "Menu".
- Tùy chỉnh Widget: Quản lý nội dung sidebar tại "Giao diện" → "Widget".
- Phát triển theme & plugin: Nếu là developer, có thể code trực tiếp trong
web/app/themes
vàweb/app/plugins
. - Quản lý cấu hình môi trường: Dùng file
.env
để tách biệt cấu hình cho các môi trường phát triển, staging, production...
Câu hỏi thường gặp (FAQ)
- Hỏi: Truy cập
http://servbay-bedrock.local
gặp lỗi 404 phải làm sao?- Đáp: Kiểm tra phần cấu hình domain của website trong ServBay đã đúng với địa chỉ bạn truy cập chưa.
- Đáp: Kiểm tra thư mục root website trong ServBay đã trỏ đúng tới
/Applications/ServBay/www/servbay-bedrock-app/web
. - Đáp: Đảm bảo web server của ServBay đang chạy.
- Đáp: Kiểm tra trường
WP_HOME
trong file.env
đã đúng với domain cấu hình chưa.
- Hỏi: Vào
http://servbay-bedrock.local/wp
bị lỗi kết nối cơ sở dữ liệu thì xử lý thế nào?- Đáp: Kiểm tra kỹ các giá trị
DB_NAME
,DB_USER
,DB_PASSWORD
,DB_HOST
trong file.env
đã đúng với thông tin vừa tạo trên phpMyAdmin. - Đáp: Đảm bảo dịch vụ MySQL/PostgreSQL hoặc database bạn dùng trên ServBay đang chạy.
- Đáp: Đảm bảo tài khoản user đã được cấp toàn quyền với database tương ứng trên phpMyAdmin.
- Đáp: Kiểm tra kỹ các giá trị
- Hỏi: Sau khi cài theme/plugin với Composer mà không thấy trong admin WordPress?
- Đáp: Đảm bảo bạn đã chạy lệnh
composer install
hoặccomposer require
đúng trong thư mục dự án (/Applications/ServBay/www/servbay-bedrock-app
), và lệnh đã hoàn tất không lỗi. - Đáp: Theme cài bằng Composer sẽ nằm ở
web/app/themes
, plugin ởweb/app/plugins
. Kiểm tra các thư mục này xem đã có files chưa. - Đáp: Trong admin WordPress, vào "Giao diện" → "Giao diện" hoặc "Plugin" → "Plugin đã cài" để kích hoạt theme/plugin.
- Đáp: Đảm bảo bạn đã chạy lệnh
- Hỏi: Làm thế nào cập nhật Bedrock, WordPress core, theme hoặc plugin?
- Đáp: Bedrock quản lý qua Composer nên bạn chỉ cần chạy lệnh
composer update
ở thư mục dự án để cập nhật toàn bộ, hoặccomposer update vendor/package-name
để cập nhật riêng lẻ theme/plugin. Sau update, có thể cần truy cập admin để cập nhật cơ sở dữ liệu nếu có yêu cầu.
- Đáp: Bedrock quản lý qua Composer nên bạn chỉ cần chạy lệnh
Tổng kết
Với hướng dẫn trên, bạn đã thiết lập thành công một dự án Bedrock trong môi trường phát triển cục bộ ServBay. Sự kết hợp giữa quản lý môi trường tiện lợi của ServBay và quy trình phát triển hiện đại của Bedrock giúp bạn phát triển, bảo trì các dự án WordPress một cách an toàn, hiệu quả hơn. Bây giờ, bạn đã sẵn sàng xây dựng website WordPress tiếp theo của mình trên nền tảng Bedrock vượt trội!