Tom*_*lez 0 acl cakephp cakephp-2.2
我正在使用远程服务器而我无法使用控制台,因为未启用ssh.所以我需要直接从浏览器运行aco_sync(或任何其他不涉及shell的方式).
我设法在我的本地开发服务器上使用控制器/操作中的以下代码同步acos:
$command = ROOT . DS . APP_DIR . DS . 'Console' . DS . 'cake';
$params = ' -app ' . ROOT . DS . APP_DIR;
$params .= ' AclExtras.AclExtras';
$params .= ' aco_sync';
$result = shell_exec($command . $params);
Run Code Online (Sandbox Code Playgroud)
但是在生产服务器上(使用cPanel)我在大约5分钟内没有响应,然后我收到内部服务器错误(500).我只是挂了.实际上,这发生在两个不同的带有cPanel的VPS服务器上.在第一个中,我有ssh并且能够从控制台运行命令.但是当从浏览器运行引用的代码时,我就像其他服务器一样挂起.
我已经看到一些使用$ dispatcher-> dispatch()的实现并尝试了一堆但没有运气.
有任何想法吗?
小智 5
App::uses('ShellDispatcher', 'Console');
$command = '-app '.APP.' AclExtras.AclExtras aco_sync';
$args = explode(' ', $command);
$dispatcher = new ShellDispatcher($args, false);
if($dispatcher->dispatch()) {
echo 'OK';
} else {
echo 'Error';
}
Run Code Online (Sandbox Code Playgroud)