2014-07-14 53 views
0

我在我的服務器上執行shell exec時遇到了一些麻煩。 以下一些教程後,我已經改變了我的php.ini:Shell執行禁用

safe_mode Off 

disable_functions pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, 

suhosin.executor.func.blacklist passthru, show_source, system, pcntl_exec, popen, pclose, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, escapeshellcmd, escapeshellarg, exec 

這是我的phpinfo(),並沒有提及了shell_exec命令。我不知道這個suhosin.executor.func.blacklist來自哪裏,因爲它在我的/etc/php5/apache2/conf.d/suhosin.ini中被註釋掉了。

我在Ubuntu 12.04下使用zpanel。謝謝!

回答

1

在所有潛在的php.ini文件中搜索suhosin.executor.func.blacklist可能會有所幫助,例如,

grep -r suhosin.executor.func.blacklist /etc/php5 

該條目可以在應用程序目錄或父目錄中的.htaccess中設置,例如,

grep -r suhosin.executor.func.blacklist /var/www/ 

phpinfo()列出目錄中的.ini文件,例如:

Scan this dir for additional .ini files => /foo/bar 
Additional .ini files parsed => /foo/bar/php.ini 
1

它來自於你的Apache VHOST的conf文件。 通常位於

/etc/zpanel/configs/apache/httpd-vhosts.conf

如果你不能找到你VHOST的conf文件嘗試 Zpanel - >管理 - >模塊管理 - >點擊「Apache Config」 然後找到「Apache VHOST Conf」路徑。

然後將該文件打開到任何文本編輯器中,併爲您的自定義虛擬主機移除該值。

0

首先,你需要找到的httpd.conf文件

# find/-type f -name "httpd.conf"

然後打開文件逐一搜索了shell_exec字或詞黑名單

# nano /etc/usrname/configs/apache/httpd-vhosts.conf

按下ctrl + w並輸入suhosin.executor.func.blacklist,然後回車 從這行刪除shell_exec並保存文件,保存文件後重新啓動你的apache like

# service httpd restart