] Я использовал ваш конфигурационный файл и добавил нижеприведенное содержимое в конец файла []httpd.conf[
]. []addType[
], []AddHandler[
], []PHPIniDir[
]. [
]И он работает на CentOS 5, не показывая содержимое []index.php[
].[
Поскольку вы используете «su -», выполняемая оболочка притворяется оболочкой входа в систему (выполняя системный / etc / profile
, профиль пользователя, такой как .profile
или .bash_profile
и т. Д.). Один из этих сценариев генерирует escape-последовательность (строка Esc] P
) и выводит результат на стандартный вывод. Так не должно быть.
Он должен проверять, является ли оболочка интерактивной, и , затем - и только потом! - он должен генерировать escape-последовательность.
Лучший способ проверить интерактивную оболочку - это проверить значение «$ -» и посмотреть, содержит ли она букву i
- если есть, оболочка интерактивна, а если нет, оболочка - нет. Обычно я использую что-то вроде этого:
case "$-" in
*i*) # Here if the shell is interactive
;;
*) # Here otherwise
;;
esac
Вам нужно определить, что генерирует эту escape-последовательность. Распространенными виновниками являются echo
, tput
и другие команды, которые должны изменять настройки терминала. Я немного погуглил, но не могу найти эту конкретную escape-последовательность, поэтому не могу дать никаких подсказок относительно того, где и что искать.
Конечно, почему вы вообще используете su -
? Просто используйте sudo -u user1
и исключите лишний шаг (ваши требования могут включать выполнение .profile user1
; я не знаю, и вы не сказали).