ademirs 0 Denunciar post Postado Outubro 6, 2011 Olá amigos, bom dia. Venho mais uma vez compartilhar algo com vocês. Estou eu, novato em MVC PHP, depois de gostar do modelo e estar entendendo, estou eu apanhando das diretivas de servidores web. Uso servidor local (Apache), em programação estruturada nunca tive problemas, mas estou tendo agora com as actions do MVC em servidores web. Preciso utilizar os recursos abaixo, mas dizem que não é possível liberar tudo que eu preciso, dai, minha aplicação não roda...afffff. RewriteEngine on, RewriteCond –f e –d e RewriteRule (para o .htacces) No http.conf do apache precisa estar ativo as linhas: LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule rewrite_module modules/mod_rewrite.so AllowOverride All No php.ini precisa ativar o PDO extension=php_pdo.dll extension=php_pdo_mysql.dll Não posso migrar para um Cloud, por exemplo, a maioria não vai aceitar sabe $$. Tempo estudando, montando um modelo e que decepção... Talvez eu esteja muito errado, sim porque não, por isso peço uma orientação do que poderia estar sendo feito para corrigir tais restrições em minha aplicação para que rode em todos os Servidores Web (formas alternativas - e corretas claro). Para segurança no MVC estou usando PHPIDS. Aguardo uma orientação dos amigos. Abraço, Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Outubro 6, 2011 quais os requisitos do seu sistema e quais as restrições que encontrou nos hosts em que tentou usar ? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Outubro 6, 2011 Qual o problema na realidade? Fazer esse htaccess funcionar? Você pode ver se o servidor habilita esse módulos para você, basta que argumente seus pontos. Mas, na real, eu acho que o bom sistema deve trabalhar independente das configurações do servidor. Claro, o MÍNIMO de exigência de configuração você deve fazer, como por exemplo versão mínima do PHP ou módulo Rewrite ativo. Agora tornar o seu sistema DEPENDENTE de recursos não muito comuns, é um problema, já que alguns servidores (para não dizer a maioria) são relutantes em habilitar recursos desativados desde... sempre. Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Outubro 6, 2011 O problema é que em um "determinado" Servidor, ele não encontra o meu Model. Utilizo o function __autoload( $file ){} para chamar sabe. Estou usando o seguinte código no .htaccess: RewriteEngine on RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] Compartilhar este post Link para o post Compartilhar em outros sites
Custellinha 0 Denunciar post Postado Outubro 6, 2011 já tive esse problema quando fui hospedar em um servidor na web. o problema foi que o model (no meu caso foi um helper), a forma como eu declarei nao estava de acordo com o arquivo em questão, um problema de case sensitive. dê uma debugada no código, e verifique qual model ele não está achando, às vezes é uma letrinha, mas faz diferença. Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Outubro 6, 2011 Estou verificando essa possibilidade, até então não encontrei nada mas vou continuar para ver se não acho alguma coisa no fonte... Sei lá...estranho isso Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Outubro 6, 2011 Ahhhhh.... Quanto a isso, basta deixar de usar __autoload() e usar spl_autoload_register() :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
netShot 1 Denunciar post Postado Outubro 6, 2011 Verifique os caminhos se estão corretos, também tive problemas com o autoload e era questão de paths: Vai uma dica; Tipo no public/index.php set_include_path('.' . PATH_SEPARATOR . realpath('../alguma_coisa') . PATH_SEPARATOR . get_include_path() ); require_once 'classe.php'; spl_autoload_register(array('classe', 'funcao_para_autoload')); Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Outubro 6, 2011 é estranho porque local funciona...habilitei o LoadModule speling_module modules/mod_speling.so local e continuou funcionando... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Outubro 6, 2011 apenas para testes, tanto local quanto no host online faça test1.php echo ini_get('include_path'); exit; deve retornar a lista de include_path verifique também se há uma definição para BASEDIR open_basedir.php echo ini_get('open_basedir'); exit; (caso não exista não retornará nada) Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Outubro 6, 2011 referente "include_path", no modo local retornou: .;C:\diretoriodophp\pear e on-line: .:/usr/diretoriodophp/pear referente "open_basedir", não retornou nada, nem local, nem on-line. quanto ao uso do spl_autoload_register sem alterações, ficou na mesma... obs. vou tentar o PATH_SEPARATOR no public index... vou até postar a função do autoload a seguir... function __autoload($arquivo){ if (file_exists(DIR_MODELS . $arquivo . '.php')) require_once(DIR_MODELS . $arquivo . '.php'); else if (file_exists(DIR_HELPERS . $arquivo . '.php')) require_once(DIR_HELPERS . $arquivo . '.php'); else die("ERRO: MODEL OU HELPER AUSENTE"); } OBS: Obrigado a todos que estão colaborando... opaaa....descobria qui que o erro está nas paths...só falta descobrir onde...afff * descobri (corrigindo)... estou usando estes caminhos? alguma sugestão? define('DIR_CONTROLLERS','app/controllers/'); define('DIR_VIEWS','app/views/'); define('DIR_MODELS ','app/models/'); Compartilhar este post Link para o post Compartilhar em outros sites
Custellinha 0 Denunciar post Postado Outubro 6, 2011 faça assim pra debugar: die("ERRO: MODEL ".DIR_MODELS . $arquivo . ".php OU HELPER ".DIR_HELPERS . $arquivo . ".php AUSENTE"); ficará mais claro onde está o erro. Compartilhar este post Link para o post Compartilhar em outros sites
ademirs 0 Denunciar post Postado Outubro 7, 2011 Amigos, descobri onde estava o erro. Realmente o erro foi case sensitive. O amigo "Custellinha", estava certo. Debuguei o fonte e encontrei o problema que estava na chamada dos Models, ou seja, no nome do arquivo mesmo. Agradeço muito a todos que aqui participaram e leram este tópico, aos moderadores também. Espero que como eu mais alguém possa resolver problemas similares, afinal, neste tópico foram citadas questões muito importantes. Um grande abraço a toda a comunidade, a todos os amigos. Abraços, (Moderador, por favor coloque como RESOLVIDO? OBRIGADO) Compartilhar este post Link para o post Compartilhar em outros sites