Вот уж формулировка вопроса! Я раз 10 перечитывал, чтобы понять, что все-таки происходит. Попробую уточнить:
Когда Вы запускаете свой sh скрипт, с помощью PHP, из браузера, то выполнение этой программы происходит лишь частично? Или все-таки аварийно завершается?
Когда вы запускаете этот же sh скрипт в консоле баша, где он выполняется 1 минуту, как происходит выполнение - аварийно завершается, выполняется частично или выполнятеся полностью?
Интуитивно, могу лишь догадываться, но подозреваю, что ответом на Ваш вопрос может оказаться какой-нибудь set_time_limit или max_execution_time. Ну, а по сути надо смотреть логи, например /var/log/apache2/error.log, (для выявления ошибок работы PHP скриптов). Мониторить можно и в реальном времени, например с помощью утилиты tail, которая должна быть в Вашей BASH консоли, можно так: tail -f /var/log/apache2/error.log