Diferencia entre revisiones de «DRUPAL Instalación»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 443: Línea 443:
  
 
* [https://es.wikipedia.org/wiki/Git Git] é un software de control de versións.
 
* [https://es.wikipedia.org/wiki/Git Git] é un software de control de versións.
 +
: Podedes descargar o software para as diferentes plataformas [https://git-scm.com/downloads neste enlace].
 +
  
 
* Permite ter na 'nube' diferentes versións de proxectos sobre os que se fan modificacións no seus arquivos
 
* Permite ter na 'nube' diferentes versións de proxectos sobre os que se fan modificacións no seus arquivos
Línea 448: Línea 450:
  
 
* Tamén permite facer traballo colaborativo entre diferentes persoais traballando á vez sobre o mesmo proxecto.
 
* Tamén permite facer traballo colaborativo entre diferentes persoais traballando á vez sobre o mesmo proxecto.
 +
 +
* Nos o imos utilizar para gardar versións de Drupal antes de instalar novos módulos ou funcionalidades por se temos que volver a atrás en caso de problemas.
 +
  
 
* Para instalalo temos que executar a seguinte orde dende unha consola ou terminal:
 
* Para instalalo temos que executar a seguinte orde dende unha consola ou terminal:
−
::<syntaxhighlight lang="java" line enclose="div" highlight="1" >
+
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
apt-get install git
 +
</syntaxhighlight>
 +
 
 +
 
 +
* Unha vez instalado temos que crear un repositorio. Isto ven ser o lugar onde imos gardas as diferentes versións do Drupal.
 +
 
 +
* Para inicialo temos que '''situarnos no raíz do sitio web de drupal''', no noso caso: /var/www/html/drupal e executar a seguinte orde:
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git init
 +
</syntaxhighlight>
 +
 
 +
: Obteremos o seguinte resultado:
 +
[[Imagen:Drupal_instalacion_git_1.jpg|300px|center]]
 +
 
 +
: Creouse un novo cartafol: /var/www/html/drupal/.git
 +
 
 +
* Para o seu funcionamento, git debe ter rexistrado unha conta de correo e un nome de usuario. Podemos ter o mesmo para todos os proxectos ou podemos especificar nomes diferentes.
 +
: No noso caso, as ordes son:
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git config --global user.name "O teu nome"
 +
git config --global user.email oteucorreo@prueba.es
 +
</syntaxhighlight>
 +
 
 +
 
 +
* Agora debemos engadir os arquivos ao repositorio. Agora mesmo está baleiro, polo que immos engadir todos os arquivo do cartafol drupal (escribide o punto despois do parámetro -A):
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git add -A .
 +
</syntaxhighlight>
 +
 
 +
* Agora podemos ver os arquivos 'engadidos' ao repositorio:
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git status
 +
</syntaxhighlight>
 +
 
 +
: Fixarse que saen todos os arquivos de Drupal, pero estes arquivos non están CONFIRMADOS. En gir, ata que non se confirmen non son 'subidos' á nube.
 +
 
 +
: '''É importante lembrar que ata non se faga un commit dos arquivos (confirmación) estes non serán gardados realmente e non poderemos ir atrás no estado de Drupal.
 +
 
 +
* Para confirmar os arquivos executaremos a seguinte orde:
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git commit -m "Drupal acabado de instalar"
 +
</syntaxhighlight>
 +
 
 +
 
 +
: Se agora facemos un git status indicará que non hai nada novo que confirmar:
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git status
 +
</syntaxhighlight>
 +
 
 +
: Resultado
 +
[[Imagen:Drupal_instalacion_git_2.jpg|300px|center]]
 +
 
 +
 
 +
=== Recuperando un estado anterior ===
 +
 
 +
* Crear un novo arquivo dentro do sitio web de Drupal. No exemplo eu vou crear un de nome 'proba.txt'.
 +
 
 +
: Se agora executades a orde '''git status''' podedes observar como informa de que hai un arquivo modificado:
 +
 
 +
[[Imagen:Drupal_instalacion_git_3.jpg|300px|center]]
 +
 
 +
* Agora imos engadir dito arquivo ao repositorio, como fixemos antes:
 +
 
 +
 
 +
* Imos ver agora como podemos restaurar o sitio web Drupal a un estado anterior.
 +
 
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git add proba.txt
 +
</syntaxhighlight>
 +
 
 +
: <u>Nota:</u> Podemos engadir todos os arquivos de ves có parámetro -A como fixemos ao principio.
 +
 
 +
: Se agora facemos un '''git status''' veremos que indica que hai que confirmar un novo arquivo:
 +
 
 +
[[Imagen:Drupal_instalacion_git_4.jpg|300px|center]]
 +
 
 +
 
 +
* Para confirmar o arquivo volveremos a executar a orde commit:
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git commit -m "Drupal acabado de instalar cun arquivo (proba.txt) novo"
 +
</syntaxhighlight>
 +
 
  
 +
* Cambiade o contido do arquivo e volvede a facer un add e un commit.
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git commit -m "Drupal acabado de instalar cun arquivo (proba.txt) novo e modificado"
 
</syntaxhighlight>  
 
</syntaxhighlight>  
 +
 +
 +
* Se agora executamos a orde: '''git log''' veremos os commit realizados cun ID que os identifica.
 +
[[Imagen:Drupal_instalacion_git_5.jpg|300px|center]]
 +
 +
 +
* Para 'revertir' o estado a un anterior só temos que anotar o ID do estado ao que queremos volver e executar a orde:
 +
::<syntaxhighlight lang="java" line enclose="div" highlight="" >
 +
git revert id_copiado
 +
</syntaxhighlight>
 +
 +
 +
 +
 +
  
  

Revisión del 10:01 21 sep 2016

Instalación do Lampp

  • É a versión Linux dun paquete denominado XAMPP.
  • Unha vez instalado teremos de vez: Servidor Web Apache, servidor de base de datos Mysql, PHP e Perl.
  • Recomendo instalar separadamente ditos programas xa que pode dar problemas coas versións do PHP.
  • Para instalalo teremos que:
  1. Descargar a versión que nos interese dende este enlace.
  2. Descomprimir o arquivo baixado coa orde: sudo tar xvfz xampp-linux-1.8.0.tar.gz -C /opt.
  • Unha vez descargado podemos iniciar Lampp (inicia o servidor web e o mysql) coa orde: sudo /opt/lampp/lampp start.


  • Se queremos ver o estado dos servidores podemos executar a orde: sudo /opt/lampp/manager-linux-x64.run &.
Aparecerá a seguinte pantalla onde debemos ter iniciados os servizos de Apache e Mysql.
Drupal instalacion mysql 1.jpg

Instalación do Apache


  • Nunha consola de comandos executaremos:
1 sudo apt-get update
2 sudo apt-get install apache2


  • Unha vez instalado aparecerá a seguinte pantalla se no navegador de Internet escribimos na URL: http://localhost.
Drupal instalacion apache 1.jpg
  • Por defecto apache vai buscar as páxinas que se atopan no cartafol: /var/www/html.


Instalación e configuración do Mysql

Instalación

  • Executaremos as seguintes ordes nun terminal:
1 sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
  • Aparecerá unha pantalla onde se nos solicita o password que terá o usuario 'root'. Lembrade escoller un password complexo.
Drupal instalacion mysql 9.jpg


  • Agora debemos activar o mysql coa orde:
1 sudo mysql_install_db
  • Executaremos un script de setup coa orde;
1 sudo /usr/bin/mysql_secure_installation
Preguntará:
Pola contrasinal do usuario root (introducida anteriormente): A escribiremos.
Change the root password? [Y/n]: Se queremos cambiar o password de root: premeremos 'no'.
Remove anonymous users? [Y/n]: Se queremos eliminar o acceso anónimo ao Mysql: Contestaremos que si (y).
Disallow root login remotely?: Contestar y.
Reload privilege tables now? [Y/n]: Contestar y.



Instalación do frontend MysqlWorkBech


  • O MysqlWorkBench é unha ferramenta gráfica que vai permitir xestionar o Mysql así como as súas bases de datos.
  • Para instalalo escribiremos a seguinte orden dende un terminal: sudo apt-get install mysql-workbench
  • Ao facelo teremos un novo programa como amosa a seguinte imaxe (tamén podemos invocalo dende o terminal escribindo: sudo mysql-workbench):
Drupal instalacion mysql 10.jpg


  • Para poder utilizalo teremos que crear unha conexión ao servidor Mysql instalado previamente. Para iso seguiremos os seguintes pasos:




Configuración

  • Cando instalemos o Drupal, este vai facer uso dunha base de datos. Imos crear dita base de datos e un usuario que teña permisos sobre dita base de datos.

Con XAMPP => MysqlQueryBrowser


Con MysqlWorkBench

  • Faremos os seguintes pasos para crear unha base de datos en Mysql e un usuario con acceso a mesma.
  • Isto o necesitará Drupal para poder funcionar. Deixado por tanto anotados o nome de usuario, password e noma da base de datos (schema).



Instalación do PHP

  • Para instalar o PHP escribiremos o seguinte nunha consola:
1 sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
  • Actualizaremos o arquivo dir.conf e engadiremos index.php ao principio:
sudo nano /etc/apache2/mods-enabled/dir.conf
1 <IfModule mod_dir.c>
2         DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
3 </IfModule>


  • Para comprobar se está ben instalado podemos crear un arquivo: /var/www/html/index.php
1 <?php
2 phpInfo();
3 ?>
E cargar a páxina dende o navegador escribindo na URL: http://localhost/index.php.
Obteremos o seguinte:
Drupal instalacion php 1.jpg

Módulos en PHP

  • Php ten a posibilidade de instalar 'módulos' para ampliar as súas funcionalidades.
  • Para obter a lista de módulos: sudo apt-cache search php5-
  • Para instalar un dos módulos da lista: sudo apt-get install nome_do_modulo


  • No noso caso é necesario instalar o módulo php5-gd. Escribiremos o seguinte código:
1 sudo apt-get install php5-gd
2 sudo service apache2 restart

Instalación do Drupal

Pasos previos

  • Primeiro debemos descargar a versión do drupal que queiramos.
  • Unha vez descargada a descomprimimos:
  • Graficamente, premendo dúas veces e descomprimíndoa.
  • Dende consola coa orde: tar -zxvf drupal-8.1.8.tar.gz
  • Onde se move o cartafol descomprimido do drupal.
  • Se estamos a utilizar xampp deberemos movelo ao cartafol /opt/lampp/htdocs/
  • Se estamos a utilizar un servidor web (como apache) deberemos movelo ao cartafol onde cargue os sitios web. No noso caso será: /var/www/html/.
Notas::
  • Cando se descomprime, normalmente teremos o nome 'drupal-8.1.8'. Podemos cambiarlle o nome a ese cartafol por 'drupal' pois despois o usaremos na URL do navegador.
  • O máis lóxico é que se implantades unha solución 'real' de Drupal teredes un dominio contratado. O recomendable é que o dominio apunte directamente a Drupal sen ter cartafoles polo medio.
Así, o dominio http://www.meudominio.es debería apuntar a /var/www/html/drupal
Existen formas (as empresas de aloxamento o permiten) de facer que un subdominio apunte a outro cartafol, así poderíamos ter:
http://www.meudominio.es => /var/www/html/WEB
http://www.meudominio.es/tenda => /var/www/html/DRUPAL (neste caso poderíamos ter unha tenda virtual configurada con Drupal).


  • Neste curso imos facelo sobre un cartafol dentro do sitio web, de forma que, se tivésemos un dominio:
http://www.meudomonio.es => /var/www/html
http://www.meudomonio.es/drupal => /var/www/html/drupal (cartafol dentro do dominio).
Esta opción non é recomendable.


  • Copia do arquivo de configuración.
  • Drupal necesita un arquivo de configuración de nome settings.php que se atopa no cartafol do drupal/sites/default (en xampp sería /opt/lampp/htdocs/drupal/sites/default e en apache /var/www/html/drupal/sites/default).
  • Deberemos copiar o arquivo default.settings.php que se atopa nese cartafol e copialo có nome settings.php.
  • Deberemos cambiar os permisos do arquivo settings.php para que poida ser modificado. En Linux, poñeremos: chmod 777 settings.php
Nota: Este arquivo é moi importante xa que nel se garda non só parámetros de configuración do propio Drupal, se non o usuario, password e nome da base de datos Mysql. Cando se remate a instalación se indicará a necesidade de cambiar os permisos para que ninguén poida obter información do arquivo.
  • Arquivos do idioma español.
  • Durante a instalación podemos facer a instalación no idioma español. Será necesario ter creados uns cartafoles que por defecto non veñen.
  • Crear o cartafol /cartafol_drupal/sites/default/files e darlle permisos de escritura chmod 2740 /cartafol_drupal/sites/default/files (có 2 facemos que os novos arquivos terán os permisos indicados).
  • Crear o cartafol /cartafol_drupal/sites/default/files/translations.


  • Cambiando os permisos.
  • Se o fixemos graficamente, o dono dos arquivos será o teu usuario, e se o fixeches dende consola será root (se usaches a orde sudo).
  • Imos cambiar o dono para que sexa o usuario que utiliza o apache para conectarse. Este é www-data (noutras distribucións teriades que identificar con que usuario se conecta) .
  • Dende unha consola e con permisos sudo, executamos a orde: chown -R www-data:www-data /drupal sendo 'drupal' o cartafol onde se atopa drupal.


  • Para saber o nome do usuario do servidor web Apache podemos escribir o seguinte nun terminal:
1 ps aux  |grep apache # para Apache 2.x
2 ps aux  |grep httpd # para Apache 1.x
Como salida teremos algo parecido a isto:
Drupal instalacion 25.jpg



  • Extensión de PHP para mellorar o tempo de xeración das páxinas php.
  • En Lampp: Temos que editar o arquivo php.ini (se atopa en /opt/lampp/etc/php.ini) e engadir (ou descomentar a liña no caso de XAMPP): zend_extension=opcache.so.
  • En apache: Debemos editar o arquivo /etc/php5/apache2/php.ini e cambiar o seguinte código;
1 ::[opcache]
2 ; Determines if Zend OPCache is enabled
3 ;opcache.enable=0
Por
1 ::[opcache]
2 ; Determines if Zend OPCache is enabled
3 opcache.enable=1


  • Despois deberemos reiniciar o servidor apache para que colla a nova configuración coa orde: sudo service apache2 restart


  • Activación do módulo mod_rewrite cunha instalación Apache (non Lampp).


  • Para activalo deberemos escribir o seguinte (se estamos nun servidor compartido seguramente o módulo xa estará activo):
1 sudo a2enmod rewrite
2 sudo service apache2 restart
Agora debemos indicar ao servidor Web que substitúa as URL por un formato máis amigable.
  • No servidor Web deberá estar indicada a directiva que indica que se utilice o que estea posto no arquivo .htaccess do Drupal. No noso caso o indicaremos coas seguintes liñas (non servidor compartido xa estaría feito):
* Editamos o arquivo /etc/apache2/sites-available/000-default.conf
Escribimos o seguinte código:
1 ....
2 </VirtualHost>
3 
4 <Directory /var/www/html>
5   Options Indexes FollowSymLinks
6   AllowOverride All
7 </Directory>

Instalación

Comprobacións trala instalación

  • NOTA: Esta sección está asociada á realización do EXERCICIO 1.


  • Unha vez entramos no drupal có usuario administrador (creado durante a instalación).


  • Para solucionalo deberemos editar o arquivo de configuración de drupal (que se atopa no cartafol do drupal/sites/default (en xampp sería /opt/lampp/htdocs/drupal/sites/default).
Unha vez editado ao final do arquivo poñeremos as seguintes liñas:
1 $settings['trusted_host_patterns'] = array(
2   '^www\.example\.com$',
3 );
Onde deberemos substituír www.example.com polo noso dominio. Respetada os caracteres '\' entre cada parte do dominio e o '$' no que acaba.
No caso de estar a desenvolver localmente podemos substituír o dominio pola cadea localhost: '^localhost$',


Unha vez cambiado podemos ir outra vez a o Informe de Estado e comprobar como xa non temos ningún indicador de perigo.
Drupal instalacion 12.jpg


Modificando a directiva RewriteBase

  • O servidor web Apache 'apunta' a un determinado cartafol do disco duro. Así, por defecto, cando escribimos na URL do navegador 'http://meusitio.es' estaremos 'apuntando' a '/var/www/' (antes de Ubuntu 14.04) ou '/var/www/html/' (Ubuntu 14.04 e posteriores).
  • Se instalamos Drupal dentro do cartafol /var/www/html/drupal deberemos modificar o arquivo /drupal/.htaccess e descomentar a seguinte liña:RewriteBase /drupal (quitar #), sendo '/drupal' o cartafol onde estamos instalando Drupal.
  • Se usamos un alias de Apache da forma: 'http://meusitio.es/alias' deberemos facer o indicado anteriormente: RewriteBase /alias
  • Se levamos o drupal ao raíz do sitio web, entón podemos poñer: RewriteBase /


  • No noso caso:
  • Modificamos agora o arquivo /var/www/html/drupal/.htaccess e descomentamos a liña indicada:
1   # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
2   # VirtualDocumentRoot and the rewrite rules are not working properly.
3   # For example if your site is at http://example.com/drupal uncomment and
4   # modify the following line:
5   RewriteBase /drupal
Sendo /drupal o cartafol onde está instalado Drupal no servidor web (/var/www/html/).
  • Reiniciamos o servidor Apache: sudo service apache2 restart

Configuración de permisos nos cartafoles de Drupal

  • NOTA: Esta sección está asociada á realización dun EXERCICIO.



  • Se non temos asinados uns permisos adecuados a nivel de cartafol e de arquivos, podemos ter múltiples buratos de seguridade no noso sitio.
  • Como vimos anteriormente, o arquivo '/sites/default/settings.php' debería ter o permiso 444=>rrr (podería ter 440=>r-- se sabemos que o servidor web (no noso caso apache nun Linux con Ubuntu) usa como usuario (no noso caso www-data) un que é propietario do arquivo installation.php).
  • O resto de cartafoles e arquivos debería ter permisos de lectura pero non de escritura.
Como norma xeral, poderíamos dicir que os cartafoles debería ter permisos 755 e os arquivos permisos 644, quitando as excepcións do cartafol /drupal/sites/default/files e o arquivo de configuración /drupal/sites/default/installation.php.
  • find /drupal/ ! -type d -exec chmod 644 {} \;
  • find /drupal/ -type d -exec chmod 755 {} \;
Nota: Estes permisos xa deberían estar postos por defecto. Se os aplicades teredes que cambiar os permisos nas excepcións comentadas anteriormente.


  • Para non ter que facer a comprobación manualmente podemos facer uso dun módulo que verifique que os permisos sexan os correctos. A continuación amosamos dous módulos de exemplo.



  • Un posible script para cambiar os permisos de Drupal para que sexa totalmente seguro (isto o faríamos unha vez teñamos o Drupal funcionando e sen necesidade de cambiar nin instalar nada máis):
1 cd /RUTA_INSTALACION_DRUPAL/ -------------------(A CAMBIAR)------------------------
2 chown -R www-data:www-data *
3 find . ! -type d -exec chmod 444 {} \;
4 find . -type d -exec chmod 555 {} \;
5 
6 
7 chmod -R 2740 sites/default/files
8 chmod 440 sites/default/settings.php
9 find . -name .htaccess -exec chmod 444 {} \;


  • Se imos a estar traballando e instalando novas funcionalidades poderíamos aplicar este script:
1 cd /RUTA_INSTALACION_DRUPAL/ -------------------(A CAMBIAR)------------------------
2 chown -R www-data:www-data *
3 find . ! -type d -exec chmod 644 {} \;
4 find . -type d -exec chmod 755 {} \;
5 
6 
7 chmod -R 2740 sites/default/files
8 chmod 440 sites/default/settings.php
9 find . -name .htaccess -exec chmod 444 {} \;

Instalación de Git

  • Git é un software de control de versións.
Podedes descargar o software para as diferentes plataformas neste enlace.


  • Permite ter na 'nube' diferentes versións de proxectos sobre os que se fan modificacións no seus arquivos
Garda ditos arquivos antes de facer as modificacións permitindo 'volver' ao estado anterior a facer ditas modificacións.
  • Tamén permite facer traballo colaborativo entre diferentes persoais traballando á vez sobre o mesmo proxecto.
  • Nos o imos utilizar para gardar versións de Drupal antes de instalar novos módulos ou funcionalidades por se temos que volver a atrás en caso de problemas.


  • Para instalalo temos que executar a seguinte orde dende unha consola ou terminal:
1 apt-get install git


  • Unha vez instalado temos que crear un repositorio. Isto ven ser o lugar onde imos gardas as diferentes versións do Drupal.
  • Para inicialo temos que situarnos no raíz do sitio web de drupal, no noso caso: /var/www/html/drupal e executar a seguinte orde:
1 git init
Obteremos o seguinte resultado:
Drupal instalacion git 1.jpg
Creouse un novo cartafol: /var/www/html/drupal/.git
  • Para o seu funcionamento, git debe ter rexistrado unha conta de correo e un nome de usuario. Podemos ter o mesmo para todos os proxectos ou podemos especificar nomes diferentes.
No noso caso, as ordes son:
1 git config --global user.name "O teu nome"
2 git config --global user.email oteucorreo@prueba.es


  • Agora debemos engadir os arquivos ao repositorio. Agora mesmo está baleiro, polo que immos engadir todos os arquivo do cartafol drupal (escribide o punto despois do parámetro -A):
1 git add -A .
  • Agora podemos ver os arquivos 'engadidos' ao repositorio:
1 git status
Fixarse que saen todos os arquivos de Drupal, pero estes arquivos non están CONFIRMADOS. En gir, ata que non se confirmen non son 'subidos' á nube.
É importante lembrar que ata non se faga un commit dos arquivos (confirmación) estes non serán gardados realmente e non poderemos ir atrás no estado de Drupal.
  • Para confirmar os arquivos executaremos a seguinte orde:
1 git commit -m "Drupal acabado de instalar"


Se agora facemos un git status indicará que non hai nada novo que confirmar:
1 git status
Resultado
Drupal instalacion git 2.jpg


Recuperando un estado anterior

  • Crear un novo arquivo dentro do sitio web de Drupal. No exemplo eu vou crear un de nome 'proba.txt'.
Se agora executades a orde git status podedes observar como informa de que hai un arquivo modificado:
Drupal instalacion git 3.jpg
  • Agora imos engadir dito arquivo ao repositorio, como fixemos antes:


  • Imos ver agora como podemos restaurar o sitio web Drupal a un estado anterior.
1 git add proba.txt
Nota: Podemos engadir todos os arquivos de ves có parámetro -A como fixemos ao principio.
Se agora facemos un git status veremos que indica que hai que confirmar un novo arquivo:
Drupal instalacion git 4.jpg


  • Para confirmar o arquivo volveremos a executar a orde commit:
1 git commit -m "Drupal acabado de instalar cun arquivo (proba.txt) novo"


  • Cambiade o contido do arquivo e volvede a facer un add e un commit.
1 git commit -m "Drupal acabado de instalar cun arquivo (proba.txt) novo e modificado"


  • Se agora executamos a orde: git log veremos os commit realizados cun ID que os identifica.
Drupal instalacion git 5.jpg


  • Para 'revertir' o estado a un anterior só temos que anotar o ID do estado ao que queremos volver e executar a orde:
1 git revert id_copiado







-- Ángel D. Fernández González -- (2016).