“Hệ điều hành nào được sử dụng nhiều nhất cho lập trình viên ở Việt Nam?” tôi chắc chắn rằng bạn đã từng hỏi hoặc từng nghe ở đâu đó. Chúng ta có những ứng cử viên như Windows, Linux(Ubutu, Debian, CentOS…), MacOS… tuy nhiên tôi phải khẳng định rằng hệ điều hành Windows được dùng nhiều nhất để lập trình ở Việt Nam vì mấy lý do:
- Windows có phí bản quyền nhưng ở Việt Nam thì gần như miễn phí, ai sài Windows cũng biết điều này.
- Lập trình viên ở Việt Nam là rất đa năng, có thể chuyển từ PHP sang .Net hoặc Java khi sang một dự án khác, mà việc chuyển này chỉ dễ dàng khi sử dụng Windows.
- Ngoài hệ điều hành, các IDE, các công cụ hỗ trợ… cũng là một mối quan tâm lớn và vấn đề phí bản quyền ở Windows luôn là dễ dàng.
1. Laragon là gì?
Laravel là framework PHP số một hiện nay với quá nhiều ý tưởng cực hay được phát triển và học hỏi từ nhiều các hệ thống khác. Cài đặt Laravel trên môi trường Windows cũng khá đơn giản và hiện nay có nhiều cách thức để thực hiện:
- Cài đặt theo kiểu truyền thống, cài đặt các webserver như XAMPP, WAMP… cách cài đặt này đơn giản nhưng mất thời gian do phải cài đặt thêm nhiều các công cụ khác hỗ trợ lập trình.
- Các gói cài đặt mới, tích hợp nhiều công cụ trong một, Laragon là một ví dụ.
- Sử dụng công nghệ máy ảo Laravel HomeStead.
Chúng ta sẽ cùng nhau phân tích xem tại sao không nên cài đặt môi trường Laravel theo cách truyền thống? Một môi trường làm việc với Laravel cần một số các công cụ cần thiết như sau:
- Webserver, database, PHP: 3 mục này cách cài đặt nào cũng đáp ứng được.
- Composer, Node.js, npm, yarn: Bộ các công cụ này để quản lý các gói thư viện phụ thuộc trong dự án, đặc biệt khi làm việc với các framework PHP việc tận dụng các thư viện ngoài là cần thiết, bạn đã tận dung được tri thức của hàng triệu lập trình viên PHP trên toàn cầu.
- Công cụ dòng lệnh (command line), cái này rất cần vì làm việc với Laravel chúng ta sử dụng các câu lệnh artisan giúp tiết kiệm rất nhiều thời gian. Nếu bạn đã sử dụng Windows Command Prompt hẳn có lúc rất ức chế do không đánh được tiếng Việt có dấu, copy paste cũng rất khó khăn, hiển thị chỉ trong một kích cỡ cửa sổ. Tôi chuyển qua ConEmu (Console Emulation) thấy cũng rất ok. Ngoài ra chúng ta cũng thường kết nối SSH đến các máy chủ để làm việc thông qua các công cụ dòng lệnh này.
- Git một công cụ cũng không thể thiếu trong quản lý phiên bản mã nguồn.
- …
Bạn thấy đấy, có khá nhiều thứ cần thiết để tạo ra một môi trường phát triển Laravel, với cách cài đặt truyền thống chúng ta sẽ phải cài rất nhiều thứ và đương nhiên cũng mất nhiều thời gian. Laragon là một gói phần mềm tổng hợp các công cụ cần thiết do đó bạn chỉ cần cài đặt một ứng dụng với thời gian cực nhanh là đã có ngay một môi trường phát triển Laravel. Một vấn đề nữa là Laragon hoàn toàn độc lập với hệ điều hành, do đó bạn có thể copy thư mục sau cài đặt đi bất cứ đâu để chạy, thậm chí có thể đồng bộ lên cloud.
Từ nãy đến giờ chúng ta chưa có đề cập đến Homestead, đây cũng là một giải pháp rất hay giúp bạn có thể chuyển việc phát triển qua nhiều các hệ điều hành khác nhau dựa trên công nghệ ảo hóa. Tuy nhiên theo đánh giá cá nhân, tôi thấy sử dụng Laragon là tốt nhất do cài đặt cực nhanh và chiếm ít dung lượng.
2. Cài đặt Laragon
Phiên bản hiện tại là Laragon 3.1, bạn thực hiện tải file cài đặt và kích đúp để cài đặt.
Cập nhật: Phiên bản hiện tại đến 16/10/2019 là Laragon 4.0.15.
Laragon có thêm một số lựa chọn như khởi động cùng hệ thống, tự động thiết lập host ảo (trước đây phải thiết lập thông qua file hosts và httpd-vhosts.conf).
Cài đặt Laragon là rất nhanh, chỉ khoảng 3-5 phút.
3. Thiết lập ứng dụng Laravel đầu tiên
Laragon hỗ trợ tạo dự án Laravel bằng giao diện, bạn click chuột vào Menu chọn đến Quick create và tìm đến mục Laravel.
Một cửa sổ yêu cầu nhập tên dự án, ví dụ ở đây mình nhập dự án là allaravel.com, khi click Ok, màn hình dòng lênh xuất hiện, nó chạy các kịch bản cài đặt dự án bao gồm:
- Tạo database với tên chính là tên dự án.
- Tải khung dự án Laravel với phiên bản mới nhất.
- Tự động tạo host ảo, ví dụ dự án ở đây là allaravel.com thì nó sẽ tự động tạo ra tên miền ảo http://allaravel.com.dev.
Và khi kết thúc nó thông báo tên miền ảo được tạo ra
Mở trình duyệt và chạy thử http://allaravel.com.dev
Như vậy chúng ta đã thiết lập xong dự án Laravel đầu tiên sử dụng Laragon. Chú ý, nếu bạn không muốn sử dụng giao diện để tạo mới ứng dụng Laravel, bạn vẫn có thể sử dụng câu lệnh composer để tạo mới dự án.
composer create-project laravel/laravel laravel-test
4. Các công cụ được tích hợp trong Laragon
4.1 Notepad++
Notepad++ là một trình soạn thảo rất nhẹ và nhanh giúp viết code nhanh chóng, tuy nhiên còn nhiều vấn đề nếu sử dụng Notepad++ để lập trình Laravel như việc highlight code, ví dụ với Laravel Blade, Vue.js template… Khó để so sánh Notepad++ với Sublime Text hoặc chuyên nghiệp hơn như PHP Storm. Laragon đã tích hợp sẵn Notepad++ do đó nếu bạn dùng trình soạn thảo này, bạn có thể truy cập ứng dụng qua menu Tools -> Notepad++.
4.2 cmder
Laragon tích hợp cmder một công cụ dòng lệnh tuyệt vời, nó được phát triển từ ConEmu và Clink do đó ngoài thừa hưởng những tính năng của ConEmu về giao diện thì nó còn cho phép chỉnh sửa các dòng lệnh giống như Bash trên Unix, Linux. Cmder giúp bạn dễ dàng copy (Ctrl+C) và paste (Ctrl+V) dễ dàng hơn nhiều công cụ dòng lệnh mặc định của Windows. Nó cũng tích hợp sẵn với công cụ Git để quản lý phiên bản mã nguồn. Cmder cho phép bạn phân chia ra nhiều tab hoặc nhiều khung trên một cửa sổ với các thông tin được highlight rất dễ nhìn. Để chạy được cmder bạn bấm vào nút Terminal trên Laragon. Việc sử dụng cmder là rất nhiều khi phát triển Laravel, nếu bạn sử dụng Sublime Text, bạn nên thiết lập ứng dụng dòng lệnh mặc định cho Sublime Text như vậy, tại bất kỳ đâu trong dự án, chỉ cần một phím tắt bạn đã có màn hình cmder với thư mục hiện hành là thư mục gốc của dự án. Các bước thiết lập như sau:
Cài đặt package Terminal, bạn vào theo đường dẫn Preferences->Package Control->Install Package và tìm package có tên Teminal, sau khi cài đặt xong trong thư mục Preferences->Package Settings sẽ có thêm một mục Terminal, bạn click vào Settings – Default để thiết lập đường dẫn đến cmder
{
"terminal": "D:\\Laragon\\bin\\cmder\\Cmder.exe",
"parameters": ["/START", "%CWD%"],
"env": {}
}
Ok, giờ bạn có thể sử dụng tổ hợp phím Ctrl + Shift + T để mở cmder khi đang code một class nào đó.
4.3 HeidiSQL
HeidiSQL là một công cụ quản lý cơ sở dữ liệu rất thuận tiện, Laragon đã tích hợp sẵn công cụ này, bạn có thể truy nhập vào công cụ này khi bấm vào nút Database hoặc Menu->MySQL->HeidiSQL.
4.4 Ngrok
Ngrok là gì? Bạn có thể tưởng tượng một tình huống như thế này, bạn vừa phát triển xong ở máy tính và muốn show cho khách hàng xem thử, bình thường bạn cần phải upload code lên một server nào đấy, sau đó cấu hình và chuyển cho khách hàng đường dẫn đến trang demo. Như vậy khá là mất công, hơn nữa bạn cũng cần phải có sẵn một server nào đó trên Internet. Ngrok giúp bạn xử lý vấn đề này một cách đơn giản thông qua dịch vụ VPN (secure tunnel). Laragon cũng tích hợp sẵn ngrok và các công việc còn lại bạn cần làm như sau:
Tạo tài khoản trên ngrok.com, sau khi tạo xong website sẽ chuyển hướng vào trang quản trị tài khoản như hình dưới.
Do laragon đã tích hợp sẵn ngrok nên bạn bỏ qua bước 1, mở cmder lên và copy paste lệnh ngrok authtoken xxx để cài đặt mã xác thực. Sau đó thực hiện lệnh ngrok http 80.
Như vậy là xong, bạn có thể cung cấp cho khách hàng địa chỉ trong ô màu đỏ, khách hàng có thể truy cập từ bất kỳ đâu trên Internet đến localhost trên máy tính của bạn.
4.5 Sử dụng SSL trên Laragon
(Cập nhật 16/10/2019) Do một số bạn có hỏi về sử dụng SSL trên Laragon, mình xin được cập nhật thêm phần thông tin này. Laragon từ phiên bản 3.3 trở lên sẽ được tự động sinh chứng chỉ SSL khi bạn bật tính năng SSL cùng với máy chủ web. Để bật tính năng này vào bạn vào phần References thông qua Menu -> References… hoặc nhấp vào biểu tượng hình bánh răng ở góc trên bên phải của màn hình chính.
Trong cửa sổ tiếp theo, chọn tab Services & Ports, tab này chứa các thiết lập về cổng cũng như lựa chọn các dịch vụ cần chạy cho môi trường của bạn.
Ở đây mình dùng Nginx nên trong dòng Nginx chọn Enabled SSL, như vậy là chúng ta đã bật SSL nên và chỉ việc sử dụng thôi, chú ý với SSL trên Laragon khi thực hiện chạy các URL HTTPS chúng ta cần thêm vào số cổng ở cuối. Ví dụ để kiểm tra xem SSL đã hoạt động tốt chưa bạn thử vào địa chỉ https://localhost:443 nếu trang localhost hoạt động tức là SSL đã được bật thành công.
HTTPS đã trở thành giao thức web bắt buộc do tính bảo mật dữ liệu được truyền nhận giữa trình duyệt và máy chủ. Một số các thư viện, gói phần mềm đã yêu cầu bắt buộc các kết nối phải thực hiện trên HTTPS do vậy khi phát triển cũng như triển khai ứng dụng chúng ta cần có HTTPS để thực hiện các công việc.
Chú ý:
- Nếu máy chủ của bạn là Linux (Ubuntu, CentOS…) bạn có thể tham thảo Cài đặt SSL miễn phí với Let’s Encrypt.
- Nếu bạn muốn redirect toàn bộ traffic HTTP được chuyển sang HTTPS thì có thể thay đổi cấu hình Nginx đi một chút. Tìm đến thư mục nơi chứa các cấu hình cho từng domain của Nginx (Có thể khác nếu bạn chọn đường dẫn cài đặt Laragon khác với ổ C) C:\laragon\etc\nginx\sites-enabled. Các file trong này nếu có tiền tố là auto. là do Laragon tự động sinh ra, nếu muốn Laragon không tự động thay đổi nội dung file cấu hình chỉ việc bỏ tiền tố auto đi. Ví dụ bạn tạo ra một thư mục allaravel trong C:\laragon\www, khi đó Laragon sẽ tự động tạo ra auto.allaravel.test.conf trong C:\laragon\etc\nginx\sites-enabled. Giờ bạn muốn cấu hình sao cho khi thực hiện đường dẫn http://allaravel.test nó tự động chuyển sang https://allaravel.test thì đổi tên file auto.allaravel.test.conf thành allaravel.test.conf sau đó thay đổi nội dung file như sau:
server {
listen 80;
server_name allaravel.test;
rewrite ^(.*) https://allaravel.test$1 permanent;
}
server {
listen 443;
# SSL configuration
ssl on;
ssl_certificate "C:/laragon/etc/ssl/laragon.crt";
ssl_certificate_key "C:/laragon/etc/ssl/laragon.key";
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
root "C:/laragon/www/allaravel/public";
index index.php index.html index.htm;
server_name allaravel.test;
location / {
try_files $uri $uri/ /index.php$is_args$args;
autoindex on;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass php_upstream;
#fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
location ~ /\.ht {
deny all;
}
}
Phần cấu hình SSL bạn có thể lấy từ file C:\laragon\etc\nginx\sites-enabled\00-default.conf.
Khởi động lại Nginx, khi đó nếu bạn vào http://allaravel.test nó sẽ tự động chuyển hướng sang https://allaravel.test.
Chú ý: Nếu sử dụng giao thức HTTPS mà gặp lỗi NET::ERR_CERT_AUTHORITY_INVALID thì do chúng ta chưa add certificate của Laragon vào trusted root.
Chúng ta thực hiện việc thêm chứng chỉ của Laragon vào hệ thống như sau: Nginx -> SSL -> Add Laragon.crt to Trust Store.
5. Lời kết
Laragon là một tập hợp các công cụ rất hữu ích, nó không chỉ giúp cài đặt môi trường phát triển Laravel nhanh chóng mà còn cung cấp rất nhiều các công cụ khác hữu ích. Nếu bạn sử dụng môi trường Windowns, Laragon là một lựa chọn số 1. Một điểm đáng chú ý nữa là Laragon không phụ thuộc vào hệ điều hành, tức là thư mục cài đặt Laragon bạn có thể copy sang một máy tính khác và chạy ngay. Rất cám ơn bạn Lê Quang Hiếu, đã gợi ý một công cụ rất tuyệt vời này.