❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.

Tổng quan

Trong quá trình sử dụng VPS/Server DirectAdmin có thể bạn sẽ không cài khởi chạy được website có mã nguồn yêu cầu các hàm PCRE(Perl Compatible Regular Expression). Dưới đây là lỗi bạn sẽ gặp khi rơi vào trường hợp này.

Fatal error: PCRE is not compiled with UTF-8 support in /home/username/domains/domainname/public_html/.... XXXX.php on line XXX

Lỗi PCRE is not compiled with UTF-8 support Directadmin phát sinh là do dịch vụ bạn đang sử dụng bị thiếu bộ thư viện PCRE.

ℹ️ PCRE (Perl Compatible Regular Expressions) là thư viện xử lý biểu thức chính quy được sử dụng rộng rãi bởi PHP, Apache, Nginx và nhiều ứng dụng khác. Khi PCRE không được biên dịch với hỗ trợ UTF-8, các ứng dụng xử lý ký tự Unicode (tiếng Việt, tiếng Nhật, emoji…) sẽ gặp lỗi.

Cách khắc phục lỗi “Fatal error: PCRE is not compiled with UTF-8 support Directadmin”

Để khắc phục vấn đề này bạn chỉ cần biên dịch thêm PCRE cho các dịch vụ cần trên DirectAdmin là có thể sử dụng.

⚠️ Các lệnh dưới đây cần thực hiện qua SSH với quyền root. Hãy đảm bảo bạn đã kết nối SSH vào VPS/Server trước khi thao tác.

Bước 1: Cài đặt thư viện PCRE vào VPS/Server DirectAdmin của bạn

Nếu VPS/Server của bạn đang chạy với Custombuild 2.0 rồi thì bạn thực hiện các lệnh sau nhưng trước hết các bạn nên kiểm tra một vòng xem mình đang chạy Custombuild bao nhiêu nhé:

cd /usr/local/directadmin/custombuild
./build pcre

Quá trình build PCRE thường tương đối nhanh chỉ khoảng vài phút là tối đa. Sau khi build xong bạn sẽ thấy như hình sau.

PCRE is not compiled with UTF-8 support Directadmin

Bước 2: Biên dịch lại các dịch vụ cần PCRE trên VPS/Server DirectAdmin của bạn

Đương nhiên là tuỳ vào dịch vụ bạn cần sử dụng thư viện PCRE trên VPS/Server DirectAdmin của bạn thì bạn mới cần biên dịch(recompile) lại dịch vụ đó. Nhưng nếu bạn không biết là bạn cần biên dịch lại dịch vụ nào thì bạn có thể chọn biên dịch lại tất cả, việc này có thể sẽ mất một giờ của bạn nếu VPS bạn không mạnh và đường truyền quốc tế đang chập chờn.

Biên dịch lại tất cả với CustomBuild 2.0 để khắc phục lỗi “PCRE is not compiled with UTF-8 support Directadmin”

cd /usr/local/directadmin/custombuild
./build update
./build all d
./build rewrite_confs

💡 Nếu bạn chỉ muốn biên dịch lại một dịch vụ cụ thể (ví dụ PHP), bạn có thể chạy ./build php thay vì ./build all d để tiết kiệm thời gian.

Kiểm tra kết quả

Sau khi biên dịch xong, bạn có thể kiểm tra PCRE đã hỗ trợ UTF-8 chưa bằng lệnh sau:

php -r "echo (preg_match('/\pL/u', 'a') === 1) ? 'PCRE UTF-8: OK' : 'PCRE UTF-8: FAIL';"

Nếu kết quả trả về PCRE UTF-8: OK nghĩa là bạn đã khắc phục thành công. Hãy thử truy cập lại website để xác nhận lỗi đã được giải quyết.

Tổng kết

Lỗi PCRE is not compiled with UTF-8 support trên DirectAdmin xảy ra khi thư viện PCRE chưa được biên dịch với hỗ trợ UTF-8. Cách khắc phục đơn giản là dùng CustomBuild để build lại PCRE và recompile các dịch vụ liên quan (PHP, Apache, Nginx…). Toàn bộ quá trình chỉ mất khoảng vài phút đến một giờ tuỳ cấu hình VPS.

Bài viết tham khảo: How to compile pcre from source

Chia sẻ:
Bài viết đã được kiểm duyệt bởi AZDIGI Team

Về tác giả

Thạch Phạm

Thạch Phạm

Đồng sáng lập và Giám đốc điều hành của AZDIGI. Có hơn 15 năm kinh nghiệm trong phổ biến kiến thức liên quan đến WordPress tại thachpham.com, phát triển website và phát triển hệ thống.

Hơn 10 năm phục vụ 80.000+ khách hàng

Bắt đầu dự án web của bạn với AZDIGI