Sửa các thông báo lỗi như “Lỗi phân tích cú pháp: lỗi cú pháp…”

Các thông báo lỗi chẳng hạn như những thông báo dưới đây:

“Parse error: syntax error, unexpected ‘finally’ (T_STRING), expecting catch (T_CATCH) in ...”
“Parse error: syntax error, unexpected ..."

được hiển thị do phiên bản PHP được sử dụng trong trang web của bạn không được plugin hỗ trợ. Vui lòng xem trang Yêu cầu để tìm hiểu các phiên bản PHP được hỗ trợ và thay đổi phiên bản PHP được sử dụng trong máy chủ của bạn thành một trong các phiên bản được hỗ trợ.

Khắc phục sự cố proxy

Plugin sử dụng một ứng dụng khách PHP HTTP nổi tiếng, có tên là Guzzle . Thư viện này được sử dụng rộng rãi và tại thời điểm viết bài, nó có khoảng 20k sao trên kho lưu trữ GitHub . Nó là một thư viện đã được thử nghiệm tốt. Plugin thực hiện các yêu cầu proxy bằng cách sử dụng thư viện này. Ngoài ra, plugin được thử nghiệm chuyên sâu với proxy trước mỗi phiên bản mới. Vì vậy, tính năng proxy của plugin hoạt động. Nếu proxy của bạn không hoạt động, vì thư viện máy khách HTTP bên dưới và bản thân plugin đã được kiểm tra tốt, có thể có vấn đề với proxy bạn đang sử dụng hoặc cách bạn xác định nó. Trong trang này, chúng ta sẽ xem cách gỡ lỗi proxy.

Quan trọng

Để sử dụng các lệnh sau, bạn nên kết nối với máy chủ của mình ssh. Ngoài ra, máy chủ của bạn phải curl được cài đặt lệnh trong đó. Nếu bạn không thể kết nối với máy chủ của mình sshvà bạn có kiến ​​thức về PHP, bạn có thể sử dụng các hàm curl của PHP . Các ngôn ngữ lập trình khác mà bạn cảm thấy thoải mái cũng có thể được sử dụng. Tuy nhiên, chúng tôi sẽ sử dụng curllệnh trong hướng dẫn này, vì nó là một trong những cách dễ nhất để thực hiện việc này.

Bạn có thể kiểm tra xem proxy của mình có hoạt động với máy chủ của bạn hay không thông qua dòng lệnh bằng cách sử dụng lệnh sau:

$ curl -I -x <proxy-url> <target-url>
<proxy-url>
Thay thế điều này bằng URL proxy của bạn. Ví dụ, http://1.2.3.4:3001hoặc https://5.6.7.8:76.
<target-url>
Thay thế điều này bằng URL của trang web bạn muốn kết nối thông qua proxy. Chúng tôi sẽ sử dụng trang web của riêng tôi , http://turgutsaricam.com.

Bạn nên thay thế <proxy-url>và <target-url>với các giá trị chính xác. Ví dụ: tôi chạy một proxy trên máy tính của mình tại http://localhost:6666. Khi tôi chạy curllệnh để kết nối http://turgutsaricam.com qua http://localhost:6666, tôi nhận được điều này:

$ curl -I -x http://localhost:6666 http://turgutsaricam.com
HTTP/1.0 200 OK
Via: 1.1 tinyproxy (tinyproxy/1.8.4)
Content-Type: text/html; charset=UTF-8
Link: <http://turgutsaricam.com/wp-json/>; rel="https://api.w.org/"
Server: Apache
Date: Sat, 15 Aug 2020 07:05:58 GMT

Như bạn có thể thấy, yêu cầu thành công với mã trạng thái và tiêu đề của nó chứa tên của máy chủ proxy mà tôi đang sử dụng . Nếu URL proxy sai, tôi sẽ nhận được kết quả như bên dưới:HTTP 200 Viatinyproxy

$ curl -I -x http://localhost:6667 http://turgutsaricam.com
curl: (7) Failed to connect to localhost port 6667: Connection refused

Nếu tôi sử dụng proxy trả phí có giao thức sai ( https) để kết nối với trang web của mình, lệnh sẽ tiếp tục chạy trong một thời gian dài và sau đó xuất ra kết quả như sau:

$ curl -I -x https://x.y.z.t:30001 http://turgutsaricam.com
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Lỗi tôi nhận được là . Khi tôi tìm kiếm lỗi trên Google, tôi tìm thấy câu hỏi StackOverflow này . Câu trả lời của câu hỏi nói rằng proxy nên được sử dụng thông qua , không phải . Khi tôi làm điều đó, tôi nhận được điều này:curl: (35) error:1408F10B:SSLhttphttps

$ curl -I -x http://x.y.z.t:30001 http://turgutsaricam.com
HTTP/1.0 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="proxy"
Proxy-Connection: close
Content-type: text/html; charset=utf-8

Như bạn có thể thấy, proxy hiện có thể được kết nối và phản hồi cho biết proxy cần xác thực ( ). Nếu bạn nhận được đầu ra cho biết , thì có thể đã xảy ra lỗi với cấu hình proxy của bạn. Có thể, bạn nên định cấu hình proxy của mình để cho phép địa chỉ IP của máy chủ. Nếu bạn nên cung cấp người dùng proxy và mật khẩu của mình trong URL proxy, thì việc thay đổi URL proxy từ thành có thể thực hiện công việc. Để biết thêm thông tin về cách cung cấp URL proxy cho plugin, bạn có thể xem cài đặt proxy .Proxy Authentication RequiredAuthentication Requiredhttp://x.y.z.t:30001http://<username>:<password>@x.y.z.t:30001

Quan trọng

Proxy của bạn có thể đang hoạt động bình thường, nhưng trang web đích có thể đã chặn proxy của bạn. Bạn nên phân tích đầu ra của curllệnh để hiểu điều gì sai.

Tóm lại, bạn có thể gỡ lỗi proxy của mình bằng cách sử dụng curllệnh. Nếu bạn có thể kết nối thành công với proxy của mình thông qua lệnh này, điều đó có nghĩa là plugin cũng có thể làm như vậy. Bạn chỉ cần thực hiện một yêu cầu đến trang web đích bằng curllệnh và kiểm tra đầu ra. Đầu ra sẽ cung cấp cho bạn thông tin hữu ích để khắc phục sự cố. Nếu bạn không hiểu điều gì đó tồn tại trong đầu ra, bạn có thể Google nó. Có thể, ai đó đã gặp phải vấn đề tương tự và ai đó đã cung cấp giải pháp cho nó. Nếu bạn không thể tự tìm ra giải pháp, bạn có thể xem tài liệu về proxy của mình hoặc liên hệ với nhà cung cấp proxy hoặc nhóm hỗ trợ máy chủ của bạn.

Khắc phục sự cố bài đăng trùng lặp

Trước tiên, vui lòng xem Hướng dẫn xác định cách bài viết được đánh dấu là trùng lặp . Nếu việc đặt tiêu chí kiểm tra các bài đăng trùng lặp không giải quyết được vấn đề, vui lòng tiếp tục đọc.

Plugin sử dụng URL của bài đăng đích để đảm bảo bài đăng không được lưu trước đó. Hãy đảm bảo rằng không có biến nào trong URL của bài đăng mục tiêu. Nếu không có biến trong URL của bài đăng, thì URL có thể đã bị thay đổi bởi trang web đích.

Chúng ta hãy URL này là một ví dụ: http://domain.com/post.html?rank=10. Đây, rank=10là một biến, vì nó có thể thay đổi trong tương lai. Ví dụ, nó có thể trở thành rank=11. Trong trường hợp này, ngay cả khi URL khác nhau, bài đăng vẫn giống nhau. Plugin không thể hiểu rằng các URL này trỏ đến cùng một bài đăng. Vì vậy, bạn cần xóa phần biến khỏi URL. Ví dụ, bạn cần loại bỏ ?rank=10một phần. Sau đó, URL trở thành http://domain.com/post.html. Trong trường hợp này, ngay cả khi phần biến của URL bị thay đổi bởi trang web đích, plugin biết rằng đó là cùng một bài đăng. Bằng cách này, bạn có thể tránh các bài viết trùng lặp.

Một trường hợp khác có thể là URL của bài đăng mục tiêu bị thay đổi, nhưng nội dung của nó vẫn như trước. Ví dụ: URL có thể trở thành http://domain.com/post-2.html. Trong trường hợp này, bạn có thể xác định tiêu đề của bài đăng hoặc nội dung bài đăng làm tiêu chí nên được sử dụng để kiểm tra xem bài đăng có trùng lặp hay không. Nếu tiêu đề và / hoặc nội dung được giữ nguyên, bài đăng sẽ không được lưu lại (Xem: Kiểm tra các bài đăng trùng lặp qua ). Nếu không, không có cách nào để plugin biết rằng URL này trỏ đến bài đăng đã được lưu qua http://domain.com/post.html. Vì vậy, điều này liên quan trực tiếp đến trang web mục tiêu.

Nếu trường hợp của bạn khác với các trường hợp ở trên, có thể có sự cố với máy chủ của bạn, vì plugin đảm bảo rằng cùng một URL không được thu thập thông tin nhiều lần.


0 Bình luận

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 *

Chat Qua Fanpage