Erle Carrara Posted January 11, 2012 Share Posted January 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 to comment Share on other sites More sharing options...
edvan Posted January 11, 2012 Share Posted January 11, 2012 Wordpress ou WHMCS? Link to comment Share on other sites More sharing options...
Erle Carrara Posted January 11, 2012 Author Share Posted January 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 to comment Share on other sites More sharing options...
Elisei Posted January 11, 2012 Share Posted January 11, 2012 aspas simples no * nao resolve? Link to comment Share on other sites More sharing options...
Erle Carrara Posted January 11, 2012 Author Share Posted January 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 to comment Share on other sites More sharing options...
chuvadenovembro Posted January 12, 2012 Share Posted January 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 CPanel e DirectAdmin SSD + SSL Grátis Link to comment Share on other sites More sharing options...
Erle Carrara Posted January 12, 2012 Author Share Posted January 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 to comment Share on other sites More sharing options...
McGuyver Posted January 13, 2012 Share Posted January 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 to comment Share on other sites More sharing options...
Erle Carrara Posted January 13, 2012 Author Share Posted January 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 to comment Share on other sites More sharing options...
Guest Posted January 17, 2012 Share Posted January 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 to comment Share on other sites More sharing options...
Recommended Posts