dklight
@dklight
php кодер - level 2.5

Как обойти open_basedir restriction in effect. File(php://output)?

Добрый день.
С помощью PHPExcel генерируется xlsx документ. Генерация вида:
// ...
        $filename = sha1(md5((new DateTime())->format('r') ) . Yii::$app->params['file_export_salt'] ) . '.xlsx';        
        header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
        header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
        header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
        header ('Pragma: public'); // HTTP/1.0

        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'OpenDocument');
        $objWriter->save('php://output');
        exit;


часть конфига, отвечающая за текущий хост:
<VirtualHost *:85>
    ServerAdmin lighmyevt.ru@yii2yoo.loc.com
    DocumentRoot "/SRV/vhosts/myev.loc/html/web"
    ServerName myev.loc
    ServerAlias www.myev.loc
        # 1
	php_admin_value open_basedir "/SRV/vhosts/myev.loc/html/"
        # 2
	php_admin_value upload_tmp_dir "/SRV/vhosts/myev.loc/html/web/upload_tmp_dir"
    ErrorLog "/SRV/vhosts/myev.loc/logs/error.log"
    CustomLog "/SRV/vhosts/myev.loc/logs/access.log" common
</VirtualHost>


Если убрать строку под #1 задача решена, однако это не есть хорошо, тогда пользователь сможет гулять по папкам других пользователей. Как добавить php://output в белый список? Или другой вариант решения.

Пробовал менять и/или добавлять команды вроде #1, #2 в htaccess, но не помогло.
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
@synapse_people
Для апача есть suexec, apache-mpm-itk и еще какой-то третий модуль был
Возьмите их
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
php_admin_value open_basedir none
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы