❤️ 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.

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
Có thể bạn cần xem thêm
- Hướng dẫn khắc phục lỗi "Requested icu-uc 50.1 but version of icu-uc is" trên DirectAdmin
- Nâng cấp thư viện PCRE trên DirectAdmin
- Hướng dẫn xử lý lỗi: Request body no files data length is larger trên DirectAdmin
- Khắc phục lỗi hiển thị code tiếng việt trên DirectAdmin
- Hướng dẫn Compiled Nginx từ Source trên CentOS 7
- Sửa lỗi 405 (Method Not Allowed) trên DirectAdmin
Về tác giả
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.