2013-09-24 5 views
0

Я планирую приложение. В приложении много изображений. Поскольку я хочу, чтобы изображения были доступны только тем, у кого есть пароль, и в то же время я хочу избежать проблем с htaccess и htpasswd-файлами, мой план состоит в том, чтобы хранить изображения за пределами веб-каталогов и обслуживать их с помощью файла readfile.Файл чтения PHP v. Apache

Мой вопрос: насколько может быть разница в производительности при использовании readfile(), чем Apache обслуживает файлы напрямую? Я просто не знаю достаточно о том, как Apache и PHP работают, знаю ли мой план разумным или нет.

OK. Поэтому я сделал несколько обзоров на этом сайте, и некоторые люди предлагают использовать readfile() как способ «безопасного» обслуживания изображений, которые теперь могут храниться вне корня веб-сайта. Я просто чувствую, что между этим и htpasswd должны быть другие варианты. (Спасибо за комментарий ниже от Pekka о x-sendfile. Это просто, что в данном случае это не вариант).

Благодаря

+0

Это может быть дорогостоящим, так как для каждого запроса должен быть запущен процесс загрузки PHP. Если у вас есть root-доступ к вашему серверу, есть средний уровень, [Использование X-Sendfile с Apache/PHP] (http://stackoverflow.com/q/80186) –

+0

Спасибо. В этом случае x-sendfile не является вариантом, так как этот скрипт будет распространен, и я пытаюсь сделать так, чтобы у него было как можно меньше требований. Я отредактировал свой вопрос на основе вашего комментария –

+0

«как можно меньше требований» --- укажите оба. Используйте тот, который указан в config – zerkms

ответ

1

Проблема в том, я люблю PHP, но его не самый быстрый язык программирования для таких вещей. Когда вам действительно нужна производительность, вы должны взглянуть на HipHop от Facebook, чтобы собрать файлы в родную C.

Я не знаю, размера вашего сайта, но и readfile()file_get_contents() может быть очень медленными и занимаете много памяти когда у вас много запросов.

Но это возможно только при наличии доступа root.

+2

HipHop для этого? HipHop не будет запускать какую-либо распространенную PHP-платформу, обычно бывает сложно получить код на HipHop. скорее предложит APC, но стенд в любом случае не ускорит чтение файлов. – joschua011

+0

Вы должны использовать HipHop только для доставки файлов ... Не для всех ... – Stony

Смежные вопросы