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