Posts Tagged ‘php’

ERROR: Exception The system cannot find the file specified. (Error code 2) at Unable to connect to pipe \\.\pipe\psapipe

Thursday, January 27th, 2011

Erro no parallels plesk:

ERROR: Exception The system cannot find the file specified. (Error code 2) at Unable to connect to pipe \\.\pipe\psapipe

Para sanar este erro você pode reiniciar o plesk (caso esteja iniciado) ou pode inicializar o mesmo caso esteja parado.

RoundCube não está permitindo excluir mensagens. Pastas Trash, Send e Junk (lixeira, enviados e rascunho) não aparecem

Friday, May 21st, 2010

Se você não consegue ver as pastas do RoundCube “seus problemas SE ACABARAM-SE”.
O bendito, em sua versão stable (quase 100% stable) está com uma linda opção em off (FALSE).

Na pasta …roundcube/config/main.inc.php (se for no ispconfig: /home/admispconfig/ispconfig/web/roundcubemail/config/main.inc.php)
Apresentará este array aqui:

// automatically create the above listed default folders on login
$rcmail_config['create_default_folders'] = FALSE;

Salve seu dia assim:

$rcmail_config['create_default_folders'] = TRUE;

Pronto :D

Roundcube fixed!

Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Could not use ‘(unknown)’; file already in use., SQL state S1000 in SQLConnect in

Friday, May 21st, 2010

Antemão estou quase chorando por estar usando access, mas como se diz: “Sábio é o que dança conforme a música manda!”.
Estou desenvolvendo ferramentas para automatizar algumas replicações de dados de uma empresa e estou usando php (tecnologia) + access (isso é um banco?)

Este erro é ocasionado pelo fato de existir um drive fechando a conexão (na realidade aberto e acaba bloqueando novas conexões), por exemplo o Access abrindo a bendita base de dados access (.MDB).

Garanta que nada esteja abrindo o access database.

Uma forma de ver que isto está ocorrendo é observar se na pasta aonde o banco de dados esteja, exemplo nerdblog.mdb contenha também um arquivo nerdblog.ldb.

Ao fechar o driver ele automaticamente removerá o arquivo .LDB.

:D

Lamp2: Ubuntu 10.04 APACHE 2 Mysql 5 PHP 5 phpmyadmin (lucid lynx)

Tuesday, May 4th, 2010

Boa noite ALL, é com muita alegria que informo:

Meu PC está com o Lucid Lynx (Ubuntu 10.4).
Este How to que preparei hoje vai ensinar como montar um ambiente de desenvolvimento web para aplicações php que utilizam-se do container apache e do banco de dados mysql.
Um ambiente LAMP2 (apache 2 mysql 5 php 5 e phpmyadmin) é fundamental para quem desenvolve e deseja testar sua app antes de envia-la para web, sem mais, vamos aos passos:

1 – Clique em Aplicativos->Acessórios->Terminal
2 – rode o comando: sudo apt-get install apache2
Este comando serve para instalar o apache 2.
A saída deste comando deverá ser semelhante a esta:

Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Os pacotes extra a seguir serão instalados:
apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
Pacotes sugeridos:
apache2-doc apache2-suexec apache2-suexec-custom
Os NOVOS pacotes a seguir serão instalados:
apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
0 pacotes atualizados, 9 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 3328kB de arquivos.
Depois desta operação, 10,1MB adicionais de espaço em disco serão usados.
Você quer continuar [S/n]? S
0% [Aguardando por cabeçalhos]
Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main libapr1 1.3.8-1build1 [116kB]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1 1.3.9+dfsg-3build1 [85,4kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-dbd-sqlite3 1.3.9+dfsg-3build1 [27,1kB]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-ldap 1.3.9+dfsg-3build1 [25,1kB]
Obter:5 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-bin 2.2.14-5ubuntu8 [2622kB]
Obter:6 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2-utils 2.2.14-5ubuntu8 [159kB]
Obter:7 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-common 2.2.14-5ubuntu8 [290kB]
Obter:8 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2-mpm-worker 2.2.14-5ubuntu8 [2364B]
Obter:9 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2 2.2.14-5ubuntu8 [1482B]
Baixados 3328kB em 40s (81,4kB/s)
Selecionando pacote previamente não selecionado libapr1.
(Lendo banco de dados … 148327 arquivos e diretórios atualmente instalados).
Desempacotando libapr1 (de …/libapr1_1.3.8-1build1_i386.deb) …
Selecionando pacote previamente não selecionado libaprutil1.
Desempacotando libaprutil1 (de …/libaprutil1_1.3.9+dfsg-3build1_i386.deb) …
Selecionando pacote previamente não selecionado libaprutil1-dbd-sqlite3.
Desempacotando libaprutil1-dbd-sqlite3 (de …/libaprutil1-dbd-sqlite3_1.3.9+dfsg-3build1_i386.deb) …
Selecionando pacote previamente não selecionado libaprutil1-ldap.
Desempacotando libaprutil1-ldap (de …/libaprutil1-ldap_1.3.9+dfsg-3build1_i386.deb) …
Selecionando pacote previamente não selecionado apache2.2-bin.
Desempacotando apache2.2-bin (de …/apache2.2-bin_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2-utils.
Desempacotando apache2-utils (de …/apache2-utils_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2.2-common.
Desempacotando apache2.2-common (de …/apache2.2-common_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2-mpm-worker.
Desempacotando apache2-mpm-worker (de …/apache2-mpm-worker_2.2.14-5ubuntu8_i386.deb) …
Selecionando pacote previamente não selecionado apache2.
Desempacotando apache2 (de …/apache2_2.2.14-5ubuntu8_i386.deb) …
Processando gatilhos para man-db …
Processando gatilhos para ufw …
Processando gatilhos para ureadahead …
ureadahead will be reprofiled on next reboot
Configurando libapr1 (1.3.8-1build1) …

Configurando libaprutil1 (1.3.9+dfsg-3build1) ...

Configurando libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3build1) ...
Configurando libaprutil1-ldap (1.3.9+dfsg-3build1) ...
Configurando apache2.2-bin (2.2.14-5ubuntu8) ...
Configurando apache2-utils (2.2.14-5ubuntu8) ...
Configurando apache2.2-common (2.2.14-5ubuntu8) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Enabling module reqtimeout.

Configurando apache2-mpm-worker (2.2.14-5ubuntu8) ...
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Configurando apache2 (2.2.14-5ubuntu8) ...

Processando gatilhos para libc-bin ...
ldconfig deferred processing now taking place

Ressalto que usei o gestor de pacotes e habilitei o suporte a pacotes instáveis e também o repositório partner (mais abaixo posto como fazer).

Ainda no console use o comando abaixo:

sudo apt-get install php5 libapache2-mod-php5
Isto servirá para instalar o php5 e ainda integra-lo como DSO no apache (como módulo).
A saída deste comando será semelhante a esta:

Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os pacotes extra a seguir serão instalados:
apache2-mpm-prefork php5-common
Pacotes sugeridos:
php-pear php5-suhosin
Os pacotes a seguir serão REMOVIDOS:
apache2-mpm-worker
Os NOVOS pacotes a seguir serão instalados:
apache2-mpm-prefork libapache2-mod-php5 php5 php5-common
0 pacotes atualizados, 4 pacotes novos instalados, 1 a serem removidos e 0 não atualizados.
É preciso baixar 3376kB de arquivos.
Depois desta operação, 8790kB adicionais de espaço em disco serão usados.
Você quer continuar [S/n]? S
Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main apache2-mpm-prefork 2.2.14-5ubuntu8 [2422B]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5-common 5.3.2-1ubuntu4.1 [541kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main libapache2-mod-php5 5.3.2-1ubuntu4.1 [2831kB]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5 5.3.2-1ubuntu4.1 [1114B]
Baixados 3376kB em 8s (389kB/s)
dpkg: apache2-mpm-worker: problemas de dependência, mas removendo assim mesmo conforme pedido:
apache2 depende de apache2-mpm-worker (= 2.2.14-5ubuntu8) | apache2-mpm-prefork (= 2.2.14-5ubuntu8) | apache2-mpm-event (= 2.2.14-5ubuntu8) | apache2-mpm-itk (= 2.2.14-5ubuntu8); porém:
Pacote apache2-mpm-worker está para ser removido.
Pacote apache2-mpm-prefork não está instalado.
Pacote apache2-mpm-event não está instalado.
Pacote apache2-mpm-itk não está instalado.
(Lendo banco de dados ... 148902 arquivos e diretórios atualmente instalados).
Removendo apache2-mpm-worker ...
* Stopping web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting [ OK ]
Selecionando pacote previamente não selecionado apache2-mpm-prefork.
(Lendo banco de dados ... 148895 arquivos e diretórios atualmente instalados).
Desempacotando apache2-mpm-prefork (de .../apache2-mpm-prefork_2.2.14-5ubuntu8_i386.deb) ...
Selecionando pacote previamente não selecionado php5-common.
Desempacotando php5-common (de .../php5-common_5.3.2-1ubuntu4.1_i386.deb) ...
Selecionando pacote previamente não selecionado libapache2-mod-php5.
Desempacotando libapache2-mod-php5 (de .../libapache2-mod-php5_5.3.2-1ubuntu4.1_i386.deb) ...
Selecionando pacote previamente não selecionado php5.
Desempacotando php5 (de .../php5_5.3.2-1ubuntu4.1_all.deb) ...
Configurando apache2-mpm-prefork (2.2.14-5ubuntu8) ...
* Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Configurando php5-common (5.3.2-1ubuntu4.1) ...
Configurando libapache2-mod-php5 (5.3.2-1ubuntu4.1) ...

Creating config file /etc/php5/apache2/php.ini with new version
* Reloading web server config apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Configurando php5 (5.3.2-1ubuntu4.1) ...

Já que estamos na metade do caminho o ideal seria dar um restart no apache para garantir que ele leu seu conf.
Use o comando:

sudo /etc/init.d/apache2 restart

A saída deverá ser parecida com:

* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Para garantir que o apache está interpretando códigos php (fazendo uso do interpretador como módulo) podemos editar um arquivo e testa-lo. use o comando abaixo:

sudo vi /var/www/index.php

Dentro deste arquivo informe:

echo 'nerdblog é 10';
?>

escreva : e depois escreva wq! e pressione enter, ficando algo como :wq! , você salvará o arquivo e sairá do vi.
Feito isto acesse o arquivo para ver se a mensagem nerdblog é 10 aparece, caso sim, sucesso total! Do contrário releia este manual!
Este teste pode ser feito em http://localhost/index.php

Para instalar o mysql como servidor de banco de dados devemos usar o seguinte comando:
sudo apt-get install mysql-server
A saída deste comando deverá assemelhar-se com:

Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-common 5.1.41-3ubuntu12 [97,1kB]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid/main libnet-daemon-perl 0.43-1 [46,9kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid/main libplrpc-perl 0.2020-2 [36,0kB]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid/main libdbi-perl 1.609-1build1 [798kB]
Obter:5 http://br.archive.ubuntu.com/ubuntu/ lucid/main libmysqlclient16 5.1.41-3ubuntu12 [1931kB]
Obter:6 http://br.archive.ubuntu.com/ubuntu/ lucid/main libdbd-mysql-perl 4.012-1ubuntu1 [135kB]
Obter:7 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-client-core-5.1 5.1.41-3ubuntu12 [176kB]
Obter:8 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-client-5.1 5.1.41-3ubuntu12 [8136kB]
Obter:9 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-server-core-5.1 5.1.41-3ubuntu12 [4711kB]
Obter:10 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-server-5.1 5.1.41-3ubuntu12 [7007kB]
Obter:11 http://br.archive.ubuntu.com/ubuntu/ lucid/main libhtml-template-perl 2.9-1 [65,8kB]
Obter:12 http://br.archive.ubuntu.com/ubuntu/ lucid/main mysql-server 5.1.41-3ubuntu12 [93,0kB]
Baixados 23,2MB em 1min 58s (196kB/s)
Pré-configurando pacotes ...
Selecionando pacote previamente não selecionado mysql-common.
(Lendo banco de dados ... 150463 arquivos e diretórios atualmente instalados).
Desempacotando mysql-common (de .../mysql-common_5.1.41-3ubuntu12_all.deb) ...
Selecionando pacote previamente não selecionado libnet-daemon-perl.
Desempacotando libnet-daemon-perl (de .../libnet-daemon-perl_0.43-1_all.deb) ...
Selecionando pacote previamente não selecionado libplrpc-perl.
Desempacotando libplrpc-perl (de .../libplrpc-perl_0.2020-2_all.deb) ...
Selecionando pacote previamente não selecionado libdbi-perl.
Desempacotando libdbi-perl (de .../libdbi-perl_1.609-1build1_i386.deb) ...
Selecionando pacote previamente não selecionado libmysqlclient16.
Desempacotando libmysqlclient16 (de .../libmysqlclient16_5.1.41-3ubuntu12_i386.deb) ...
Selecionando pacote previamente não selecionado libdbd-mysql-perl.
Desempacotando libdbd-mysql-perl (de .../libdbd-mysql-perl_4.012-1ubuntu1_i386.deb) ...
Selecionando pacote previamente não selecionado mysql-client-core-5.1.
Desempacotando mysql-client-core-5.1 (de .../mysql-client-core-5.1_5.1.41-3ubuntu12_i386.deb) ...
Selecionando pacote previamente não selecionado mysql-client-5.1.
Desempacotando mysql-client-5.1 (de .../mysql-client-5.1_5.1.41-3ubuntu12_i386.deb) ...
Selecionando pacote previamente não selecionado mysql-server-core-5.1.
Desempacotando mysql-server-core-5.1 (de .../mysql-server-core-5.1_5.1.41-3ubuntu12_i386.deb) ...
Processando gatilhos para man-db ...
Configurando mysql-common (5.1.41-3ubuntu12) ...
Selecionando pacote previamente não selecionado mysql-server-5.1.
(Lendo banco de dados ... 150828 arquivos e diretórios atualmente instalados).
Desempacotando mysql-server-5.1 (de .../mysql-server-5.1_5.1.41-3ubuntu12_i386.deb) ...
Selecionando pacote previamente não selecionado libhtml-template-perl.
Desempacotando libhtml-template-perl (de .../libhtml-template-perl_2.9-1_all.deb) ...
Selecionando pacote previamente não selecionado mysql-server.
Desempacotando mysql-server (de .../mysql-server_5.1.41-3ubuntu12_all.deb) ...
Processando gatilhos para ureadahead ...
Processando gatilhos para man-db ...
Configurando libnet-daemon-perl (0.43-1) ...
Configurando libplrpc-perl (0.2020-2) ...
Configurando libdbi-perl (1.609-1build1) ...
Configurando libmysqlclient16 (5.1.41-3ubuntu12) ...

Configurando libdbd-mysql-perl (4.012-1ubuntu1) ...
Configurando mysql-client-core-5.1 (5.1.41-3ubuntu12) ...
Configurando mysql-client-5.1 (5.1.41-3ubuntu12) ...
Configurando mysql-server-core-5.1 (5.1.41-3ubuntu12) ...
Configurando mysql-server-5.1 (5.1.41-3ubuntu12) ...
mysql start/running, process 4808

Configurando libhtml-template-perl (2.9-1) ...
Configurando mysql-server (5.1.41-3ubuntu12) ...
Processando gatilhos para libc-bin ...
ldconfig deferred processing now taking place

--
No meio desse esquema todo serão exibidas janelas que solicitarão a senha de administrador do mysql, semelhantes as imagens abaixo:

Outra tela:

Estas telas pedem para que você dê uma senha para o usuário root do mysql, escolha uma senha ao seu gosto e depois repita a mesma.

Agora iremos integrar o php + apache + mysql + phpmyadmin, para isto precisaremos usar o comando:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

A saída deste comando deverá ser algo mais ou menos parecido com isto aqui:

Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os pacotes extra a seguir serão instalados:
dbconfig-common javascript-common libjs-mootools libmcrypt4 libt1-5 php5-gd php5-mcrypt wwwconfig-common
Pacotes sugeridos:
libmcrypt-dev mcrypt postgresql-client apache apache-ssl
Os NOVOS pacotes a seguir serão instalados:
dbconfig-common javascript-common libapache2-mod-auth-mysql libjs-mootools libmcrypt4 libt1-5 php5-gd php5-mcrypt php5-mysql phpmyadmin wwwconfig-common
0 pacotes atualizados, 11 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 5404kB de arquivos.
Depois desta operação, 21,9MB adicionais de espaço em disco serão usados.
Você quer continuar [S/n]? S
Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/main dbconfig-common 1.8.44ubuntu1 [474kB]
Obter:2 http://br.archive.ubuntu.com/ubuntu/ lucid/universe wwwconfig-common 0.2.1 [22,8kB]
Obter:3 http://br.archive.ubuntu.com/ubuntu/ lucid/universe javascript-common 7 [3854B]
Obter:4 http://br.archive.ubuntu.com/ubuntu/ lucid/main libapache2-mod-auth-mysql 4.3.9-12ubuntu1 [25,6kB]
Obter:5 http://br.archive.ubuntu.com/ubuntu/ lucid/universe libjs-mootools 1.2.4.0~debian1-1 [248kB]
Obter:6 http://br.archive.ubuntu.com/ubuntu/ lucid/universe libmcrypt4 2.5.8-3.1 [76,1kB]
Obter:7 http://br.archive.ubuntu.com/ubuntu/ lucid/main libt1-5 5.1.2-3build1 [155kB]
Obter:8 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5-gd 5.3.2-1ubuntu4.1 [34,8kB]
Obter:9 http://br.archive.ubuntu.com/ubuntu/ lucid/universe php5-mcrypt 5.3.2-0ubuntu1 [15,2kB]
Obter:10 http://br.archive.ubuntu.com/ubuntu/ lucid-proposed/main php5-mysql 5.3.2-1ubuntu4.1 [64,2kB]
Obter:11 http://br.archive.ubuntu.com/ubuntu/ lucid/universe phpmyadmin 4:3.3.2-1 [4285kB]
Baixados 5404kB em 45s (118kB/s)
Pré-configurando pacotes ...
Selecionando pacote previamente não selecionado dbconfig-common.
(Lendo banco de dados ... 150920 arquivos e diretórios atualmente instalados).
Desempacotando dbconfig-common (de .../dbconfig-common_1.8.44ubuntu1_all.deb) ...
Selecionando pacote previamente não selecionado wwwconfig-common.
Desempacotando wwwconfig-common (de .../wwwconfig-common_0.2.1_all.deb) ...
Selecionando pacote previamente não selecionado javascript-common.
Desempacotando javascript-common (de .../javascript-common_7_all.deb) ...
Selecionando pacote previamente não selecionado libapache2-mod-auth-mysql.
Desempacotando libapache2-mod-auth-mysql (de .../libapache2-mod-auth-mysql_4.3.9-12ubuntu1_i386.deb) ...
Selecionando pacote previamente não selecionado libjs-mootools.
Desempacotando libjs-mootools (de .../libjs-mootools_1.2.4.0~debian1-1_all.deb) ...
Selecionando pacote previamente não selecionado libmcrypt4.
Desempacotando libmcrypt4 (de .../libmcrypt4_2.5.8-3.1_i386.deb) ...
Selecionando pacote previamente não selecionado libt1-5.
Desempacotando libt1-5 (de .../libt1-5_5.1.2-3build1_i386.deb) ...
Selecionando pacote previamente não selecionado php5-gd.
Desempacotando php5-gd (de .../php5-gd_5.3.2-1ubuntu4.1_i386.deb) ...
Selecionando pacote previamente não selecionado php5-mcrypt.
Desempacotando php5-mcrypt (de .../php5-mcrypt_5.3.2-0ubuntu1_i386.deb) ...
Selecionando pacote previamente não selecionado php5-mysql.
Desempacotando php5-mysql (de .../php5-mysql_5.3.2-1ubuntu4.1_i386.deb) ...
Selecionando pacote previamente não selecionado phpmyadmin.
Desempacotando phpmyadmin (de .../phpmyadmin_4%3a3.3.2-1_all.deb) ...
Processando gatilhos para man-db ...
Processando gatilhos para libapache2-mod-php5 ...
* Reloading web server config apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]
Processando gatilhos para doc-base ...
Processing 26 changed 1 added doc-base file(s)...
Registering documents with scrollkeeper...
Configurando dbconfig-common (1.8.44ubuntu1) ...

Creating config file /etc/dbconfig-common/config with new version

Configurando wwwconfig-common (0.2.1) ...
Configurando javascript-common (7) ...

Configurando libapache2-mod-auth-mysql (4.3.9-12ubuntu1) ...
Configurando libjs-mootools (1.2.4.0~debian1-1) ...
Configurando libmcrypt4 (2.5.8-3.1) ...

Configurando libt1-5 (5.1.2-3build1) ...

Configurando php5-gd (5.3.2-1ubuntu4.1) ...
Configurando php5-mcrypt (5.3.2-0ubuntu1) ...
Configurando php5-mysql (5.3.2-1ubuntu4.1) ...
Configurando phpmyadmin (4:3.3.2-1) ...
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf

Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version

Creating config file /etc/phpmyadmin/config-db.php with new version
granting access to database phpmyadmin for phpmyadmin@localhost: success.
verifying access for phpmyadmin@localhost: success.
creating database phpmyadmin: success.
verifying database phpmyadmin exists: success.
populating database via sql... done.
dbconfig-common: flushing administrative password
* Reloading web server config apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Processando gatilhos para libc-bin ...
ldconfig deferred processing now taking place

Neste meio tempo uma tela para escolher entre apache e lighttpd aparecerá, escolha apache. Veja:

Na primeira tela escolha OK e dê um tab para confirmar que aceita a opção.

A próxima tela pedirá uma senha de admin para o phpmyadmin, para isto defina algo seu. Veja a tela:

Costumo, após terminar uma instalação de integração como esta utilizar-me de lago, insira as seguintes linhas naquela página index.php usando sudo vim /var/www/index.php
Informe dentro dela o seguinte:

mysql_connect('localhost', 'root', 'suaSENHA') or die(mysql_error());
?>

Acesse http://localhost/index.php

Se nada ocorrer tudo está 100%.

Quando terminar use o comando:
sudo /etc/init.d/apache2 restart

Isto vai fazer o apache reler todos os confs.

Para concluir precisamos levar o phpmyadmin para a pasta web afim de que possamos editar nossos bds. Para isto precisamos copiar o phpmyadmin para dentro do /var/www usando o comando:

cp -rp /usr/share/phpmyadmin /var/www

Sendo assim, para acessar somente precisamos de um http://localhost/phpmyadmin

A parte interessante no quesito repositório vem de um how to bem interessante, veja:
http://www.howtoforge.com/the-perfect-desktop-ubuntu-10.04-lucid-lynx

Warning: Parameter 2 to frontpage() expected to be a reference

Monday, April 5th, 2010


Este é um problema que vem atormentando usuários joomla em suas versões 1.0.x (x são variantes). Isto pode ocorrer também pelo fato da versão do php estar sendo 5.3.x.
Para sanar este problema é necessário aplicar um patch substituindo 2 arquivos:

/includes/Cache/Lite/Function.php
#Resolve o valor de referência

/includes/vcard.class.php
#Resolve problemas com formulários.

O patch segue no link abaixo:
http://www.libphp.net/fix_joomla_10x_php_530.zip

Lista de funções para desabilitar em um ambiente CPANEL de Hospedagem de Sites compartilhada

Monday, April 5th, 2010


Bem, se você quer mais segurança em um ambiente compartilhado você precisará de ajustar seu php.ini global (/usr/local/lib/php.ini) em seu servidor de hospedagem compartilhada afim de prevenir ataques usando recursos avançados do php.

Como faremos isto?

Procure pela linha disable_functions =

e depois do ‘=’ aplique as seguintes funções:

dl, system, exec, shell_exec, chown, chgrp, escapeshellcmd, putenv, popen, pclose, passthru, proc_open, proc_get_status, proc_nice, proc_close, proc_terminate, posix_ctermid, posix_get_last_error, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix_getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_strerror, posix_times, posix_ttyname, posix_uname

Talvez você precisará do shell_exec para o caso do Fantástico Deluxe.
Avalie se vale a pena deixar esta função ativa e prossiga :D

post_max_size uma informação a mais na hora de aumentar o UPLOAD no php.ini

Wednesday, March 31st, 2010


Olá ALL,
As vezes erramos quando somente aumentamos diretivas do PHP visando upload, tais como:

max_execution_time,
upload_max_filesize,
e até mempory_limit.

Elas até que estão corretas, assim como max_execution_time, só que os forms que enviam dados (refiro-me a arquivos), fazem envio de arquivos pelo método post.
Sendo assim, se quisermos um upload de 96M em um servidor rodando php precisamos colocar no php.ini a informação de qual o tamanho máximo de envio de dados pelo POST.
A saída então seria:

post_max_size = 96M

Isto dentro do PHP.INI.

Pronto, após ajustes o apache deverá ser reiniciado.

Abraços galera!

Fatal error: Allowed memory size PHP

Saturday, March 13th, 2010

Esse erro é mais comum que feijão com arroz, mas para sanar este cara localize o php.ini do seu servidor e aumente o parâmetro

memory_limit = -1
(-1 indica uso infinito de memória)

Recomendo colocar algo simples como:

memory_limit = 32M

Reinicie o apache e tudo estará sanado -> service httpd restart (em caso de debian e afins /etc/init.d/apache2 restart)

Abraços.

Como corrigir automaticamente permissões inseguras em scripts e pastas de um domínio no linux/whm?

Sunday, February 28th, 2010

Rode os comandos como root:

find /home/*/public_html -type d -exec chmod 755 {} \;
find /home/*/public_html -type f -exec chmod 644 {} \;

Isto fará com que os arquivos possam receber permissões 644 e os diretórios 755.

Abraços.

Localização do PHP.INI em um servidor IIS com painel de controle parallels plesk windows

Thursday, January 28th, 2010

Opa galera, mantendo o rítimo de posts em alta, vamos lá.

Hoje me surgiu uma dúvida simples:

Aonde fica localizado o danado do php.ini em um windows server com painel de controle plesk?

Simples :P

C:\Program Files\Parallels\Plesk\Additional\PleskPHP5\php.ini

Colocando Timezone (corriginfo Timezone) para não se ferrar com horário de verão

Wednesday, October 21st, 2009

Entra no php.ini global do server (/usr/lib/php.ini) e informa isso:

date.timezone = America/Fortaleza

OU, caso a conta tenha um php.ini customizado informe isto acima e tudo ficará filé!

Abraços.

PHP 5.2.11 LIBERADO! Cpanel Já fez barulho quanto a isto hein!

Saturday, September 19th, 2009

Galera, para quem gosta de manter-se atualizado, a Zend (pai do php) lançou juntamente com a equipe de desenvolvimento o php 5.2.11. Vale a pena o update devido a quantidade de bugs corrigidos.

http://www.php.net

Para os usuários de cpanel o easyapache já está liberando disponibilizando junto ao whm, vide:
http://changelog.cpanel.net/?treeview=easyapache

embedded by Embedded Video

Download Video

PHP: Não tem dinheiro para “encriptar” seus scripts? Obfuscator já!

Tuesday, September 15th, 2009

Pois é, esta dica vai para quem está precisando poupar um cash mas gostaria de tornar mais difícil a leitura de seus scripts pelos “rippators tabajara” da web!
Isto mesmo, com o

PHP Obfuscator

Seus problemas acabaram!
Grátis e Open Source!

Segue o link do site:

http://www.raizlabs.com/software/phpobfuscator/

Problema na instalação ou Uso do IonCube no Plesk Linux

Sunday, May 3rd, 2009

Para localizar o problema com o IonCube no plesk basta rodar o comando abaixo:

grep -iR ioncube /etc/php*
/etc/php.d/ioncube.ini:zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_5.2.so
/etc/php.d/ioncube-loader.ini:zend_extension=/usr/lib/php/modules//php_ioncube_loader_lin_5.1.so

Pegue o segundo valor e comente ele, ou seja, vim /etc/php.d/ioncube-loader.ini e na linha coloca ; antes de tudo, isto deixará desabilitado.

Após use

php -v e verá que o seu plesk está ok.

Como fazer o seu script php solicitar autenticação usando header

Tuesday, April 28th, 2009

Uma das formas mais legais que se tem de fazer autenticação de diretório com caixa de diálogo no browser é usando a função header do php e mandando brasa!

Um exemplo prático para você:

function checker($user, $pw) {
if( ($user == “nome_do_login”) && ($pw == “password”) ) {
return true;
} else {
return false;
}
}

if( !(checker($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) ) {
header(‘WWW-Authenticate: Basic realm=”Autentique-se”‘);
header(‘HTTP/1.0 401 Unauthorized’);
echo “Dados incorretos.”;
exit;
}

É isso!

Estrutura de diretórios do Cpanel/WHM (arquivos fundamentais para uso normal)

Sunday, April 26th, 2009

Apache

/usr/local/apache
+ bin- apache binaries are stored here – httpd, apachectl, apxs

+ conf – configuration files – httpd.conf

+ cgi-bin

+ domlogs – domain log files are stored here

+ htdocs

+ include – header files

+ libexec – shared object (.so) files are stored here – libphp4.so,mod_rewrite.so

+ logs – apache logs – access_log, error_log, suexec_log

+ man – apache manual pages

+ proxy -

+ icons -

Cpanel script to restart apache – /scripts/restartsrv_httpd

Start httpd with ssl – /etc/init.d/httpd startssl

DNS – Named(Bind)

Program: /usr/sbin/named

Init Script: /etc/rc.d/init.d/named

/etc/named.conf

db records:/var/named/

/var/log/messages

Exim

Conf : /etc/exim.conf – exim main configuration file

/etc/localdomains – list of domains allowed to relay mail

Log : /var/log/exim_mainlog – incoming/outgoing mails are logged here

/var/log/exim_rejectlog – exim rejected mails are reported here

/var/log/exim_paniclog – exim errors are logged here

Mail queue: /var/spool/exim/input

Cpanel script to restart exim – /scripts/restartsrv_exim

Email forwarders and catchall address file – /etc/valiases/domainname.com

Email filters file – /etc/vfilters/domainname.com

POP user authentication file – /home/username/etc/domainname/passwd

catchall inbox – /home/username/mail/inbox

POP user inbox – /home/username/mail/domainname/popusername/inbox

POP user spambox – /home/username/mail/domainname/popusername/spam

Program : /usr/sbin/exim (suid – -rwsr-xr-x 1 root root )

Init Script: /etc/rc.d/init.d/exim

Mysql

Program : /usr/bin/mysql

Init Script : /etc/rc.d/init.d/mysql

Conf : /etc/my.cnf, /root/.my.cnf

Data directory – /var/lib/mysql – Where all databases are stored.

Database naming convention – username_dbname (eg: john_sales)

Permissions on databases – drwx 2 mysql mysql

Socket file – /var/lib/mysql/mysql.sock, /tmp/ mysql.sock

SSHD

Program :/usr/local/sbin/sshd

Init Script :/etc/rc.d/init.d/sshd

/etc/ssh/sshd_config

Log: /var/log/messages

ProFTPD

Program :/usr/sbin/proftpd

Init Script :/etc/rc.d/init.d/proftpd

Conf: /etc/proftpd.conf

Log: /var/log/messages, /var/log/xferlog

FTP accounts file – /etc/proftpd/username – all ftp accounts for the domain are listed here

Pure-FTPD

Program : /usr/sbin/pure-ftpd

Init Script :/etc/rc.d/init.d/pure-ftpd

Conf: /etc/pure-ftpd.conf

Anonymous ftp document root – /etc/pure-ftpd/ip-address

Perl

Program :/usr/bin/perl

Directory :/usr/lib/perl5/5.6.1/

PHP

Program :/usr/local/bin/php, /usr/bin/php

ini file: /usr/local/lib/php.ini – apache must be restarted after any change to this file

Cpanel

/usr/local/cpanel

+ 3rdparty/ – tools like fantastico, mailman files are located here

+ addons/ – AdvancedGuestBook, phpBB etc

+ base/ – phpmyadmin, squirrelmail, skins, webmail etc

+ bin/ – cpanel binaries

+ cgi-sys/ – cgi files like cgiemail, formmail.cgi, formmail.pl etc

+ logs/ – cpanel access log and error log

+ whostmgr/ – whm related files

WHM

/var/cpanel – whm files

+ bandwidth/ – rrd files of domains

+ username.accts – reseller accounts are listed in this files

+ packages – hosting packages are listed here

+ root.accts – root owned domains are listed here

+ suspended – suspended accounts are listed here

+ users/ – cpanel user file – theme, bwlimit, addon, parked, sub-domains all are listed in this files

+ zonetemplates/ – dns zone template files are taken from here

Important cpanel/whm files

/usr/local/apache/conf/httpd.conf – apache configuration file

/etc/exim.conf – mail server configuration file

/etc/named.conf – name server (named) configuration file

/etc/proftpd.conf – proftpd server configuration file

/etc/pure-ftpd.conf – pure-ftpd server configuration file

/etc/valiases/domainname – catchall and forwarders are set here

/etc/vfilters/domainname – email filters are set here

/etc/userdomains – all domains are listed here – addons, parked,subdomains along with their usernames

/etc/localdomains – exim related file – all domains should be listed here to be able to send mails

/var/cpanel/users/username – cpanel user file

/var/cpanel/cpanel.config – cpanel configuration file ( Tweak Settings )*

/etc/cpbackup-userskip.conf -

/etc/sysconfig/network – Networking Setup*

/etc/hosts -

/var/spool/exim -

/var/spool/cron -

/etc/resolv.conf – Networking Setup–> Resolver Configuration

/etc/nameserverips – Networking Setup–> Nameserver IPs ( FOr resellers togive their nameservers )

/var/cpanel/resellers – For addpkg, etc permissions for resellers.

/etc/chkserv.d – Main >> Service Configuration >> Service Manager *

/var/run/chkservd – Main >> Server Status >> Service Status *

/var/log/dcpumon – top log process

/root/cpanel3-skel – skel directory. Eg: public_ftp, public_html. (AccountFunctions–>Skeleton Directory )*

/etc/wwwacct.conf – account creation defaults file in WHM (Basic cPanel/WHMSetup)*

/etc/cpupdate.conf – Update Config *

/etc/cpbackup.conf – Configure Backup*

/etc/clamav.conf – clamav (antivirus configuration file )

/etc/my.cnf – mysql configuration file

/usr/local/Zend/etc/php.ini OR /usr/local/lib/php.ini – php configuration file

/etc/ips – ip addresses on the server (except the shared ip) (IP Functions–>Show IP Address Usage )*

/etc/ipaddrpool – ip addresses which are free

/etc/ips.dnsmaster – name server ips

/var/cpanel/Counters – To get the counter of each users.

/var/cpanel/bandwidth – To get bandwith usage of domains

Fonte: http://wirednless.com/2009/01/cpanel-directory-and-files/

Plesk 8 e Plesk 9 Como modificar páginas de erros personalizadas how to change customized error pages on plesk

Tuesday, March 24th, 2009

No meu blog littleoak eu fiz um how para isto:

http://littleoak.wordpress.com/2009/03/24/plesk-8-e-plesk-9-como-modificar-paginas-de-erros-personalizadas-how-to-change-customized-error-pages-on-plesk/

Evento: II encontro PHP-PB

Sunday, February 22nd, 2009

O que é?

O segundo encontro do grupo de desenvolvedores PHP da Paraíba tem como objetivo reunir os membros do grupo, estudantes e profissionais da área de TI para troca de conhecimentos na tecnologia PHP e relacionadas. O encontro contará com palestras e momentos de networking entre os participantes.

Se você não participou do primeiro enconto, veja como foi:

* Fotos
* Apresentações

Quando?

Dia 07 de Março de 2009, a partir das 8 da manhã na Unipê, localizada na BR-230, bairro Água Fria em João Pessoa.
Unipê

Quer patrocinar?

Faça já o download do nosso plano de patrocínio e entre em contato conosco!

Inscrições

A participação no evento é gratuita, porém é necessária a prévia inscrição e a doação de 1Kg de alimento não perecível no dia do evento.

A doação será repassada à Casa da Criança com Câncer, instituição filantrópica que dá apoio aos pacientes e familiares vindos do interior em busca de tratamento no Hospital do Câncer Napoleão Laureano.

Os membros inscritos e presentes no dia do evento concorrerão a diversos brindes como livros da editora O’Reilly, camisetas, um elePHPant de pelúcia e muito mais!

Já contamos com 378 inscritos no total, sendo 1 só nas últimas 24 horas!

Inscreva-se AQUI!

Fonte: http://www.nerdblog.info/2009/02/22/ii-encontro-php-pb/

II encontro PHP-PB

Sunday, February 22nd, 2009

O que é?

O segundo encontro do grupo de desenvolvedores PHP da Paraíba tem como objetivo reunir os membros do grupo, estudantes e profissionais da área de TI para troca de conhecimentos na tecnologia PHP e relacionadas. O encontro contará com palestras e momentos de networking entre os participantes.

Se você não participou do primeiro enconto, veja como foi:

* Fotos
* Apresentações

Quando?

Dia 07 de Março de 2009, a partir das 8 da manhã na Unipê, localizada na BR-230, bairro Água Fria em João Pessoa.
Unipê

Quer patrocinar?

Faça já o download do nosso plano de patrocínio e entre em contato conosco!

Inscrições

A participação no evento é gratuita, porém é necessária a prévia inscrição e a doação de 1Kg de alimento não perecível no dia do evento.

A doação será repassada à Casa da Criança com Câncer, instituição filantrópica que dá apoio aos pacientes e familiares vindos do interior em busca de tratamento no Hospital do Câncer Napoleão Laureano.

Os membros inscritos e presentes no dia do evento concorrerão a diversos brindes como livros da editora O’Reilly, camisetas, um elePHPant de pelúcia e muito mais!

Já contamos com 378 inscritos no total, sendo 1 só nas últimas 24 horas!

Inscreva-se AQUI!

Tutorial de segurança em aplicações PHP (parte 1)

Sunday, February 22nd, 2009

Estou anotando algumas dicas para aumentar a segurança em aplicações php (linguagem a qual programo).
Abaixo irei colocar algumas dicas sobre o que tenho aprendido, mas infelizmente de maneira resumida, definida como parte 1:

-alertas de erro -> Desabilitado (coisas como error_reporting(E_ALL);) – isto só pode ocorrer em um sistema no momento de testing.
-register_globals -> Desabilitado
-permissão ->dar o mínimo de privilégios possível no sistema, a nível
de bd e etc.
-variáveis ->setar vazios antes de atribuir strings.

Ex:

<?php

$busca = ”;

if (isset($_GET['busca']))

{

$busca = $_GET['busca'];

}

?>
- usar ssl para dados importantes, evitando exposição de dados.
- Forçar a segurança de maneira que não pese ao usuário,
se possível transparente. Ex: solicitar autenticação por medida de segurança para um transação importante de um cliente já autenticado no sistema.

- tomar sempre cuidado no ato de detecção de ataques, isso pode impedir a usabilidade do sistema.
- cuidados com interações em sistemas remotos (rss, apis remotas – web services).
- filtrar bem os dados (todos) que entram, para não operar com dados
maliciosos.

Filtrar dados é ler o que se entra por $ _GET e $ _POST e observar o que está malicioso e distinguir isto. (bem fácil de filtrar, ruim é identificar a origem)

Todas entradas têm de vir de uma fonte remota, se você não conhece as entradas, não pode se defender delas.

Entradas como $_SERVER exigem muito mais trabalho na hora da filtragem.
- A pior forma de filtrar é tentar manipular ao invés de tratar que o que é limpo é limpo e o que é sujo é sujo, do contrário, tentar manipular as informações poderá criar brechas.
Trecho que reforça a segurança quando um atacante tenta retroceder 1 diretório (ou mais):

<?php

$nomefile = $_POST['nomefile'];

while (strpos($_POST['nomefile'], ‘..’) !== FALSE)
{
$nomefile = str_replace(‘..’, ‘.’, $nomefile);
}

?>

Evidentemente, o basename() função pode substituir toda esta técnica e é uma maneira segura de atingir o objectivo pretendido. O ponto importante é que qualquer tentativa de corrigir Dados inválidos podem conter um erro e permitir a passagem de dados inválidos. Inspeção é uma alternativa muito mais seguro.

INSPECIONAR É MELHOR QUE CORRIGIR, quando se tenta corrigir geralmente se abre uma falha, o que é a real necessidade do atacante.

Se você consegue identificar com precisão e fidelidade a entrada dos dados você já fez quase tudo.
Após, o passo seguinte é criar um filtro fiel para distinguir dados ruins de dados bons.

sempre que for tratar dados o bom é criar um array vazio e atribuir dados a ele, que você realmente sabe que estão limpos.

<?php
$limpo = array( );
switch($_POST['cor']) {
case ‘vermelho’:
case ‘verde’:
case ‘azul’:
$limpo['cor'] = $_POST['cor'];
break;
}
?>

Estamos garantindo mais segurança por que a cor só pode ser uma das três e nada mais, neste caso!

você pode querer afirmar que um usuário só pode conter caracteres alfanuméricos:

<? php

$limpo = array ();

if (ctype_alnum ($ _POST [ 'user']))
(
$limpo[ 'user'] = $ _POST [ 'user'];
)

?>

Procure sempre usar funções nativas do php para segurança, isto pode lhe prevenir de problemas como erro de lógica, resultando assim em uma
brecha de segurança (o que um atacante necessita).

Para ajudar na segurança nos devemos:

Identificar saída,

Escapar saída,

Distinção entre escapara e não escapar dados .

É importante para escapar apenas dados filtrados. Embora escapar sozinho pode evitar muitas das vulnerabilidades de segurança, não deve nunca ser considerado como um substituto para a filtragem de entrada. Dados maliciosos devem ser filtrados primeiro e depois escapados.

Filtrar as entradas com htmlentities é melhor que htmlspecialchars, mas ambas são boas para converter o que vem da web, um exemplo legal é este aqui:

<?php
$htm = array( );
$htm['user'] = htmlentities($limpo['user'], ENT_QUOTES, ‘UTF-8′);
echo “<p>Olá, {$htm['user']}.</p>”; ?>

Isso garante a entrada de dados do user, e de tabela quebra a forma em que os dados vêm de maneira a traduzir caracteres “malucos” em html.

Devemos escapar todos os dados SIM, isto ajuda na segurança de sua aplicação.
htmlentities não converte caracteres alfanuméricos, mas previne que dados estranhos operem em interação do usuário com o sistema.

Outra política, voltando-se ao famoso e muito utilizado mysql é usar funções nativas para escapar entradas de dados para o banco de dados.
Usamos a função mysql_real_escape_string ().
Podemos usar também addslashes para ajudar na relação com o mysql, mas em última instância.

<?php $mysql = array( );

$mysql['username'] = mysql_real_escape_string($clean['username']);

$sql = “SELECT * FROM profile WHERE username = ‘{$mysql['username']}’”; $result = mysql_query($sql); ?>

Fonte -> http://phpsecurity.org/