terça-feira, 11 de dezembro de 2012

Ubuntu instalando OCI8 para rodar no PHP

 Prerequisites:
sudo apt-get install build-essential
sudo apt-get install php5-dev php-pear libaio1

Then download the Oracle Instant Client from Oracle (you will need to create an account).
You will need the Basic (58MB) and SDK (600K) -- baixe as versões ZIP. The Basic Lite version does not work.
Vc precisará saber se seu servidor é AMD ou Intel e se é 32 ou 64 bits, clique aqui para conferir os comandos
crie a pasta lib se ela não existir
cd /usr/local/lib
sudo unzip <location-of-instant-client-basic>
sudo unzip <location-of-instant-client-sdk>
cd instantclient_11_2
sudo ln -s libclntsh.so.11.1 libclntsh.so
renomeie a pasta  instantclient_11_2
mv instantclient_11_2 instantclient

The symbolic link is needed during the compilation step later.
sudo pecl install oci8

You will be prompted for the location of the library:
instantclient,/usr/local/lib/instantclient

no meu caso eu apenas dei [enter] para ele localizar automaticamente, da maneira acima não funcionou.

PHP5 Instructions


You should now create a new oci8.ini file which will be included when loading php.ini (Editing the php.ini is discouraged):
nano /etc/php5/conf.d/oci8.ini

this will create a blank file; add to this file:
extension=oci8.so


Confira a instalação rodando phpinfo() no servidor.

segunda-feira, 10 de dezembro de 2012

MySQL select a partir de


No select abaixo teremos emails a partir da letra G

SELECT email, id
FROM `TABELA`
WHERE LOWER( LEFT( email, 1 ) ) NOT
IN (

'a', 'b', 'c', 'd', 'e', 'f'
)
ORDER BY email


Aki apenas letras:

SELECT `empresa`
FROM `TABELA`
WHERE empresa NOT
REGEXP '^[0-9]+$'


E aki apenas numeros:

SELECT * FROM table WHERE columnName REGEXP '^[0-9]+$'

sábado, 8 de dezembro de 2012

Exim4 configuração

Arquivo update.conf:

dc_eximconfig_configtype='smarthost' # veja as configurações detalhadas abaixo
dc_other_hostnames='COLOQUE AQUI O HOSTNAME SECUNDARIO'
dc_local_interfaces='127.0.0.1'
dc_readhost='COLOQUE AQUI O HOSTNAME PRINCIPAL'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets='COLOQUE AQUI SEUS IPS'
dc_smarthost='COLOQUE AQUI SEU SMARTHOST' # se vc não souber pergunte para o seu provedor de acesso (é o servidor de smtp do seu provedor)
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'


Geralmente o "problema" esta nesta variavel dc_eximconfig_configtype em caso de duvida pergunte ao seu provedor de acesso qual deve usar.

Não esquecer de mudar:

de www-data para o e-mail desejado:
vi /etc/email-addresses

hostname desejado
vi /etc/hosts
vi /etc/hostname

Não esquecer de tirar totalmente o sendmail:
sudo apt-get --purge remove sendmail-base sendmail-cf sendmail-doc

Descrição das variaveis acima:

CFILEMODE
The octal file mode of the generated file.
dc_eximconfig_configtype
The main configuration type. One of internet, smarthost, satellite, local, exim3manual or none.
dc_hide_mailname
Boolean option that controls whether the local mailname in the headers of outgoing mail should be hidden. (Only effective for smarthost and satellite.
dc_mailname_in_oh
Internal use only Boolean option that is set by the maintainer scripts after adding the contents of /etc/mailname to the dc_other_hostnames list. This is a transition helper since it wouldn't otherwise be possible to see whether that domain name has been removed from dc_other_hostnames on purpose.
ue4c_keepcomments
Boolean option that controls whether update-exim4.conf strips the comments from the target configuration file (default) or leaves them in. This can be overridden by the command line options --keepcomments and --removecomments.
dc_localdelivery
name of the default transport for local mail delivery. Defaults to mail_spool if unset, use maildir_home for delivery to ~/Maildir/. This setting does not correspond to a Debconf question and needs to be set manually.
dc_local_interfaces
Used as the value for Exim's main configuration option local_interfaces.
dc_minimaldns
Boolean option to activate some option to minimize DNS lookups, if set to true a macro DC_minimaldns is defined.
dc_other_hostnames
is used to build the local_domains hostlist, together with localhost. This is the list of domains for which this machine should consider itself the final destination.
dc_readhost
For smarthost and satellite it is possible to hide the local mailname in the headers of outgoing mail and replace it with this value instead, using rewriting.
dc_relay_domains
is used to populate the relay_to_domains domainlist, a list of domains for which we accept mail from anywhere on the Internet but which are not delvered locally, e.g. because this machine serves as secondary MX for these domains.
dc_relay_nets
A list of machines (hostlist) for which we serve as smarthost. Used to populate the relay_from_hosts hostlist. Please note that in the default configuration, 127.0.0.1 and ::::1 are always permitted to relay since /usr/lib/sendmail is available anyway and relay control doesn't make sense here.
dc_smarthost
List of hosts to which all outgoing mail is passed to and that takes care of delivering it. Multiple hosts are colon separated. Each of the hosts is tried, in the order specified (See exim specification, chapter 20.5). All deliveries go out to TCP port 25. Specifying different ports is not (yet) possible due to upstream restrictions. Used as value of the DCsmarthost macro.
dc_use_split_config
Boolean option that controls whether update-exim4.conf uses /etc/exim4/exim4.conf.template (false) or the multiple files below /etc/exim4/conf.d (true) as input.

terça-feira, 16 de outubro de 2012

javascript - getelementbyid select / option


HTML:

<select name='chegada' id='chegada'>
      <option value='valor1'>valor1</option>
      <option value='valor2'>valor2</option>
 </select>

JavaScript:
<script>
chegada_valor = document.getElementById("chegada").selectedIndex;
alert (chegada_valor); 
</script>

OU

<script>
chegada_valor = document.getElementById("chegada").value;
alert (chegada_valor); 
</script>



MySQL - Transformar coluna upper / lower


Para transformar toda a colunada tabela:

UPDATE tabela SET empresa = UPPER(empresa), email = lower(email);


terça-feira, 9 de outubro de 2012

jquery com PHP - Ordenar campos e salvar no MySQL

Script Excelente

Retirado de: http://coder1.com/articles/jquery-sortables-php-and-mysql

<?php
// make your db connection up here ...
$link = mysql_connect('localhost', 'user', 'pass');
$db = mysql_select_db('dbname', $link);
// handle POST
if ($_POST) {
// use $i to increment the weight
$i=1;
// loop through post array in the order it was submitted
foreach ($_POST['fruit'] as $fruit_id) {
// update the row
$result = mysql_query("UPDATE fruit SET weight=".$i." WHERE id=".mysql_real_escape_string($fruit_id));
// increment weight to make the next fruit heavier
$i++;
}
}
?>
<script type="text/javascript" src="jquery-1.2.6.js"></script>
<script type="text/javascript" src="jquery-ui-1.5.1.min.js"></script>
<script type="text/javascript">
// when the entire document has loaded, run the code inside this function
$(document).ready(function(){
// Wow! .. One line of code to make the unordered list drag/sortable!
$('#fruit_list').sortable();
});
</script>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']?>">
<ul id="fruit_list">
<?php // query fruit table and print out each item
$result = mysql_query("SELECT id, name, weight FROM fruit ORDER BY weight");
// print the list items
while ($row = mysql_fetch_assoc($result)) {
echo '<li>
<input type="hidden" name="fruit[]" value="'.$row['id'].'" />
'.$row['name'].'</li>';
}
?>
</ul>
<input type="submit" name="reorder" value="Re-Order Fruit" />
</form>

terça-feira, 2 de outubro de 2012

Ubuntu saber qual cpu e memória



Para saber o tipo de Maquina do seu servidor:

lshw -C cpu
OU
cat /proc/cpuinfo
cat /proc/meminfo

Para saber qual o sistema instalado 32 ou 64 bits:
file /bin/bash | cut -d' ' -f3
ou
uname -m
se a resposta for i686 é 32 bits.


Mac upgrade do Snow Leopard para Lion



Para quem teve o mesmo problema que eu: Falha no disco rigido...

Este problema no meu caso foi gerado devido a eu ter particionado o HD. Não há uma solução da mac para isso e eu não achei nada na internet que pudesse voltar minha instalação prévia (fica a dica para o pessoal da MAC...), pois uma vez q vc começa a fazer a instalação do novo OS, adeus instalação antiga.

Como eu já tinha perdido mesmo a instalação do Snow Leopard, fiz uma nova instalação do Zero usando meu CD de instalação do Snow Leopard (coloque o cd e reinicie o computador e fique segurando a tecla "C") e depois usando o Time Machine e alguns comandos no Terminal para poder "ver"algumas pastas e arquivos, com isso consegui recuperar senhas, fontes, lista de favoritos do FireFox/Chrome, arquivos e dados preciosos.

Comando no Terminal para que vc possa "ver" todos os arquivos e pastas ocultos:

defaults write com.apple.Finder AppleShowAllFiles TRUE;
killall Finder;

Comando no terminal para que vc possa "esconder" todos os arquivos e pastas:

defaults write com.apple.Finder AppleShowAllFiles FALSE;
killall Finder;

Lembrete: Sempre faça um backup completo via Time Machine, em HD externo, antes de tentar qualquer upgrade de OS.

segunda-feira, 17 de setembro de 2012

MySQL / PHP - Maiúsculas e Minúsculas



Utilizar UCASE para maiúsculas e LCASE para minúsculas.

$sql_pais=mysql_query("select id, UCASE(porto) as portoU, pais from portos");
$porto=$linha_pais['portoU'];

Apenas uma observação a coluna porto na base MySQL esta como utf8_unicode_ci não testei esse comando para latin1...

sexta-feira, 29 de junho de 2012

WordPress Agendamento perdido

Depois de tentar as atualizações sugeridas em vários blogs e até pelo pessoal do WP como alterar o wp-config.php o erro continuava, sendo assim decidi intervir e cheguei a seguinte solução:

Na pagina index.php que fica na raiz do seu site coloque o código abaixo no inicio da pagina (depois de <?php ):

## INICIO ##
$conn = mysql_pconnect('localhost', 'SEU_USER_NAME', 'SUA_SENHA');

mysql_select_db('SUA_BASE_DE_DADOS', $conn);
if (!$conn)
{
echo '<font color=red size=2 type=Arial>Erro: Não foi possível conectar com a internet. Tente novamente mais tarde.</font>';
exit;
}

$sql_future=mysql_query("select ID from wp_posts where post_type='post' and post_status='future' and TO_DAYS(post_date) = TO_DAYS(NOW())");

$qtd_future=mysql_num_rows($sql_future);

if ($qtd_future>=1) {
while ($linha_future=mysql_fetch_array($sql_future)):
$id_do_post=$linha_future['ID'];
$sql_updt_future=mysql_query("update wp_posts set post_status='publish' where ID='$id_do_post' ");
endwhile;
}
if ($conn) mysql_close($conn);
## FIM #


domingo, 20 de maio de 2012

Ubuntu timezone

Verificar a timezone atual:

# cat /etc/timezone
America/Sao_Paulo

A resposta foi certeira, estou no timezone America/Sao_Paulo.

Para trocar para o timezone de São Paulo para Fernando de Noronha vamos verificar qual o nome deste time zone fazendo:

# ls /usr/share/zoneinfo/America/

Agora é procurar na lista apresentada pelo timezone desejado. Também podemos buscar usando uma palavra chave de busca, por exemplo "Fernando" ou "Noronha", com o comando:

# ls /usr/share/zoneinfo/America/ | grep Noronha Noronha

Veja que no caso procurei pela palavra "Noronha" e deu bem direitinho. A resposta ao comando indica que existe o arquivo de nome "Noronha".

Bem, agora que já sabemos o nome correto do arquivo, vamos alterar o conteúdo de /etc/timezone utilizando o seu editor de textos preferido, como em:

Escolha seu editor favorito:

# vi /etc/timezone

Altere então de America/Sao_Paulo para America/Noronha.

Agora para atualizar utilizando a variável TZ faça (até o UBUNTU 10.04):

# export TZ=America/Noronha

Para UBUNTU 12.04:

# sudo dpkg-reconfigure --frontend noninteractive tzdata

Vamos verificar com:

# date
Sun May 20 11:16:29 BRT 2012

Este material foi retirado de: Viva O Linux

quarta-feira, 2 de maio de 2012

Exim - Debug E-mail



Para um debug mais simples:
exim -bt 'user@localdomain.com'

Para um debug mais completo:
exim -d -v 'user@localdomain.com'
e na sequencia digite ^D ( control D )

Local onde guarda os e-mail enviados

/var/spool/mail



segunda-feira, 30 de abril de 2012

Linux - Apagar pastas



O comando abaixo apaga a pasta toda de uma vez sem fazer perguntas:
rm -rf livezilla

Linux - Criar tarball



Para criar
tar -zcvf NOME_DO_ARQUIVO.tar.gz NOME_DA_PASTA/

Para listar os arquivos dentro de uma tarball utilize:
tar -tvf arq.tar

Para extrair os arquivos da tarball utilize:
tar -xf arq.tar

LINUX - Apagar vários arquivos



find ./ -maxdepth 1 -type f -mtime +30 | xargs ls -lh

essa linha diz, "Liste" todos os arquivos com mais de 30 dias, ai vc ajusta até achar seu resultado desejado. Caso haja subdiretorios tb, usa maxdepth maior (conforme os subdirs que deseja)

Dai pra frente é com vc.

pra apagar altere os paramentros no final, de ls -lh para rm -Rf

por Celso Domingues

terça-feira, 17 de abril de 2012

Checar IP x SPAM (CBL, SBL, XBL e PBL)

Para CBL:
http://cbl.abuseat.org/lookup.cgi

Para SBL, XBL e PBL:

http://www.spamhaus.org/lookup/



SPF Records

Para testar se o SPF Record esta correto:

http://www.kitterman.com/spf/validate.html

http://www.openspf.org/Why



segunda-feira, 6 de fevereiro de 2012

MySQL Corrigir Data de um campo para o outro

Para converter um campo mysql (quantidade) com a data 30/12/2012 8:31 para outro campo (data_agendada) na mesma tabela porém com a data padrão MySQL (AAAA-mm-dd HH:ii)

UPDATE `tabela` SET data_agendada =STR_TO_DATE(quantidade, "%d/%m/%Y %H:%i") WHERE data_agendada = '0000-00-00 00:00:00';