Chuyên mục
MacOS Web Development

Hướng dẫn cài đặt Valet+ trên macOS

Để thiết lập môi trường phát triển web trên macOS, trước đây mình sử dụng cách tự cài đặt và cấu hình LEMP để tối ưu độ ổn định. Tuy nhiên từ khi phát hiện ra Valet / Valet Plus mình đã chuyển sang sử dụng chương trình này để thiết lập môi trường máy chủ trên máy tính chạy macOS.

Valet Plus là chương trình thiết lập môi trường phát triển web dành riêng cho macOS. Nó được phát triển dựa trên Laravel Valet, vốn được tạo ra nhằm đơn giản hoá việc thiết lập trên máy tính.

Valet Plus sẽ cài đặt toàn bộ các package cần thiết (PHP, MySQL, Nginx, DnsMasq, …) trực tiếp trên máy tính của bạn. Các thao tác điều khiển được thực hiện trực tiếp qua Command line (CLI), tương tự như Easy Engine hay CentminMod.

Dưới đây là hướng dẫn cài đặt Valet Plus cùng cách tạo website WordPress trên nền Valet Plus.

I. Thiết lập Valet Plus

1. Cài đặt Homebrew

Homebrew là phần mềm quản lý các gói chương trình trên OS X – tương tự như apt trên Linux.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Code language: Bash (bash)

Chạy lệnh sau để kiểm tra xem hệ thống có gặp vấn đề gì với homebrew không.

brew doctorCode language: Nginx (nginx)

Nếu bạn cài đặt trên hệ điều hành Sierra mới cóng, chắc chắn sẽ không có lỗi gì và sẽ thấy thông báo dưới đây

==> Installation successful!

Chạy tiếp lệnh sau để chắc chắn bạn đang sử dụng Homebrew phiên bản mới nhất

brew update && brew upgrade

2. Cài đặt PHP

Cài đặt PHP qua Homebrew bằng lệnh sau

brew tap henkrehorst/php
brew install valet-php@7.2
brew link valet-php@7.2 --forceCode language: Nginx (nginx)

3. Cài đặt Composer

Cài đặt tiếp Composer

brew install composerCode language: Nginx (nginx)

4. Cài đặt Valet Plus

Sau khi đã cài đặt Composer, bạn cần tải về mã nguồn Valet Plus

composer global require weprovide/valet-plusCode language: PHP (php)

Bạn cần chỉnh sửa file .bash_profile bằng lệnh sau

echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bash_profileCode language: Bash (bash)

Chạy tiếp lệnh sau để cập nhật Terminal với thông tin .bash_profile mới được cập nhật

source ~/.bash_profileCode language: Bash (bash)

Trước khi cài đặt Valet Plus, chạy lệnh sau để kiểm tra hệ thống đã sẵn sàng chưa

valet fixCode language: Nginx (nginx)

Cài đặt Valet Plus bằng lệnh sau

valet install --with-mariadbCode language: JavaScript (javascript)

Lệnh này sẽ cấu hình và cài đặt Valet+ cùng với DnsMasq. Đồng thời nó cũng sẽ tạo lệnh cho Valet tự động chạy khi khởi động máy tính.

Nếu gặp lỗi Setting password for root user failed., bạn dùng lệnh sau để thiết lập lại password cho MariaDB

sudo mysql_secure_installationCode language: Nginx (nginx)

Sau khi cài đặt xong, chúng ta có thể thử hệ thống có hoạt động đúng không bằng cách ping vào địa chỉ web bất kỳ có đuôi *.test, ví dụ thuanbui.test. Nếu ping thành công, nghĩa là bạn đã cài đặt Valet+ thành công

ping thuanbui.test
PING thuanbui.test (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.062 msCode language: Nginx (nginx)

Để cập nhật Valet+ lên phiên bản mới nhất:

composer global require weprovide/valet-plus
valet installCode language: PHP (php)

Sửa lỗi không truy cập được localhost

Trong trường hợp ping thành công nhưng không truy cập được website trên localhost, nhiều khả năng nginx server gặp lỗi. Bạn có thể kiểm tra bằng lệnh

sudo nginx -tCode language: Nginx (nginx)

Lỗi mình thường gặp là hệ thống báo file elasticsearch.conf không tồn tại khiến nginx bị lỗi. Bạn chỉ cần tạo 1 file là xong, rồi khởi động lại nginx

sudo nano /usr/local/etc/nginx/valet/elasticsearch.conf
brew services restart nginxCode language: Bash (bash)

II. Cài đặt ứng dụng Web

1. Thiết lập thư mục hoạt động

Trước khi cài đặt WordPress hay bất kỳ ứng dụng PHP nào khác, chúng ta cần thiết lập thư mục hoạt động cho Valet+

  • Tạo thư mục mới bằng lệnh mkdir ~/sites
  • Truy cập vào thư mục vừa tạo cd ~/sites
  • Thiết lập thư mục cài đặt cho Valet+ valet park

Từ giờ, tất cả các thự mục dự án bạn tạo trong sites đều sẽ được truy cập với tên miền https://ten-thu-muc.test.

2. Cài đặt WordPress

Để tối ưu việc cài đặt WordPress trên Valet+, chúng ta nên sử dụng WP CLI . Cài đặt package wp-cli-valet-command bằng lệnh sau:

wp package install git@github.com:aaemnnosttv/wp-cli-valet-command.gitCode language: Nginx (nginx)

Cài đặt WordPress bằng lệnh sau

wp valet new [name] wp [--db=] [--dbname=] [--dbuser=] [--dbpass=] [--dbprefix=] [--admin_user=] [--admin_password=] [--admin_email=] [--unsecure] [--portable]Code language: CSS (css)

Bạn có thể tham khảo toàn bộ thông số cài đặt trên Github.

Dưới đây là ví dụ mình tạo trang WordPress thuanbui.test trên máy

wp valet new thuanbui --dbname="thuanbui" --dbuser="root" --dbpass="root" --dbprefix="wp1234_" --admin_user="thuanbui" --admin_password="12345678" --admin_email="hi@thuanbui.me"Code language: Nginx (nginx)

Bạn cần thay thế các tham số name  –dbname, –dbprefix, –admin_user, –admin_password, –admin_email cho phù hợp.

Sau khi cài đặt thành công, bạn sẽ nhận được thông báo

Success: thuanbui ready! https://thuanbui.test

Truy cập website https://thuanbui.test để kiểm tra thành quả

Để xoá website nào đó không còn sử dụng, sử dụng lệnh wp valet destroy

wp valet destroy <name> [--yes]Code language: Nginx (nginx)

Valet+ còn cung cấp nhiều lệnh để bạn thay đổi phiên bản PHP, quản lý database,… Tham khảo chi tiết trên trang Github nhé: https://github.com/weprovide/valet-plus

Chúc các bạn cài đặt thành công.

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng mò vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!

Bởi Thuận Bùi

Runner at Yêu Chạy Bộ. Blogger at Ba Lô & Dép Lào. Web Developer at TB's Blog.
Follow me: Facebook / Instagram

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *