Если шела нет, то даже твоим способом защищать не обязательно, ибо и так не выполнить.
В этом случае надо сделать так, чтобы веб-сервер либо не смог прочитать файл, либо не захотел его выполнять. В случае nginx - это решается на уровне настройки fcgi, подозреваю, что в апаче не сложней.