Mostrando postagens com marcador apache. Mostrar todas as postagens
Mostrando postagens com marcador apache. Mostrar todas as postagens

quinta-feira, 7 de março de 2019

Using PHP 5.6 and PHP 7.0 on the same machine

Firstly, I'm using Linux Mint Debian Edition 3 (LMDE 3).

I installed this version of LMDE and the default PHP version is the 7.0, however I have legacy systems developed in PHP 5. So, I had to install the oldest version and I did this without uninstall the version 7.

See the steps!

I only managed to take these first steps as root, be careful!

root@lucio:~# apt install ca-certificates apt-transport-https
root@lucio:~# wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
root@lucio:~# echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

Now, you can use your login. 

root@lucio:~# exit


Install the PHP 5.6

lucio@lucio:~$ sudo apt update
lucio@lucio:~$ sudo apt install php5.6

Make sure that all necessary packages are installed.

lucio@lucio:~$ sudo apt install php5.6-cli php5.6-common php5.6-curl php5.6-mbstring php5.6-mysql php5.6-xml


You can see the versions like that:

lucio@lucio:~$ sudo update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php7.0   70        auto mode
  1            /usr/bin/php5.6   56        manual mode
  2            /usr/bin/php7.0   70        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

But if you change the version by this method, this will not affect apache, it will only affect the PHP client.

Switching between the versions

Now, I'm going to show how to switch between the versions.


First make sure that all PHP versions will be disable.

lucio@lucio:~$ sudo a2dismod php5.6 php7.0

Activate the desired version. 

lucio@lucio:~$ sudo a2enmod php5.6

And finally restart the apache service.

lucio@lucio:~$ sudo systemctl restart apache2





quinta-feira, 19 de maio de 2016

Apache + PHP + Virtual Host


Vi como grande vantagem vhosts em meus projetos PHP, sendo uma excelente forma de criar subdominios para cada projeto e evitar riscos de varreduras indesejadas a outros sistemas no diretório padrão do apache.
Suponhamos que o domínio para o sistema seja subdominio.dominio.com.br

Podemos usar o diretório padrão do apache ou outro, como por exemplo /srv/www, fique ao seu critério.

Estou tomando como base a estrutura de diretórios do Debian, sistema operacional que uso.

Em /var/www:

$ sudo mkdir subdominio.dominio.com.br 

Em /etc/apache2/sites-available:

$ sudo vim subdominio.conf 

Dentro de subdominio.conf cole:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
ServerName subdominio.dominio.com.br
        DocumentRoot /home/lucio/sites/subdominio.dominio.com.br
        <Directory /home/lucio/sites/subdominio.dominio.com.br/>
                Options Indexes FollowSymLinks MultiViews Includes ExecCGI
                AllowOverride All
                Order allow,deny
                allow from all
                Require all granted
            AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/subdominio.dominio.com.br.error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/subdominio.dominio.com.br.access.log combined
</VirtualHost>

Veja que coloquei em Document Root e Directory o seguinte diretório:
/home/lucio/sites/subdominio.dominio.com.br

Criei um diretório sites, e dentro dele crio links simbólicos das minhas vhosts. Isso é um capricho meu, apenas para organização. Fica como sugestão, mas caso não queira pode colocar o caminho real do projeto.


Após toda configuração, entre com os comandos:

$ sudo a2ensite subdominio.conf 
$ sudo service apache2 restart 


That's all folks!

quinta-feira, 17 de setembro de 2015

CodeIgniter - 404 Not Found error

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

Ao usar o CodeIgniter, você poderá se deparar com o erro 404, aonde a aplicação não consegue seguir a rota para acessar determinada url, mesmo estando com o seu .htaccess corretamente configurado. O problema está em permitir que o PHP possa usar as configurações no htaccess. Para isso, altere o diretiva AllowOverride que está presente no bloco de diretivas do Directory /var/www, veja:

<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
</Directory>

No caso acima, a minha configuração não permitia que as instruções do meu .htaccess pudessem ser usadas. Para corrigir isso apenas altere de None para All, na diretiva AllowOverride.

No Debian 7, essa configuração será alterada no arquivo /etc/apache2/sites-available/default, e após a alteração ficará na seguinte forma:

<Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

Feita a alteração, reinicie o apache:

$ sudo service apache2 restart

Dê F5 na sua aplicação e pronto!


Atualização - 30/07/2018


No LDME 2, que usa o Debian 8, o arquivo para a configuração é o /etc/apache2/apache2.conf .

terça-feira, 25 de agosto de 2015

Apache2 : Invalid command 'RewriteEngine'

Estou desenvolvendo um projeto em CodeIgniter, usando como plataforma o  LMDE 2 (Linux Mint Debian Edition 2), e tive um erro do Apache de comando errado de RewriteEngine, ou seja, uma regra que tenho no .htaccess não está sendo processado pelo Web Server.

Consultando o log:

$ sudo tail /var/log/apache2/error.log
[Tue Aug 25 17:18:07.674046 2015] [core:alert] [pid 15261] [client 127.0.0.1:34295] /var/www/html/cac/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

Para resolver isso, execute os seguintes comandos:

$ sudo a2enmod rewrite
$ sudo service apache2 restart

Dê F5 do seu browser e pronto!

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.