09/10/2018, 23:53

Có thể nào sai phiên bản php hay do lỗi lập trình.

Lúc trước source web (php) mình làm chạy ở nhà trên HDH windows server 2003,web server IIS6,PHP phiên bản 5.2.2 tất cả đều chạy rất tốt không có việc gì.

Khi mình thuê host Linux đầu tiên mình không biết rõ php phiên bản mấy nhưng chạy cũng rất tốt.

Nhưng từ lúc máy chủ Linux họ nâng cấp bắt đầu sử dụng cPanel 11 và phiên bản PHP 5.2.5 thì website không thể nào chạy được.

Mình nói sơ về lỗi như sau:
- Tất cả file nào nằm ngang hàng với file index.php (trang nhất) thì hiển thị trên trình duyệt được còn file nào không nằm ngang hàng với file index.php thì không thể nào hiển thị trên trình duyệt (server linux họ cấu hình bắt buộc tất cả các file phải CHMOD về 644 mới hiển thị trên trình duyệt được).
- Mình giả sử source web của mình gồm có các thư mục và các file: include,lienhe,...và các file index.php, index1.php, index2.php chẳng hạn
+ Thư mục "include" : thư mục này chứa file config.php để cấu hình thông số về host hay database và các file quan trọng khác,nó có đặc điểm không hiển thị trên trình duyệt. Khi file index.php chẳng hạn sử dụng hàm include đến nó thì hiển thị thông tin về các đoạn text hay hình ảnh từ database rất tốt (thư mục này thì CHMOD về 775,các file trong thư mục này CHMOD về 644).
+Thư mục "lienhe" : chứa các file hiển thị trên trên trình duyệt,nhưng nó không thể nào hiển thị lên trình duyệt được,mình sử dụng hàm if, elseif , else nếu không chạy thì trả về trang index.php. (thư mục này cũng CHMOD về 775,các file trong thư mục này CHMOD về 644).Và còn nhiều thư mục như thế này nửa nhưng các file trong đó không thể nào hiển thị trên trình duyệt.
+ Các index1.php, index2.php chẳng hạn nằm ngang hàng với file index.php thì hiển thị trên trình duyệt bình thường,truy xuất thông tin trên database đều được cả.

Có bạn nào biết chỉ rõ dùm mình lỗi ở đây là chỗ nào chỉ giúp mình,cảm ơn các bạn nhiều.
extjs viết 02:08 ngày 10/10/2018
Có thể trong quá trình upgrade server có vấn đề gì chăng, hoặc một số thiết lập Globals đã thay đổi vì cài lại php, bạn xem lại coi
vanhung123 viết 01:55 ngày 10/10/2018
Mình backup lại database và lấy source web ở nhà chạy trên IIS6 đang chạy tốt,upload lên server nó vẫn vậy.Còn bạn EXTJS nói "thiết lập Globals đã thay đổi" là do bên mình hay bên cho thuê host
extjs viết 02:02 ngày 10/10/2018
Mình đoán là khi lập trình bạn dùng các biến theo kiểu Register_global được on, có khi upgrade server nó set lại off nên không lấy biến được đó
Bạn xem lại code coi, mà bạn nói nó ko chạy được là khi gọi trang nó hiện ra cái gì hay là HTTP:403 ??
tom2 viết 01:55 ngày 10/10/2018
Quote Được gửi bởi vanhung123 View Post
Lúc trước source web (php) mình làm chạy ở nhà trên HDH windows server 2003,web server IIS6,PHP phiên bản 5.2.2 tất cả đều chạy rất tốt không có việc gì.

Khi mình thuê host Linux đầu tiên mình không biết rõ php phiên bản mấy nhưng chạy cũng rất tốt.

Nhưng từ lúc máy chủ Linux họ nâng cấp bắt đầu sử dụng cPanel 11 và phiên bản PHP 5.2.5 thì website không thể nào chạy được.

Mình nói sơ về lỗi như sau:
- Tất cả file nào nằm ngang hàng với file index.php (trang nhất) thì hiển thị trên trình duyệt được còn file nào không nằm ngang hàng với file index.php thì không thể nào hiển thị trên trình duyệt (server linux họ cấu hình bắt buộc tất cả các file phải CHMOD về 644 mới hiển thị trên trình duyệt được).
- Mình giả sử source web của mình gồm có các thư mục và các file: include,lienhe,...và các file index.php, index1.php, index2.php chẳng hạn
+ Thư mục "include" : thư mục này chứa file config.php để cấu hình thông số về host hay database và các file quan trọng khác,nó có đặc điểm không hiển thị trên trình duyệt. Khi file index.php chẳng hạn sử dụng hàm include đến nó thì hiển thị thông tin về các đoạn text hay hình ảnh từ database rất tốt (thư mục này thì CHMOD về 775,các file trong thư mục này CHMOD về 644).
+Thư mục "lienhe" : chứa các file hiển thị trên trên trình duyệt,nhưng nó không thể nào hiển thị lên trình duyệt được,mình sử dụng hàm if, elseif , else nếu không chạy thì trả về trang index.php. (thư mục này cũng CHMOD về 775,các file trong thư mục này CHMOD về 644).Và còn nhiều thư mục như thế này nửa nhưng các file trong đó không thể nào hiển thị trên trình duyệt.
+ Các index1.php, index2.php chẳng hạn nằm ngang hàng với file index.php thì hiển thị trên trình duyệt bình thường,truy xuất thông tin trên database đều được cả.

Có bạn nào biết chỉ rõ dùm mình lỗi ở đây là chỗ nào chỉ giúp mình,cảm ơn các bạn nhiều.
Bạn kiểm tra permission của từng file xem. Có thể bạn chỉ chmod của thư mục mà các file trong thư mục đó ko được chmod (sử dụng tham số -R khi chmod).
anhdaikho_vt viết 02:10 ngày 10/10/2018
Bạn thử tạo file php.ini với nội dung là:
Register_global = on

Chú ý: File php.ini để trong thư mục public_html.
namhoang viết 02:07 ngày 10/10/2018
Vụ này tôi cũng gặp 1 lần rồi! Cách đơn giản nhất là xóa toàn bộ code và up lại. Chuyển máy chủ hay bị xác lập ngầm định lại Permission không mong muốn. Tôi thấy làm thế thì được và không hiểu nguyên do lắm. May mà hệ thống tách bạch code và data nên không chuối lắm.
vanhung123 viết 02:04 ngày 10/10/2018
Cảm ơn các bạn đã quan tâm đến câu hỏi mình
Mình đã kiểm tra kỹ từng file rồi các bạn,tất cả CHMOD về 644 chứ không nó sẽ báo lỗi không tìm thấy file liền.
Còn như ý của bạn extjs thì mình sử dụng hàm if, elseif , else nếu không chạy thì trả về trang index.php. Nếu mình "ép" nó hiển thị trên trình duyệt file nào trong thư mục "lienhe" chẳng hạn thì tất cả hình ảnh của trang đó hay hàm include của trang đó không chạy được.
Ý của bạn anhdaikho_vt mình đang làm thử.

Cảm ơn các bạn nhiều
vanhung123 viết 01:57 ngày 10/10/2018
Mình đã tạo file php.ini như các bạn nói,vẫn không có tác dụng gì,chắc server họ không cho cấu hình lại php.ini hoặc phải chờ họ khởi động lại server.Mình có tạo file phpinfo.php đặt vào thư mục public_html nhưng vào coi thấy Register_global=off.Chắc phải chuyển server hoặc sửa lại toàn bộ code.
Có phải do nguyên nhân này hay có cách nào khác các bạn chỉ giúp.
TheHeTre viết 01:57 ngày 10/10/2018
Tôi chưa gặp phải trường hợp này nhưng theo mô tả của bạn thì chắc không phải do lỗi của code rồi.
Bài liên quan
0