quarta-feira, 24 de junho de 2015

Phalcon PHP htaccess não funciona

Linux: Debian 7
Apache: 2.4.10 (Debian)
PHP: 5.6.9-0+deb8u1


Em minha empreitada com o framework Phalcon, esbarrei no problema do .htaccess da raiz do projeto não encaminhar a requisição para o public/index.php. Mesmo com o .htaccess na raiz do projeto, não funcionava. 
O problema estava no /etc/apache2/apache2.conf. Abra esse arquivo e certifique-se de que a diretiva AllowOverride esteja com o valor All e não None.

Segue o trecho de como está agora a configuração do meu apache2.conf:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Altere o arquivo e reinicie o apache, que no Debian você faz com o comando:

$ sudo service apache2 restart

Alterando a diretiva AllowOverride para All, permitirá que o apache2 possa ler as diretivas programadas nos arquivos .htaccess e substitua-as das diretivas programadas anteriormente. 


undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0

Linux: Debian 7
Apache: 2.4.10 (Debian)
PHP: 5.6.9-0+deb8u1

A alguns dias iniciei meus estudos com o framework Phalcon PHP. De antemão já o achei prático e com uma estrutura simplista. Contudo, tive alguns problemas na instalação. 
O Phalcon PHP não é como os outros frameworks para PHP, o qual é só copiar a colar e sair programando. Com o Phalcon é necessário instalar e preparar o PHP da máquina para usar sua SO.
O problema que tive foi por conta de uma gafe que cometi por não seguir a risca as instruções do site do framework.


Fiz a besteira de colocar a instrução extension=phalcon.so dentro do /etc/php5/cli/php.ini. Se você fez isso, tire a instrução, certifique-se de que o diretório /etc/php5/apache2/conf.d esteja com o arquivo 50-phalcon.ini e dentro dele a instrução extension=phalcon.so

Veja a estrutura do meu diretório:

lucio@lucio:/etc/php5/apache2/conf.d$ ll
total 12
drwxr-xr-x 2 root root 4096 Jun 24 10:21 .
drwxr-xr-x 3 root root 4096 Jun 23 16:44 ..
lrwxrwxrwx 1 root root   32 Jun 22 16:16 05-opcache.ini -> ../../mods-available/opcache.ini
lrwxrwxrwx 1 root root   28 Jun 22 16:16 10-pdo.ini -> ../../mods-available/pdo.ini
lrwxrwxrwx 1 root root   29 Jun 22 16:16 20-json.ini -> ../../mods-available/json.ini
lrwxrwxrwx 1 root root   31 Jun 22 16:19 20-mysqli.ini -> ../../mods-available/mysqli.ini
lrwxrwxrwx 1 root root   30 Jun 22 16:19 20-mysql.ini -> ../../mods-available/mysql.ini
lrwxrwxrwx 1 root root   34 Jun 22 16:19 20-pdo_mysql.ini -> ../../mods-available/pdo_mysql.ini
lrwxrwxrwx 1 root root   33 Jun 22 16:16 20-readline.ini -> ../../mods-available/readline.ini
-rwxrwxrwx 1 root root   76 Jun 23 16:45 50-phalcon.ini

Certifique-se de que o número antes de phalcon.ini seja maior do que o número do arquivo pdo_mysql.ini - 50 > 20.

lucio@lucio:/etc/php5/apache2/conf.d$ cat 50-phalcon.ini 
extension=phalcon.so

Pronto, agora seu PHP funciona perfeitamente com o a extensão do Phalcon PHP.