|
|
|
| всем привет !
есть /etc/php.ini там как я понимаю лежат глобальные настройки пхп.
нужно определить для одного сайта свои настройки пхп тоесть разрешить некоторые запрещенные в глобальных настройках функции пхп типа shell , open_proc и т.д.
как это сделать ? | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 08:40)
| | Пропишите в .htaccess | |
|
|
|
|
|
|
|
для: t3ma
(19.01.2010 в 08:56)
| | приведите пожалуйста пример | |
|
|
|
|
|
|
|
для: t3ma
(19.01.2010 в 08:56)
| | Это устанавливается опцией disable_functions, а описание гласит:
disable_functions изменяемая PHP_INI_SYSTEM
PHP_INI_SYSTEM - вхождение может быть установлено в php.ini или в httpd.conf | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 09:17)
| | я понял , но вот так не работает :
Alias /some_url /var/log/nginx
<Directory /var/log/nginx>
RemoveHandler .php .php3 .php4 .phtml
AddType application/x-httpd-php .php .php3 .php4 .phtml
php_admin_value open_basedir none
php_admin_value upload_tmp_dir /tmp
php_admin_value session.save_path "/tmp"
php_admin_value include_path .:..
php_admin_value safe_mode off
php_admin_value disable_functions " "
DirectoryIndex index.php
Order allow,deny
allow from all
</Directory>
|
| |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 09:35)
| | php_admin_value “disable_functions” “popen,exec,system”, например, и в phpinfo() вы увидите правильное значение disable_functions, однако “отключенные” функции будут продолжать действовать, т.к. disable_functions работает только когда включен в глобальном php.ini.
Разработчики объясняют это тем, что отключать функции на уровне конфигурации апача очень накладно, гораздо проще выключить их вообще из php.ini | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 09:50)
| | иными словами не получится разрешить запрещенные глобально функции для определенных пользователей ? | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 09:57)
| | Вы речь ведете о сайтах или пользователях? | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 10:00)
| | ну вот смотрите я создаю алиас, определяю для него домашнюю директорию , и хочу чтоб скрипт работал там безо всяких там ограничений указанных в глобальном пхп.ини . | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 10:03)
| | Ну если единый php и его настройки для них, то.... | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 10:13)
| | и всетаки , неужели нет способа разрешить определенным алиасам использовать интерпретатор с запрещенными в глобальных настройках пхп.ини функциях | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 10:46)
| | Поищите в сети решение проблемы, может быть и есть, и которое вас удовлетворит. | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 10:59)
| | нашол тут же , далеко ходить не пришлось http://www.softtime.ru/info/apache.php?id_article=97 но в итоге :
Alias /some_url /var/www/12
<Directory /var/www/12>
Options FollowSymLinks
AllowOverride All
RemoveHandler .php .php3 .php4 .phtml
AddType application/x-httpd-php .php .php3 .php4 .phtml
php_admin_value open_basedir none
php_admin_value upload_tmp_dir /tmp
php_admin_value session.save_path "/tmp"
php_admin_value include_path .:..
php_admin_value safe_mode off
php_admin_value disable_functions " "
DirectoryIndex index.php
Order allow,deny
Allow from all
</Directory>
|
получается:
Internal Server Error | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 18:10)
| | Не будет это работать, пока не будет указано в php.ini.
А что за функции вы ходите запретить/разрешить? | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 18:27)
| | у меня на сервере запрещены следующие :
disable_functions = dl,phpinfo,rmdir,shell_exec, passthru, system, highlight_file, show_source, ini_alter,
disk_free_space, diskfreespace, leak, ssthru, proc_nice, show_source, openlog, apache_get_modules,
apache_get_version, apache_note, apache_setenv, ini_restore, symlink, escapeshellarg, escapeshellcmd,
ini_alter, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, posix_kill, posix_mkfifo,
posix_setpgid, posix_setsid, posix_setuid, ssh2_exec, pcntl_exec, ini_restore, ioctl, exec
|
а надо для некоторых хоум диров разрещить system функцию .
вот и получается какаято фигня , если я уберу system из пхп.ини , то это огромная дыра в безопасности.
поэтому я и ищю способы разрешить доверенным пользователям | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 18:37)
| | Есть решение - это разделение конфигурации для CLI и Web. А вот другого я не знаю. | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 18:45)
| | во , именно это меня и интересует ! подскажите литературу по теме . | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 18:49)
| | Ну это решение в сети "на каждой странице" в сети описано :) У вас же, насколько я понимаю, работа двух сайтов, это web интерфейс, а не командная строка у второго, чем же это вам подходит? | |
|
|
|
|
|
|
|
для: sim5
(19.01.2010 в 18:56)
| | вроде бы разобрался , но все равно не работает , я делаю:
копирую пхп.ини в /usr/local и в хттпд.конф в секции нужного мне домена вписываю PHPIniDir /usr/local
рестарчу апач и нифига , он почесуто берет второй конфиг за дефолтный .
почему так происходит ? что я упустил ? | |
|
|
|
|
|
|
|
для: dima2207
(19.01.2010 в 19:29)
| | Я так понимаю, что вы воспользовались этим советом:
...шелл вызовы достаточно часто используются в CLI скриптах, в то время как в веб скриптах в большинстве случаев их можно отключить. Значит нужно разделить конфиги CLI и Web. В первом конфиге оставить шелл вызовы, а во втором, более подверженном хаку, их отключить.
Предположим, что дефолтный конфиг php.ini лежит в /usr/local/lib (стандартное место на FreeBSD). Скопируем его в /usr/local/etc/apache2. И на новом месте пропишем нужные disable_functions. Далее, в httpd.conf пишем:
PHPIniDir /usr/local/etc/apache2/conf
Но ведь тут речь идет о работе из командной строки в одном случае, и web интерфейсе в другом. Ваши "доверенные" будут допущены к командной строке? | |
|
|
|
|
|
|
|
для: sim5
(20.01.2010 в 06:41)
| | да , именно этим , но он не работает так как мне надо , а надо чтоб одним юзерам можно юыло пользоватся через веб всеми функциями а другим - нет . | |
|
|
|
|
|
|
|
для: dima2207
(20.01.2010 в 20:36)
| | И не будет работать так, как вам надо, так как это совсем для иного. | |
|
|
|