Hướng dẫn 500 error, please check your php script / enable display_errors in your cpanel - Lỗi 500, vui lòng kiểm tra tập lệnh php / kích hoạt display_errors trong bảng điều khiển của bạn

  • #2

Đây là máy chủ VPS chuyên dụng hay VPS của bạn, hay, bạn đang sử dụng một bản lưu trữ được chia sẻ?

  • #3

Xin chào Chrisrhs,

Đó là máy chủ chuyên dụng của tôi.

  • #4

Php của bạn được cấu hình như thế nào? SUPHP, FASTCGI, CGI hay DSO? Bạn cũng sẽ có thể xem nhật ký lỗi cho Apache:

đuôi -n 200/usr/local/apache/log/error_log

Điều đó sẽ liệt kê 200 dòng cuối cùng. Bạn cần phải tìm kiếm lỗi 500. Tôi nghi ngờ là do các quyền, vì vậy bạn cũng có thể muốn kiểm tra nhật ký SUEXEC:

đuôi -N 200/usr/local/apache/log/suexec_log

Chris

  • #5

đuôi các bản ghi, sau đó cố gắng khởi động lại Apache và tìm kiếm lỗi.

Kiểm tra xem các tệp nhật ký của bạn đã vượt xa kích thước được phép.

  • #6

Các bản ghi :

apache log orror_log

. myAccount/public_html/index.php "[Sun Mar 07 16:19:33 2010] [Lỗi] [Client xx.xx.xxx.xxx] Kết thúc sớm của tiêu đề tập lệnh: index.php [Sun Mar 07 16:19:33 2010] [Lỗi] [Client xx.xx.xxx.xxx] Tệp không tồn tại: /home/myaccount/public_html/500.shtml
[Sun Mar 07 16:19:33 2010] [error] [client xx.xx.xxx.xxx] Premature end of script headers: index.php
[Sun Mar 07 16:19:33 2010] [error] [client xx.xx.xxx.xxx] File does not exist: /home/myAccount/public_html/500.shtml

Nó có nghĩa là gì?

Cảm ơn

  • #7

Nó trông giống như một lỗi SUPHP. Quyền sở hữu của index.php không phù hợp với chủ sở hữu miền. Nó có hoạt động khi truy cập trực tiếp tên miền không?

Là root, hãy thực hiện một 'siteUser (siteUser/homeUser/homeUser/public_html' public_html 'siteuser:siteuser /home/siteuser/public_html'

Xem người dùng 500 và 506 là ai nếu bạn không biết. Kiểm tra /etc /passwd

Cat /etc /passwd | grep 500

  • #số 8

Sau khi thay đổi quyền sở hữu tất cả các tệp và thư mục của bạn bên trong Public_HTML, bạn sẽ phải thay đổi quyền sở hữu chỉ cho thư mục public_html thành tên người dùng: không ai.

Cũng đảm bảo rằng bạn cũng đã chỉ định các quyền thích hợp cho các thư mục và tệp của bạn.

  • #9

Nếu bạn có một số lượng lớn tài khoản, bạn có thể sử dụng tập lệnh sau để sửa quyền sở hữu các tệp/thư mục của tất cả các tài khoản

Đối với tôi trong `CAT /ETC /TrueUserdomains | awk '{print $ 2}' `dodown $ i. $ i/home/$ i/public_html -r; Chown $ i.nobody/home/$ i/public_html; xong;
do
chown $i.$i /home/$i/public_html -R;
chown $i.nobody /home/$i/public_html;
done;

  • #10

Hello,

Cám ơn bạn vì tất cả. Nó hoạt dộng bây giờ.

Xin lỗi vì tiếng Anh của tôi không tốt...

Cảm ơn !!!

  • #11

Nếu bạn có một số lượng lớn tài khoản, bạn có thể sử dụng tập lệnh sau để sửa quyền sở hữu các tệp/thư mục của tất cả các tài khoản

Làm thế nào để sử dụng tập lệnh này? Trực tiếp trong dòng lệnh không làm gì cả. Xin lỗi, tôi là toàn bộ máy chủ n00b
Directly inthe command line did nothing.
sorry, I am total server n00b

  • #12

Đó là một bash một lớp lót. Tôi tin rằng nó không hoạt động vì OP đã quên bán đại tá sau khi tuyên bố và trước khi vòng lặp:

Mã số:

for i in `cat /etc/trueuserdomains | awk '{print $2}'`; do chown $i.$i /home/$i/public_html -R; chown $i.nobody /home/$i/public_html; done

  • #13

CWALKE32477 đã nói:

Làm thế nào để sử dụng tập lệnh này? Trực tiếp trong dòng lệnh không làm gì cả. Xin lỗi, tôi là toàn bộ máy chủ n00b
Directly inthe command line did nothing.
sorry, I am total server n00b

Đừng chạy bất kỳ lệnh script nào được liệt kê trong chủ đề này vì tất cả các lệnh như được đăng trong chủ đề này được viết rất kém và khiến tôi co rúm lại một chút chỉ nhìn vào chúng. Nỗ lực tốt nhưng không có xì gà.

Dù sao, nếu bạn đang gặp vấn đề tương tự như chủ đề này là cố gắng sử dụng "/~ tên người dùng/" để truy cập các trang web và gặp sự cố Lỗi 500, có nhiều khả năng máy chủ của bạn được cấu hình là không DSO và trong trường hợp đó, Tôi sẽ tránh sử dụng mod_userdir (~ truy cập tên người dùng) hoàn toàn vì nhiều lý do kỹ thuật tuyệt vời.

  • #14

Đừng chạy bất kỳ lệnh script nào được liệt kê trong chủ đề này vì tất cả các lệnh như được đăng trong chủ đề này được viết rất kém và khiến tôi co rúm lại một chút chỉ nhìn vào chúng. Nỗ lực tốt nhưng không có xì gà.

Dù sao, nếu bạn đang gặp vấn đề tương tự như chủ đề này là cố gắng sử dụng "/~ tên người dùng/" để truy cập các trang web và gặp sự cố Lỗi 500, có nhiều khả năng máy chủ của bạn được cấu hình là không DSO và trong trường hợp đó, Tôi sẽ tránh sử dụng mod_userdir (~ truy cập tên người dùng) hoàn toàn vì nhiều lý do kỹ thuật tuyệt vời.

Rất vui khi thấy bạn cung cấp một cái tốt hơn!

@Op:

Cá nhân tôi thích đối xử với họ trên cơ sở từng trường hợp. Bạn luôn có thể chạy một vòng lặp cho vòng lặp, nhưng nhìn chung tôi chỉ xử lý 1 trang web vấn đề một thời gian. Tất nhiên, 500 lỗi không phải lúc nào cũng có nghĩa là vấn đề về quyền và nếu có, bạn thường sẽ thấy các lỗi trong nhật ký để chỉ ra các quyền không chính xác trên các tệp/thư mục. Phương pháp ưa thích của tôi để khắc phục điều này là sử dụng tìm kiếm:

Mã số:

find /home/user/public_html/ -user nobody

#13

Mã số:

find /home/user/public_html/ -user nobody -exec chown user:user {} \;

#13

Mã số:

find /home/user/public_html/ -type d -perm 777 -exec chmod 0755 {} \;

  • #13

CWALKE32477 đã nói:

@Op:

Cá nhân tôi thích đối xử với họ trên cơ sở từng trường hợp. Bạn luôn có thể chạy một vòng lặp cho vòng lặp, nhưng nhìn chung tôi chỉ xử lý 1 trang web vấn đề một thời gian. Tất nhiên, 500 lỗi không phải lúc nào cũng có nghĩa là vấn đề về quyền và nếu có, bạn thường sẽ thấy các lỗi trong nhật ký để chỉ ra các quyền không chính xác trên các tệp/thư mục. Phương pháp ưa thích của tôi để khắc phục điều này là sử dụng tìm kiếm:

Mã số:

find /home/user/public_html/ -user nobody

Để tự động chính xác quyền sở hữu:

Mã số:

find /home/user/public_html/ -user nobody -exec chown user:user {} \;

Bạn cũng sẽ muốn đảm bảo các thư mục là 755 khi sử dụng SUPHP. Mã tương tự để sửa lỗi này:

Mã số:

find /home/user/public_html/ -type d -perm 777 -exec chmod 0755 {} \;

Chúng ta có thể thay thế / người dùng / với /* / để làm tất cả cùng một lúc không? cảm ơn,
thanks,

- Vincent

  • #16

Chúng ta có thể thay thế / người dùng / với /* / để làm tất cả cùng một lúc không? cảm ơn,
thanks,

- Vincent

Vâng, bạn thực sự có thể!

Vì lý do bảo mật, tôi sẽ không cố gắng lãng phí thời gian để giải thích các chi tiết thân mật vào lúc này như đã được đề cập ở nơi khác, tốt hơn là nên tìm ra đầu ra thông qua 'Xargs' hơn là sử dụng các hàm thực thi bên trong nhưng đó là một chú thích phụ - - bất cứ điều gì bạn cảm thấy thoải mái hơn.

Sau đây là các quyền lý tưởng nhất cho môi trường không DSO:

  • 755 - ** Tất cả ** Các thư mục (bao gồm các thư mục mà các tác giả tập lệnh bảo bạn đặt 777)
  • 644 - Tệp không tập lệnh (hình ảnh, HTML cơ bản, Mẫu, v.v.)
  • 600 - tập lệnh PHP ( *.php, *.php4, *.php5)
  • 755 - Các tập lệnh CGI và Shell ( *.cgi, *.pl, *.pm, *.py, *.e, *.sh)
  • 400 - Hiếm khi tập lệnh PHP ** không ** muốn ghi
  • 755 - Các tập lệnh PHP hiếm được sử dụng theo CLI làm kịch bản shell

  • #17

Mambovince:

Phụ lục theo dõi bài viết trước của tôi ở trên và câu hỏi của bạn, trong trường hợp bạn không hoàn toàn theo dõi, đây sẽ là một ví dụ rất cơ bản về những gì bạn có thể sử dụng để đặt quyền trên các thư mục và tệp tập lệnh PHP:

Mã số:

# cd /home
# find /home/*/public_html -type f -name '*.php' | xargs chmod 0644 -- 
# find /home/*/public_html -type d | xargs chmod 0755 --

Bạn có thể điều chỉnh những ví dụ đó khi bạn cần. : D

  • #18

Mambovince:

Mã số:

# cd /home
# find /home/*/public_html -type f -name '*.php' | xargs chmod 0644 -- 
# find /home/*/public_html -type d | xargs chmod 0755 --

Cảm ơn xoắn ốc. Tất cả các thư mục sẽ cần 755? Những điều sau đây tôi tìm thấy trong một bài đăng khác ở đây cho thấy chỉ thay đổi những người có 777
Would all directories need 755?
The following I found in another post here suggests to only change those with 777

Mã số:

find /home*/*/public_html -type d -perm 0777 -exec chmod 755 {} \;

Nhân tiện, bây giờ tôi có một vài trang web khi truy cập, họ sẽ đưa ra tùy chọn tải xuống tệp thay vì trang web.

Bất kỳ trợ giúp đánh giá cao.

- Vincent

  • #16

Chúng ta có thể thay thế / người dùng / với /* / để làm tất cả cùng một lúc không? cảm ơn,

- Vincent

Vâng, bạn thực sự có thể!

Vì lý do bảo mật, tôi sẽ không cố gắng lãng phí thời gian để giải thích các chi tiết thân mật vào lúc này như đã được đề cập ở nơi khác, tốt hơn là nên tìm ra đầu ra thông qua 'Xargs' hơn là sử dụng các hàm thực thi bên trong nhưng đó là một chú thích phụ - - bất cứ điều gì bạn cảm thấy thoải mái hơn.

Sau đây là các quyền lý tưởng nhất cho môi trường không DSO:

755 - ** Tất cả ** Các thư mục (bao gồm các thư mục mà các tác giả tập lệnh bảo bạn đặt 777)

644 - Tệp không tập lệnh (hình ảnh, HTML cơ bản, Mẫu, v.v.)

600 - tập lệnh PHP ( *.php, *.php4, *.php5)

755 - Các tập lệnh CGI và Shell ( *.cgi, *.pl, *.pm, *.py, *.e, *.sh)

400 - Hiếm khi tập lệnh PHP ** không ** muốn ghi

Mã số:

find /home/user/public_html/ -user nobody
0

755 - Các tập lệnh PHP hiếm được sử dụng theo CLI làm kịch bản shell

#17

  • Phụ lục theo dõi bài viết trước của tôi ở trên và câu hỏi của bạn, trong trường hợp bạn không hoàn toàn theo dõi, đây sẽ là một ví dụ rất cơ bản về những gì bạn có thể sử dụng để đặt quyền trên các thư mục và tệp tập lệnh PHP:

Bạn có thể điều chỉnh những ví dụ đó khi bạn cần. : D
really appreciate your response.
Regarding the possibility that my VPS PHP is broken, not sure.
You see, nearly 50 sites are working fine and they are a mix of Wordpress, Joomla, and custum PHP scripts.

#18
I have never run a server with SuPHP but need to learn due to improved security.

Mambovince:

Cảm ơn xoắn ốc. Tất cả các thư mục sẽ cần 755? Những điều sau đây tôi tìm thấy trong một bài đăng khác ở đây cho thấy chỉ thay đổi những người có 777

- Vincent