پاسخ : سوالات و مشکلات
به نقل از اردلان :
خوب ینی مشکل از من نیستش؟
چجوری رفعش کنم؟
کدر سایت که ظاهرا نیازی بهش نیست(!) باید بررسی کنه، یکی از موارد زیره!
A PHP file was edited (or hacked), leaving blank or empty line(s) at the beginning or end of the file, or blanks (or other characters) before the first opening <?php or after the last closing ?>. This can happen during the insertion or removal of a mod, if not done correctly, during manually editing by the owner or webmaster, or when a hack attempts to write some code to your page. The solution is to search your PHP files carefully, noting blank or empty lines or blanks that are out of place. The file_check utility may be helpful in this regard.
A file was uploaded in the wrong "mode". Most files you deal with on a web site are completely "human readable", and must be uploaded in ASCII (a.k.a. TEXT) mode. This converts the "end of line marker" used on your PC (carriage return-line feed for Windows, carriage-return for Mac, newline for Linux) to the proper representation for your server. If you upload in the wrong mode (e.g., binary, where nothing is changed), the server will get confused about where lines end in your file, and will throw a 500 error. Note that some kinds of files (such as images) must be uploaded exactly "as is", and use "binary" mode, so named because the data in the file is "binary" and not human readable. Most FTP and other file upload utilities are pretty good at automatically picking the right mode (just leave it in "auto" mode), but sometimes they mess up, and you may have to override their mode choice. Note that recent versions of the Filezilla FTP client seem to have developed a reputation for picking the wrong mode, but that may only be because it's by far the most popular FTP client in use (and gets more attention).
A directory or file uses forbidden permissions. Some security software, such as suPHP, will stop access to a directory or file and throw a 500 error if the directory or file is "world writable" (typically 777 or 666 permissions). See Proper Permissions for a discussion on when (if ever) you should be using such permissions.
There is an error in your .htaccess or php.ini file. These files get read before every access to a directory or file, so a coding error in them can really stop you cold.
PHP settings in the wrong place. Some older systems permit PHP configuration settings to be placed in the .htaccess file, using phpflag or phpvalue commands. Many systems, however, now require PHP settings to be placed in php.ini, and will throw a 500 error if you use the old fashioned method. Watch out for mods (or mod instructions) that tell you to put such flags and settings into your .htaccess — either the author is ignorant or the instructions haven't been updated in years.
Use of certain Mod Security settings in your .htaccess file can cause a 500 error. Review them, and comment them all out to see if that's causing the error. If it is, reintroduce them one at a time until you find the offending entry. SMF has sufficient
security built in that it is safe to turn off Mod Security (usually with an .htaccess entry) if your host has turned it on.
Requesting SSL (https:) service, when there is no SSL certificate for that exact domain, can cause a 500 error on some
servers.
Your hosting plan is very "low end", and severely limits the number of simultaneous PHP processes you can run, or has some
other resource limitation, and kills off "excess" processes. Your only solution in this case is to move to a better hosting plan.
Your host server is misconfigured in some way, and ends up spewing out large numbers of zombie processes. Most hosts will then kill your SMF installation to avoid swamping the system with the Walking Dead. All you can do as a temporary
workaround is to run a cron job that every minute looks for zombie processes and kills them. That's not a long-term solution, but can keep your host from causing you grief while someone tries to figure out what happened.
Someone screwed up editing code, leaving echo //something-removed;. To remove such a line, it must be // echo something-removed;. PHP 4 seems to tolerate echo //, but PHP 5 doesn't!