PHP
Информация о PHP и его модулях
Информацию о самом php можно получить, открыв в браузере предварительно созданный файл info.php:
<?php phpinfo(); ?>
если есть проблемы с доступом к скрипту info.php через браузер, то то же самое получим, выполнив команду:
# php -i > info.html
Почта из PHP
<?php mail("address@example.com", "Mail from PHP", "Sending mail via PHP function mail()\nС такого-то сайта\nТакие-то дополнительные данные"); ?>
Уровень оповещения об ошибках
Чтобы не получать предупреждения PHP вроде Undefined variable и Undefined index, нужно изменить уровень оповещения в /etc/php/.../php.ini:
error_reporting = E_ALL & ~E_NOTICE
Отладка (debug)
- Вывод информации о переменной любого типа (тип, значение, в том числе массивы): var_dump() и print_r(). Пример:
var_dump($a); print_r($b);
- Вывод значения переменной в виде PHP кода: var_export().
Работа над ошибками
Общие рекомендации
- Если проблемы с насройкой php, то можно включить лог и посмотреть, что не работает. Редактируем /etc/php/4.4.7/apache2-mod_php/php.ini:
display_errors = On display_startup_errors = On log_errors = On error_log = /var/log/php.log
Если php страницы отображаются не в той кодировке, то меняем кодировку по умолчанию:
default_charset = "windows-1251"
popen() has been disabled for security reasons
Warning: popen() has been disabled for security reasons in /var/www/apache2/html/webmail/class/deliver/Deliver_SendMail.class.php on line 98
Это означает что в PHP запрещён вызов команды popen(). Снимаем запрет в файле php.ini (Путь к файлу зависит от системы и версии php, например /etc/php/4.4.7/apache2-mod_php/php.ini) убирая упоминания этой команды в запрещающих опциях: disable_functions, suhosin.executor.func.blacklist, suhosin.executor.eval.blacklist
После исправления нужно перезагрузить Apache.