Erle Carrara Postado Janeiro 11, 2012 Compartilhar Postado Janeiro 11, 2012 Olá a todos! Estou fazendo um shell script para instalar o Wordpress (fazer isso na mão é chato e demorado). Porém surgiu um problema simples, não consigo montar a SQL necessária usando o Shel Script, ele lista os diretórios quando encontra "*.*". Vejam: SQL="CREATE DATABASE $DB_NAME;GRANT USAGE ON *.* to $DB_USER@localhost identified by '$DB_PASS';GRANT ALL PRIVILEGES ON $DB_NAME.* TO $DB_USER@localhost;" echo $SQL Aqui o retorno é algo do tipo: CREATE DATABASE $DB_NAME;GRANT USAGE ON minhapasta1, minhapasta2, pasta3 to $DB_USER@localhost identified by '$DB_PASS';GRANT ALL PRIVILEGES ON $DB_NAME.* TO $DB_USER@localhost;"[/code] Alguém sabe como resolver isso? Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Janeiro 11, 2012 Compartilhar Postado Janeiro 11, 2012 Wordpress ou WHMCS? Link para o comentário Compartilhar em outros sites More sharing options...
Erle Carrara Postado Janeiro 11, 2012 Autor Compartilhar Postado Janeiro 11, 2012 Não é para o WHCMS e nem para o Wordpress. É um Shell Script que fiz aqui para instalar o Wordpress na pasta do cliente e já criar o banco de dados, usuário e etc.. Melhor do que fazer isso na mão. Segue completo: #!/bin/bash TARGET_DIR=$1 echo -n "Banco de Dados MySQL: "; read DB_NAME echo -n "Usuário MySQL: "; read DB_USER echo -n "Senha do Usuário MySQL: "; read DB_PASS echo -n "Idioma do WP: "; read LANG WP_DOWNLOAD_LINK="http://wordpress.org/latest.tar.gz" echo "installing in \"$TARGET_DIR\"" cd $TARGET_DIR wget $WP_DOWNLOAD_LINK tar xf `basename $WP_DOWNLOAD_LINK` mv wordpress/* ./ && rm wordpres/ -r mv wp-config-sample.php wp-config.php sed "s/database_name_here/$DB_NAME/" -i wp-config.php sed "s/username_here/$DB_USER/" -i wp-config.php sed "s/password_here/$DB_PASS/" -i wp-config.php sed "s/'WPLANG', ''/'WPLANG', '$LANG'/" -i wp-config.php function genrand(){ MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@$%*()_-=+" LENGTH="32" while [ "${n:=1}" -le "$LENGTH" ]; do PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}" let n+=1 done echo "$PASS" } for i in `seq 0 7`; do sed "s/put your unique phrase here/$(genrand)/" -i wp-config.php echo $i done echo "Vamos criar o banco de dados."; SQL="CREATE DATABASE $DB_NAME;GRANT USAGE ON *.* to $DB_USER@localhost identified by '$DB_PASS';GRANT ALL PRIVILEGES ON $DB_NAME.* TO $DB_USER@localhost;" echo "Vamos criar o banco de dados." echo -n "Usuário root do MySQL: "; read MYSQL_ROOT_USER echo -n "Senha root do MySQL: "; read MYSQL_ROOT_PASSW mysql -u $MYSQL_ROOT_USER -p$MYSQL_ROOT_PASSW < $SQL; echo "Wordpress instalado com sucesso." Modo de usar: ./wp-install /pasta/onde/vai/instalar/o/wordpress. Responda as perguntas e pronto, WP instalado e configurado. Mas como disse, estou com problema naquela linha ali que monta a query SQL. Estou quase refazendo o script pra Python aqui, mas Shell Script é melhor pra esse tipo de tarefa. Link para o comentário Compartilhar em outros sites More sharing options...
Elisei Postado Janeiro 11, 2012 Compartilhar Postado Janeiro 11, 2012 aspas simples no * nao resolve? Link para o comentário Compartilhar em outros sites More sharing options...
Erle Carrara Postado Janeiro 11, 2012 Autor Compartilhar Postado Janeiro 11, 2012 Já tentei fazer o escape dos asteriscos de todos os jeitos aqui. Tentei \*.\*, *\.*, '*.*', etc... e nada. Muito estranho isso, porque em um shell script se eu faço um "TESTE=$(echo *.*); echo $TESTE" ele imprime o conteúdo do diretório atual, mas no terminal eu faço a mesma coisa "echo *.*" e ele tem o comportamento esperado. Link para o comentário Compartilhar em outros sites More sharing options...
chuvadenovembro Postado Janeiro 12, 2012 Compartilhar Postado Janeiro 12, 2012 Caso este script funcionar, pode ser adaptado para fazer instalação automaticamente via whmcs ao contratar a hospedagem? Sem a necessidade de utilizar o softaculous? █ AtarWeb.com.br • Hospedagem de Site + SSL Grátis █ Revenda de Hospedagem DirectAdmin SSD + SSL Grátis Link para o comentário Compartilhar em outros sites More sharing options...
Erle Carrara Postado Janeiro 12, 2012 Autor Compartilhar Postado Janeiro 12, 2012 Não sei ao certo, pois não conheço muito bem o WHCMS, mas você pode liberar o seu cliente e rapidamente acessar via SSH e fazer a instalação usando o script acima. Quando o seu cliente entrar o Wordpress já vai está instalado. Lembro de ter visto alguns hooks na documentação do WHMCS, não deve ser difícil criar algo integrado ao WHMCS. Link para o comentário Compartilhar em outros sites More sharing options...
McGuyver Postado Janeiro 13, 2012 Compartilhar Postado Janeiro 13, 2012 Olha, aqui eu criei um arquivo 'teste.sh' dei a permissão +x para ele e coloquei o seguinte código, usando o que o Elisei falou: #!/bin/bash echo "Vamos criar o banco de dados.\n"; DB_NAME="BANCOTESTE"; DB_PASS="SENHATESTE"; SQL="CREATE DATABASE $DB_NAME;GRANT USAGE ON '*.*' to $DB_USER@localhost identified by '$DB_PASS';GRANT ALL PRIVILEGES ON '$DB_NAME.*' TO $DB_USER@localhost;"; echo $SQL; O resultado foi: Vamos criar o banco de dados. CREATE DATABASE BANCOTESTE;GRANT USAGE ON '*.*' to @localhost identified by 'SENHATESTE';GRANT ALL PRIVILEGES ON 'BANCOTESTE.*' TO @localhost; Isso não estaria certo? Link para o comentário Compartilhar em outros sites More sharing options...
Erle Carrara Postado Janeiro 13, 2012 Autor Compartilhar Postado Janeiro 13, 2012 Olha, aqui eu criei um arquivo 'teste.sh' dei a permissão +x para ele e coloquei o seguinte código, usando o que o Elisei falou: #!/bin/bash echo "Vamos criar o banco de dados.\n"; DB_NAME="BANCOTESTE"; DB_PASS="SENHATESTE"; SQL="CREATE DATABASE $DB_NAME;GRANT USAGE ON '*.*' to $DB_USER@localhost identified by '$DB_PASS';GRANT ALL PRIVILEGES ON '$DB_NAME.*' TO $DB_USER@localhost;"; echo $SQL; O resultado foi: Isso não estaria certo? Não, o MySQL não aceita a query se tiver o '*.*' apenas se for *.* (sem aspas simples). ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''*.*' Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Janeiro 17, 2012 Compartilhar Postado Janeiro 17, 2012 Conseguistes arrumar o problema? Estou interessado no plugin.. mas como será o funcionamento dele? Por exemplo: Vamos supor que tenho um plano específico para clientes wordpress, como faço para este script ir para o diretório do cliente? Crio um script de automação, e coloco naquele plano do WHMCS, e então, após eu aprovar o pedido, o módulo copia o script de minha /home/scripts, e o cliente só deverá acessar o seu site que irá aparecer o script? Abraços. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados