Lý do cụ thể thì không ai rõ ràng - tỷ lệ kèo nhà cái
Trang web của tôi được thiết lập trên máy chủ Alibaba Cloud tại Hồng Kông. Để tránh phải loay hoay nhiều, tôi đã mua gói dịch vụ kéo dài tới 5 năm. Tuy nhiên, mọi kế hoạch của con người đôi khi không theo ý muốn. Bắt đầu từ ngày 28 tháng 6, trang web của tôi không thể truy cập được từ đại lục Trung Quốc. Sau khi liên hệ với bộ phận hỗ trợ khách hàng, họ thông báo rằng tên miền của tôi đã bị mạng lưới cấp cao hơn chặn lại. Lý do cụ thể thì không ai rõ ràng. Tôi tự nhủ rằng nội dung trang web mình không có vấn đề gì nghiêm trọng, có lẽ chỉ là một sự cố đáng tiếc, và hy vọng rằng mọi thứ sẽ được khôi phục vào ngày 2 tháng 7. Nhưng đến tận đêm hôm đó, tình trạng vẫn không cải thiện.
Không còn cách nào khác, tôi buộc phải mua một máy chủ mới của Alibaba Cloud đặt tại đại lục và bắt đầu quá trình di chuyển website. Trước đây, tôi đã viết hai bài tổng kết về việc này:
Tuy nhiên, lần này tôi gặp rất nhiều khó khăn ngoài dự đoán, đặc biệt vì sử dụng cơ sở dữ liệu SQLite3 thay vì MySQL như thường lệ. Ban đầu, tôi nghĩ rằng việc chuyển đổi sẽ diễn ra nhanh chóng, nhưng hóa ra lại đầy rẫy những trở ngại. Dưới đây là quy trình xử lý từng bước mà tôi đã thực hiện.
1. Di chuyển toàn bộ thư mục của trang gốc cùng tệp dữ liệu SQLite3 và cấu hình Nginx sang máy chủ mới
1cp /etc/nginx/sites-available/www.skyue.com /home/typecho/www.skyue.com # Sao chép file cấu hình Nginx vào thư mục trang
2zip -r typecho.zip /home/typecho/ # Nén toàn bộ thư mục trang thành file zip
3mv typecho.zip /home/typecho/usr/uploads/ # Di chuyển file zip vào thư mục có thể truy cập
Trên máy chủ mới:
1curl -o typecho.zip # Tải xuống file trang
2apt [napthe](/post/ec6e7fec6925cb56/) install zip # Cài đặt phần mềm zip nếu chưa có trên máy chủ mới
3unzip typecho.zip # Giải nén thư mục trang
Tất cả các thao tác tiếp theo đều được thực vn69 hiện trên máy chủ mới.
2. Cài đặt Nginx và PHP
1apt install nginx
2apt install php
3. Sao chép tệp cấu hình Nginx vào thư mục cấu hình và tạo liên kết mềm
1cp /home/typecho/www.skyue.com /etc/nginx/sites-available/www.skyue.com
2ln -s /etc/nginx/sites-available/www.skyue.com /etc/nginx/sites-enable/www.skyue.com
4. Tải lại tệp cấu hình Nginx
1nginx -s reload
Lúc này, một lỗi xảy ra, hệ thống cảnh báo rằng không tìm thấy tệp chứng chỉ.
5. Cài đặt chứng chỉ
1sudo snap install core; sudo snap refresh core # Nếu chưa có snap, cài đặt bằng lệnh apt install snapd
2sudo snap install --classic certbot
3sudo ln -s /snap/bin/certbot /usr/bin/certbot
4sudo certbot --nginx -d tên-miền-của-bạn
Bước cuối cùng liên tục báo lỗi, nguyên nhân cũng là không tìm thấy tệp chứng chỉ. Tôi đã mất khá nhiều thời gian để khắc phục vấn đề này, cuối cùng phát hiện ra rằng cần xóa các dòng trong tệp cấu hình có chú thích # managed by Certbot
.
Sau khi xóa, tôi chạy lại lệnh sudo certbot --nginx
để hoàn tất cài đặt chứng chỉ. Thực thi lệnh nginx -s reload
để tải lại tệp cấu hình và không còn lỗi nào xuất hiện nữa.
Nhưng khi thử truy cập trang web qua trình duyệt, lại xuất hiện lỗi "502 Bad Gateway".
6. Sửa đổi phiên bản PHP trong tệp cấu hình Nginx
7. Cài đặt phần mở rộng PHP-SQLite3 Cần cài đặt phần mở rộng PHP-SQLite3 để giải quyết vấn đề.
1apt install php-sqlite3
8. Chỉnh sửa quyền truy cập cho thư mục và tệp
1sudo chown -R :www-data /home/typecho/ # Chỉnh sửa quyền truy cập cho thư mục trang
2sudo chmod -R 775 /home/mydata.db # Chỉnh sửa quyền truy cập cho tệp cơ sở dữ liệu
9. Giải quyết lỗi khi xuất bản bằng script Python Tôi quyết định sử dụng MWeb để xuất bản, nhờ đó nhận được thông tin lỗi chi tiết hơn. Hóa ra là do máy chủ thiếu phần mở rộng PHP-XML, khiến giao diện XMLRPC của blog không hoạt động. Vấn đề được giải quyết sau khi cài đặt phần mở rộng PHP-XML.
1apt install php-xml
Cuối cùng, mọi thứ đã hoàn tất. Giờ đây, tôi có thể tiến hành yêu cầu hoàn tiền cho máy chủ tại Hồng Kông.
Một lời góp ý cuối cùng: Mặc dù Alibaba Cloud đắt hơn Tencent Cloud, nhưng vì tên miền trước đó đã đăng ký tại Alibaba Cloud, nên tôi chấp nhận trả thêm một chút để tránh phải loay hoay thêm lần nữa. Hy vọng bài viết này sẽ không bao giờ phải dùng đến trong tương lai!