PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 10
Dion Отправлено: 04 Июня, 2015 - 01:57:29 • Тема: IIS отдать файл скриптом (аналог X-SendFile и X-Accel-Redirect) • Форум: Apache и другие веб-серверы

Ответов: 0
Просмотров: 585
Web-серверы Apache и Nginx позволят отдавать файлы на загрузку через скрипт, с помощью специальных заголовков. У Apache это - X-SendFile, у Nginx - X-Accel-Redirect)

CODE (htmlphp):
скопировать код в буфер обмена
  1. header('X-Accel-Redirect: ' . $file);


Есть сервер c IIS 7.5. Интересует возможность аналогичной реализации, или альтернативные способы отдавать файлы через PHP напрямую.
Предполагается что объём файлов для загрузки будет достигать до 20 Гб!
Dion Отправлено: 05 Декабря, 2014 - 17:04:45 • Тема: nginx (X-Accel-Redirect) 403 Forbidden • Форум: Apache и другие веб-серверы

Ответов: 2
Просмотров: 916
Мелкий, аааааааа Смущение вот я чайник! Всё было из-за этой точки. Радость
Спасибо вам большое, теперь всё в порядке ))))
Dion Отправлено: 05 Декабря, 2014 - 16:45:49 • Тема: nginx (X-Accel-Redirect) 403 Forbidden • Форум: Apache и другие веб-серверы

Ответов: 2
Просмотров: 916
При попытке отдать файл:
PHP:
скопировать код в буфер обмена
  1.  
  2. $file = './files/test.zip';
  3. header('X-Accel-Redirect: ' . $file);
  4.  

Выдаёт сообщение об ошибке: 403 Forbidden (nginx)
В error.log такое:
2014/12/05 18:09:24 [error] 1541#0: *1 openat() "/var/www/dion/data/www/mysite.ru./files/test.zip" failed (13: Permission denied), client: 93.157.***.***, server: mysite.ru, request: "GET /test.php HTTP/1.1", upstream: "http://46.254.**.***:81/test.php", host: "mysite.ru"

В конфигурацию nginx добавил запись:
location /files/ {
root /var/www/dion/data/www/mysite.ru;
internal;
}


По совету на одном сайте пробовал ставить в конфиге: user www-data; вместо user nginx;
пробовал менять группу и владельца папки files и test.zip на www-data, nginx, root - ничего не помогает... перезагружал сервер.

Подскажите, что я делаю неправильно?

ОС: Ubuntu 12.04
Веб-сервер Apache: apache2-mpm-itk-2.2.22-1ubuntu1. 5
nginx [engine x] — HTTP и прокси-сервер: nginx-1.6.0-1~precise
PHP: php5-5.3.10-1ubuntu3.11
Dion Отправлено: 17 Ноября, 2014 - 23:07:49 • Тема: Сервер сам экранирует кавычки (загвоздка) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 352
Добрый день, уважаемые знатоки. Не уверен, что правильно выбрал раздел для темы, но надеюсь мне помогут.
И так проблема заключается в следующем: POST автоматически экранирует кавычки и из строки "Hello world" мы получаем \"Hello world\" очень полезная финча, но все мои скрипты сами этим занимаются, где и когда нужно. Необходимо отключить это!

Знаю, что за это отвечает magic_quotes_gpc в php.ini
Идём в /etc/php5/apache2/php.ini и увидим там:
magic_quotes_gpc = Off
Но! get_magic_quotes_gpc возвращает единичку Улыбка

Подскажите пожалуйста, где это ещё может быть включено?

ОС: Ubuntu 12.04
Dion Отправлено: 05 Апреля, 2013 - 23:59:19 • Тема: Перелинковка классов • Форум: Объектно-ориентированное программирование

Ответов: 3
Просмотров: 902
История:
Сначала был один класс main, в нём хранилось всё что нужно. Функции для работы с пользователями, БД, шаблонизация, системные и много чего другого. Это очень быстро работает и заморачиваться не нужно, создал обьёкт и всё сразу под рукой. Но! Для разработки это просто "ппц"! функций и переменных стало слишком много, невозможно ориентироваться нормально.
Попытка:
Когда это стало напоминать Талмуд - было принято решение разбить класс по функционалу, т.е. создать отдельные классы для работы с БД, Пользователями, Ошибки, Шаблонизация, Системный, Админка и т.д.
Последствия:
Но тут начались мощные проблемы, т.к. это всё жёстко завязано друг с другом (функции одних классов необходимо использовать в других классах), начались казусы. Ладно с классом БД (кстати его нужен обязательно один независимый экземпляр), его я протаскиваю в классы через параметр как ссылку и уже внутри использую. Но возмём к примеру класс Ошибок, он используется почти во всех классах, к примеру один экземпляр уже есть в классе БД, при этом БД, используется в Системном классе... Брать функции Ошибок через БД или создавать новый экземпляр?! Радость Это страшно! ))))

Ув. профи, посоветуйте мне что-нибудь. Как покончить с этим кошмаром и выстроить нормальную логику приложения с использованием ООП?
Dion Отправлено: 23 Ноября, 2012 - 07:53:12 • Тема: Сложная сортировка комментариев и ответов к ним в один запрос • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 27
Приветствую вас, уважаемые форумчане!
Решил реализовать ответы на комментарии, на своём сайте. Но как хочется - реализовать не получается! Обращаюсь к вам за помощью.

MySQL: Есть табличка с комментариями tbl_comments. Структура самая простейшая:
| id | user | text | datetime |
на нужных страничках комменты выводятся DESC'ом по дата-тайму (вверху новые комментарии).
Появилась острая необходимость реализовать ответы к ним. т.е. каждое сообщение может иметь ответы (ответы на ответы не нужны, поэтому попроще). Всё это нужно сделать в 1 запрос, ответы так же хранятся в этой таблице. В табличку было добавлено новое поле type - определяющее, сообщение это или ответ на него. НО! тут есть одна загвоздка. По замыслу ответы должны сортироваться по дата-тайму в обратном от основных сообщений порядке. Многие скажут - "зачем это нужно, когда можно нормально всё это сортировать в одном направлении"? Однако, я считаю, что так будет лучше и удобнее пользователям. Не хочу отказываться от этой идеи.

Помогите составить запрос! Можно рассмотреть варианты с 2-я таблицами, структра которых может быть любой, с любыми полями.
P.S. Для данной сортировки, так же было добавлено поле в основную таблицу - group - имеющее одно общее число сообщение - ответы (т.е. например у какого-нибудь сообщения group - 1, все ответы на него так же имеют group - 1)

Надеюсь великие гуру помогут мне Улыбка

Для наибольшей наглядности нарисовал вот такой небольшой примеркич - как должно быть: см. прикреплённый файл!
Dion Отправлено: 29 Октября, 2012 - 06:26:15 • Тема: Доступ к константе класса внутри другого класса • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 2238
Всем доброго времени суток! Собственно вопрос возник... смотрим код и читаем комменты в нём...
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. class main
  4. {
  5.    const CONSTANTA = 'Hello World!';
  6.    public $var;
  7. }
  8.  
  9. class side
  10. {
  11.    private $main;
  12.    private function __construct(&$main_class)
  13.    {
  14.         $this->main = &$main_class;
  15.         echo $this->main->var;           // С переменными всё отлично! "1"
  16.         echo $main_class::CONSTANTA; // Так тоже всё отлично, вернёт содержимое
  17.         echo $this->main::CONSTANTA; // А вот тут ФИГУ! Ошибка...
  18.    }
  19. }
  20.  
  21. $main = new main;
  22. $main->var = 1;
  23.  
  24. $side = new side($main);
  25. ?>
  26.  


Нас интересует echo $this->main::CONSTANTA;
Возможно я совсем чайник в ООП Огорчение
Почему так не получается обратиться к константе?
Конечно можно переопределить все нужные константы в Конструкте, но хотелось бы напрямую по ссылке обращаться.
Как это правильно делать, подскажите?
Dion Отправлено: 22 Марта, 2012 - 16:02:16 • Тема: Высокая нагрузка на CPU при создании PDF • Форум: Вопросы новичков

Ответов: 1
Просмотров: 175
Как устроено:
PHP-скрипт на основании записей из БД формирует PDF-отчёты (различная отчётная документация).
Для генерации PDF-файлов используется известная библиотека MPDF.
Файлы формируются на лету в цикле.

Камень преткновения:
250 файлов формируются приблизительно за 5 минут. Но не это самое страшное. При выполнении скрипта загрузка CPU составляет от 50 до 60%, что крайне много и начальнику очень не нравится Растерялся

Исследования:
С помощью XHprof были произведены замеры нагрузки на выявление "слабого звена" в скрипте...
Как и предполагалось, основную нагрузку вызывает именно ядро формирования PDF. Библиотека очень большая и сложная, не думаю что есть смысл ковырят что-то в ней, ибо там всё завязанно и в равной степени весь её код и создаёт эту проблему.
Не уверен что другие библиотеки вроде FPDF будут работать быстрее...

Кто что думает по этому поводу? Может у кого найдутся какие-нибудь предложения решения данной проблемы?

* Возможно ли как-то ограничить приоритет скрипта чтобы он меньше загружал процессор? Пусть будет намного дольше, но чтобы нагрузка не превышала 10% ?
Если да, то как реализовать это средствами PHP?

Заранее спасибо.
Dion Отправлено: 15 Декабря, 2010 - 15:48:42 • Тема: Прямая ссылка на скачку открывает файл в окне браузера • Форум: Программирование на PHP

Ответов: 6
Просмотров: 674
Мелкий пишет:
http://forum.php.su/topic.php?forum=35&topic=11

Скрипт представленный в этой теме работает хорошо, но вопрос в нагрузке на сервер.

PHP:
скопировать код в буфер обмена
  1. $file = ("mashka.rar");
  2. header ("Content-Type: application/octet-stream");
  3. header ("Accept-Ranges: bytes");
  4. header ("Content-Length: ".filesize($file));
  5. header ("Content-Disposition: attachment; filename=".$file);  
  6. readfile($file);


меня немного смущает readfile, я не очень разбираюсь во внутренних механизмах кода, но в этом случае файл не загоняется случайно в ОЗУ сервера?

Передо мной стоит задача написать систему, которая по минимуму нагружает сервер.
Dion Отправлено: 15 Декабря, 2010 - 14:28:40 • Тема: Прямая ссылка на скачку открывает файл в окне браузера • Форум: Программирование на PHP

Ответов: 6
Просмотров: 674
В файле download.php обрабатываются прямые ссылки на файлы, лежащие на сервере.

PHP:
скопировать код в буфер обмена
  1. header ("Location: http://moysait.ru/files/progra.rar"); exit;


При этом файл начинает открываться во вкладке браузера, и не только файлы с расширением *.RAR, но и даже *.EXE и др.! Даже если выбрать "сохранить по ссылке как..." и даже тогда в диалоговом окне сохранения файла, вместо родного расширения приписывает .htm - progra.htm
От браузера не зависит...

В интернете множество вопросов на эту тему, но ни одного внятного решения этой проблемы не нашёл... Огорчение

Как сделать, чтобы файлы сохранялись как положено?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB