Scientist 2 Denunciar post Postado Novembro 29, 2012 Bom dia, tenho uma parte de um código em PHP que necessita realizar o seguinte comando DDL create database nomedabase , localmente funciona perfeitamente e o banco é criado. O problema começa quando passo isso para a hospedagem, ela não permite a criação de um banco via PhpMyAdmin, apenas pelo CPANEL (testei na Ravehost e na Locaweb), e pelo que estou percebendo vai ser difícil encontrar uma hospedagem que me possibilite isso, porém esta é uma função primordial do sistema (não pode ser excluída). Alguém tem alguma ideia de como contornar esse problema ? Alguém tem alguma ideia de como resolver isso ? Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 30, 2012 Por que você precisa tanto criar o banco de dados através do PHP? Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Novembro 30, 2012 Porque toda vez que um novo cliente se registra, deve ser criado um banco automaticamente com o apelido dele. Exemplo: joaozinho_bd o DDL ficaria assim: create database joaozinho_bd Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Novembro 30, 2012 geralmente os planos de hospedagem tem um limite de bases q podem ser criadas, claro depende do plano. Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Novembro 30, 2012 Bom, o nosso plano não tem esse limite. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Novembro 30, 2012 Algum dos seus usuários poderia ter permissão para isto, mas normalmente esta tarefa é possível apenas atravez do painel de controle. Em todo caso, reavalie esta "funcionalidade" do seu sistema, me parece errado. Procure por serviços de dedicados ou VPS. Paz e bem! Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Novembro 30, 2012 Um novo banco de dados só pode ser criado pelo usuário "root" ou outro usuário que tenha super privilégios, usando um usuário comum e sem privilégios você não vai conseguir criar. Como você disse que está usando o painel cPanel e a sua conta permite a criação de novas bases de dados, você pode fazer isso usando a API. Documentação da API http://docs.cpanel.n...ApiIntroduction Biblioteca em PHP para integração com a API https://github.com/C...lInc/xmlapi-php O iMasters também tem uma API para integração com o cPanel escrita pelo João Batista Neto https://github.com/iMastersDev/cpanel Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Novembro 30, 2012 Como você disse que está usando o painel cPanel e a sua conta permite a criação de novas bases de dados, você pode fazer isso usando a API. Se... a API estiver liberada. :) Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Novembro 30, 2012 Se... a API estiver liberada. Tem como desativar a API do cPanel? Eu nunca vi essa opção no painel do WHM. O que eu sei é que se você for administrador do servidor ou tiver uma revenda (reseller) você pode gerar um hash no WHM e fazer a autenticação na API usando este hash, o que aumenta a segurança e evita problemas com trocas de senha. Já os usuários comuns, que apenas tem uma hospedagem no cPanel podem se autenticar na API usando o usuário e senha da conta. A API do cPanel permite estas duas formas de autenticação. Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Novembro 30, 2012 Gente, tenho consciência que fazer isso é errado, criar um monte de banco de dados para cada usuário. Porém o cliente exigiu isso. Vou estudar a API do CPanel criado pelo João para ver o que consigo fazer. Agora é descobrir como criar um banco de dados pela API Pessoal, eu li todo o arquivo xmlapi.php e não encontrei nenhuma função que realiza a adição de banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Novembro 30, 2012 A classe xmlapi possui apenas métodos para funções mais comuns. No caso de precisar de uma função mais específica, você deve utilizar o método xmlapi_query com base na documentação da API. Qualquer dúvida posta aí. Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Novembro 30, 2012 Bom, eu ainda estou um pouco perdido em como fazer isso. Um exemplo de utilização do método xmlapi_query com o banco de dados seria ótimo Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Novembro 30, 2012 Eu tava vendo umas aplicações aqui que integrei com o cPanel e lembrei que a API deles tem duas versões, a 1 e a 2. Para usar a API 1 você usa o método api1_query e a API 2 o método api2_query. Documentação do módulo MySQL usando a API 1 http://docs.cpanel.n...s/Api1/ApiMysql Exemplo de uso do método: $xmlapi->api1_query('seu_usuario_do_cpanel', 'Mysql', 'adddb', array('nome_do_db_que_deseja_criar')); No primeiro parametro do método api1_query você coloca o seu usuário do cPanel, depois o nome do módulo da API (neste caso Mysql), depois o nome da função (no caso "adddb" para adicionar um novo banco de dados) e por último um array com os parâmetros a serem informados (no caso apenas o nome do banco de dados). Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Novembro 30, 2012 Obrigado Leonardo, vou testar e retorno aqui assim que possível. Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Dezembro 2, 2012 Funcionou, muito obrigado pela ajuda !! Compartilhar este post Link para o post Compartilhar em outros sites