[Dicas] Como subir sistema Joomla em Linux

Moderator: ariadneduvessa

Locked
lai32290
Joomla! Apprentice
Joomla! Apprentice
Posts: 5
Joined: Sun May 22, 2016 1:21 pm

[Dicas] Como subir sistema Joomla em Linux

Post by lai32290 » Sun Jun 19, 2016 2:42 am

Image

Olá pessoal!
Eu não sou ninja em Joomla e muito menos em Linux, mas eu estou lidando com eles atualmente.
Então estou aqui registrando e compartilhando com vocês sobre a dificuldade e solução que eu tive para subir o projeto Joomla em localhost.

somente para facilitar as explicações posteriores, o projeto vai chamar myJoomlaLocalhostost[/b] e os arquivos vão ficar na pasta: /home/lai/Documents/Projects/myJoomlaLocalhost

A minha instalação foi baseada na documentação oficial do Joomla, seguido neste link: https://docs.joomla.org/Nginx

Antes de tudo, vou esclarecer o meu ambiente de desenvolvimento, eu acho que isso ajuda bastante para pessoas do nivel de conhecimento igual eu:
  • OS: Linux ubuntu 14.04LTS 64-bit
    Web Server: nginx v1.4.6
    PHP: php5-fpm
    Banco de dados: Mysql v14.14
    Joomla: v3.5.1
Garanta que o seu nginx, php5-fpm e mysql estão instalado e funcionando na máquina.

Baixe o projeto Joomla no site oficial (http://www.joomla.org/), descompacta no /home/lai/Documents/Projects/myJoomlaLocalhost, ficando com seguinte estrutura:

Code: Select all

./myJoomlaLocalhost/
  ../
  administrator/
  cli/
  README.txt
  index.php
  etc, outros arquivos
Agora vamos criar um arquivo de configuração do nginx para novo projeto, o arquivo de configuração para projetos do nginx em Ubuntu fica no local /etc/nginx/sites-available/.

Crie um arquivo /etc/nginx/sites-available/my-joomla-localhost, e o conteúdo do arquivo fica QUASE igual da documentação oficial que estou seguindo.

Aqui esta meu arquivo de configuração, explico em seguida:

Code: Select all

server {
        listen 80;
        server_name my-joomla-localhost.dev;
        server_name_in_redirect off;
	# set client body size to 2M #
	client_max_body_size 200M;

        access_log /var/log/nginx/localhost.access_log;
        error_log /var/log/nginx/localhost.error_log info;

        root /usr/share/nginx/myjoomlalocalhost/;
        index index.php index.html index.htm default.html default.htm;
        # Support Clean (aka Search Engine Friendly) URLs
        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        # deny running scripts inside writable directories
        location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
                return 403;
                error_page 403 /403_error.html;
        }

	location ~ [^/]\.php(/|$) {
	    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
	    if (!-f $document_root$fastcgi_script_name) {
		return 404;
	    }

	    fastcgi_pass unix:/var/run/php5-fpm.sock;
	    fastcgi_index index.php;
	    include fastcgi_params;
	}

        # caching of files 
        location ~* \.(ico|pdf|flv)$ {
                expires 1y;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
                expires 14d;
        }

}

A diferença da configuração que tem, referente a documentação é:

Code: Select all

	location ~ [^/]\.php(/|$) {
	    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
	    if (!-f $document_root$fastcgi_script_name) {
		return 404;
	    }

	    fastcgi_pass unix:/var/run/php5-fpm.sock;
	    fastcgi_index index.php;
	    include fastcgi_params;
	}
que na verdade também esta sendo explicado em outro link que mostra sobre configuração de PHP e FastCGI para nginx (http://wiki.nginx.org/PHPFcgiExample).

O que deve prestar atenção sempre nessa configuração são:

Code: Select all

        server_name my-joomla-localhost.dev;
e

Code: Select all

        root /usr/share/nginx/myjoomlalocalhost/;
onde o server_name é o endereço do site, é necessário adicionar o mesmo endereço também no arquivo host (fica no /etc/hosts) do sistema, para que o sistema entender que está buscando uma página na própria máquina.

Adicionando seguinte linha no arquivo de host:

127.0.0.1 my-joomla-localhost.dev

E o root é o local onde fica os arquivos dos projetos, como devem ter percebido, não é o mesmo local onde eu tinha prometido acima.

Isso eu também não sei se é uma boa pratica, mas considero como um costume pessoal, de deixar o projeto em pastas pessoais e criar apenas um link de simbólico (Linux é lindo) para o local onde sera necessário, então é isso que faremos agora.

Criando link simbólico do projeto para o local da configuração:

Code: Select all

$ sudo ln -s /home/lai/Documents/Projects/myJoomlaLocalhost /usr/share/nginx/myjoomlalocalhost/
A ultima parte do processo que falta, é criar um link simbólico do arquivo da nossa configuração nginx para a pasta onde sera carregado automaticamente pelo nginx e ajustar a permissão dos arquivos do projeto para ser acessado pelo nginx e PHP:

Code: Select all

$ sudo ln -s /etc/nginx/sites-available/my-joomla-localhost /etc/nginx/sites-enabled/my-joomla-localhost
$ sudo chown www-data:lai -R /home/lai/Documents/Projects/myJoomlaLocalhost
Somente resta falar para nosso nginx recarregar as configurações:

Code: Select all

$ sudo service nginx reload
E pronto!! Entre com o navegador no endereço my-joomla-localhost.dev e estará prontinho para instalação!

Espero que tenha ajudado alguém com isso, ou no máximo eu devo me ajudar na próxima vez que eu esquecer o processo NOVAMENTE, como eu sempre digo para meus amigos, sou um peixe, esqueço tudo.

Sou iniciante tanto em Linux quanto em Joomla, qualquer coisa me corrijam, por favor.

 
 
Locked

Return to “Portuguese Forum”