OwnCloud 2–Uma nuvem privada

O OwnCloud é basicamente um interface web para aceder a ficheiros num servidor, mas com muitas opções o que o tornam indicado para quem pretende ter acesso remotamente a ficheiros com a possibilidade de os partilhar tanto pelos utilizadores do sistema (LDAP, OpenID, etc…) como conceder acesso público.

Ainda não tive oportunidade de instalar o OwnCloud num servidor meu para poder opinar mais objectivamente, no entanto pelo demo disponível em demo.owncloud.org, parece-me muito bom.

Deixo aqui a dica para quem tiver necessidade de disponibilizar ficheiros na internet ou na intranet, de forma segura e adaptável. Como o OwnCloud é open-source escrito em PHP pode facilmente ser adaptado a necessidades mais especificas.

http://owncloud.org/

Windows IIS – Um método mais fácil

Enquanto procurava na internet uma forma de configurar o IIS 7.5 para suportar php, encontrei um site que já tinha falado aqui, onde existe um método simples de instalar o IIS e configurar o suporte para PHP, o método simplificado é fornecido por uma ferramenta da Microsoft que se chama Microsoft Web Plataform (referencia anterior).

Para instalar o IIS com esta ferramenta basta fazer download do software, abrir e seleccionar o que queremos instalar, é feita uma verificação dos pré-requisitos e caso estejam ok, a instalação prossegue.

Para activar o suporte a PHP, basta no dialogo inicial seleccionar a opção respectiva.

Microsoft Web Plataform

A Microsoft disponibiliza já há algum tempo uma espécie de wizard que instala um servidor web com vários extras, com o celebre processo de instalação “Next, Next…”.

Este wizard permite instalar de uma forma rápida e fácil os seguintes programas:

  • .NET Framework (ok, não é um programa!)
  • IIS já com algumas configurações e algumas extensões como por exemplo o IIS Media Services
  • SQL Server (Express com o SQL Server Management Studio Express)
  • Visual Web Developer (Um editor gráfico para ASP.NET suporta C# e VB.Net, se tiverem as versões express do C# ou VB.Net sem o Service pack 1 a instalação não prossegue!)
  • E mais…!

Para quem usa ou tem que usar Windows e precisa de uma ambiente de testes com suporte ás várias tecnologias web esta é uma das soluções.

O que me fez escrever este post não foi publicitar mais um produto Microsoft, mas sim o espanto ao ver que este wizard instala ou permite instalar suporte PHP no ISS, que para mim sempre foi sinónimo de caos (já o fiz várias vezes em cada uma delas surgiu um problema diferente, principalmente depois de mexer no php.ini). Além disto na instalação do PHP permite instalar também um driver para ligar o PHP ao SQL Server. Sim eu sei que esse driver já não é novo, mas nunca foi tão facil de instalar!

Além do referido existe uma lista de aplicações (Open-source!) que podem ser facilmente instaladas entre as quais o WordPress e o Drupal dois nomes que associamos imediatamente ao mundo do Open Source, e ao mundo do Linux, Apache, Php e Mysql…

Nos ultimos tempos tenho notado uma proximidade maior entre a Microsoft e o mundo Open-Source ou será só impressão minha? O que quererá isso dizer??

Já agora o link para o site da coisa é o seguinte Microsoft Web Plataform e a Galeria de Aplicações está aqui.

MD5 Hash Generator

Estamos quase no natal e o que é que me passa pela cabeça??

Encriptação de strings como não podia deixar de ser! 😉

Por vezes tenho necessidade de “traduzir” uma string para MD5, quase sempre pesquiso no Google e encontro vários resultados mas pelas mais variadas razões os resultados ás vezes não são pretendidos. Para facilitar a minha vida criei uma página simples que gera uma hash md5 da string introduzida como penso que pode ser útil para mais pessoas disponibilizo a mesma a quem a quiser usar (MD5 Hasher) é hash retornada é obtida através da função standard do PHP md5.

Aproveitei para aprender um bocado de AJAX, creio que o resultado ficou interessante e ao mesmo tempo simples de usar!!!

PHP init_set o que é??

As configurações do php independentemente da plataforma em que corre são por defeito feitas num ficheiro que se chama php.ini , quem precisa de alterar uma das confiurações para um script especifico ou não tem acesso a editar o php.ini pode contornar isso usando a função init_set a sintaxe é a seguinte:

init_set (“Nome_Parametro”, “Valor_parametro”);

Esta função retorna false no caso de por alguma razão o parâmetro não ter sido alterado e retorna o valor antigo no caso da alteração ter sido bem sucedida!

Se por exemplo quisermos alterar o limite de memoria alocável podemos usar o init_set da seguinte forma:

ini_set(“memory_limit”,”64M”;

Nem todas os parâmetros do php.ini são alteráveis, não encontrei nenhuma lista dos parâmetros alteráveis, mas é fácil quando usarem esta função se a sintaxe estiver correcta e se o valor do parâmetro for válido e mesmo assim a função retornar false é porque provavelmente descobriram um parâmetro não editável em runtime!

PHP Geoip – Fatal error: Allowed memory size of…

Para aqueles que estão a usar o código que disponibilizei neste post sobre a API do GeoIP, ou que usam o GeoIP de qualquer outra forma!

Hoje uma das aplicações em PHP que fiz utilizando a API do GeoIP, começou a dar um erro “Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 27609379 bytes) in /path_para_o_site/my-ip-info/geoipapi/geoip.inc.php on line 316

A primeira coisa que fiz foi tentar com o init_set do PHP aumentar o “memory_limit” do PHP (ini_set(“memory_limit”,”64M”);) que não deu resultado apesar do valor a alocar fosse bastante mais baixo do que o limite.

Após vários testes falhados alterei um parametro na linha em que crio o apontador para a base de dados e ficou a funcionar correctamente! Na linha onde estava “$gcity = geoip_open(“db/GeoLiteCity.dat”,GEOIP_MEMORY_CACHE);” passou a estar “$gcity = geoip_open(“db/GeoLiteCity.dat”,none);” ficou a funcionar embora se note uma pequena perda de velocidade quase imperceptivel mas está mais lento!

Depois de o problema estar resolvido fui ao site da MaxMind dar uma vista de olhos e encontrei um benchmark dos diferentes tipos de cache que se pode ter e qual o numero de queries/segundo conforme o tipo de cache!