DRUPAL Instalación

De MediaWiki
Ir a la navegación Ir a la búsqueda

Instalación do paquete XAMPP

Importante: Se tedes instalado previamente o servidor web apache ou o servidor de bases de datos mysql, deberedes parar os servizos coa orde:

  • Linux:
sudo service apache2 stop
sudo service mysql stop
  • Windows: Escribimos en inicio => executar: services.msc e buscamos os servizos de Apache e Mysql, parando os dous.
En Windows podemos ter outros programas que fagan uso do porto 80 como:
  • "SQL Server Reporting Services (MSSQLSERVER)" ou en español "Servicio de reporte de SQL Server" se temos instalado o servidor de bases de datos SQLServer
  • "Web Deployment Agent Service" ou "Servicio agente de implementacion Web"


  • Xampp é un software que unha vez instalado teremos de vez: Servidor Web Apache, servidor de base de datos Mysql, PHP e Perl.
  • En Linux o paquete denomínase LAMPP.
Nota: En Windows dispoñemos doutro paquete parecido denominado WampServer ou WAMP que soamente ten versión para Windows


  • Se decides instalar XAMPP para correr Drupal debedes verificar a versión de PHP que trae o paquete por se non cumpre os requerimentos de Drupal.

En LINUX

  • Para instalalo teremos que:
  • Descargar a versión que nos interese dende este enlace.
Podemos facelo coa seguinte orde (é un exemplo:: sudo wget https://www.apachefriends.org/xampp-files/5.6.24/xampp-linux-x64-5.6.24-1-installer.run
  • Se o descargado a un tar.gz:
  • Descomprimir o arquivo baixado coa orde: sudo tar xvfz xampp-linux-1.8.0.tar.gz -C /opt.
  • Se o descargado e un arquivo sh:
  • Cambiar os permisos sobre o arquivo para poder executalo: sudo chmod 755 xampp-linux-x64-5.6.24-1-installer.run
  • Executar o arquivo: sudo ./xampp-linux-x64-5.6.24-1-installer.run


  • 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


  • Fixarse que dende o frontal anterior podedes acceder aos arquivos de configuración de Apache e Mysql que se atopan respectivamente en /opt/lampp/etc/httpd.conf e /opt/lampp/etc/my.cnf

En WINDOWS


  • No panel de control podemos iniciar os servizos que van permitir que funncione o Apache e o Mysql.
Drupal instalacion 32.jpg


Creación da base de datos e usuario

  • Drupal vai necesitar unha base de datos para gardar toda a información que necesita ademáis dun usuario/password que teña acceso a dita base de datos.
Para creala seguide este enlace.


Instalación de Drupal

  • Continuade neste enlace para instalar Drupal, unha vez teñades creada a base de datos e o usuario indicado no punto anterior.

Instalando por separado cada compoñente

  • Se non optamos por instalar o paquete XAMPP teremos que instalar separadamente:
  • Servidor web Apache
  • Activar o soporte para PHP.
  • Servidor de bases de datos Mysql
  • Unha ferramenta gráfica para administrar o servidor de base de datos (MysqlWorkBech)

Nota: Se estamos nun aloxamento compartido non teremos que instalar o Apache+PHP e o Mysql. Neste caso, para xestionar a base de datos teremos a mesma ferramenta que no caso do Xampp, o MysqlQueryBrowser).

Instalación do Apache


LINUX

  • Nota: Se tedes instalado Lampp é necesario que os servizos de Apache e Mysql estean parados.
  • Nunha consola de comandos executaremos:
sudo apt-get update
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.


Arquivos de configuración
  • IMPORTANTE: Calquera cambio nos arquivos de configuración de apache será necesario reiniciar o servizo coa orde:
service apache2 restart


  • Arquivo de configuración: apache2.conf
  • Dito arquivo pode variar de nome e lugar dependendo da versión de Apache utilizada.
  • Para saber a versión de Apache podemos escribir dende o terminal: sudo apache2 -version producindo unha saída como a seguinte:
Drupal apache 1.jpg


  • Nesta versión o arquivo de configuración principal atópase:
  • Cartafol /etc/apache2/
  • Nome: apache2.conf
Este arquivo vai cargar a súa vez outros arquivos de configuración que veremos despois.
Dentro deste arquivo os parámetros máis importantes son:
  • ServerRoot: É o lugar onde está 'apuntando' fisicamente o servidor web. É o cartafol onde vai buscar as páxinas.
  • User ${APACHE_RUN_USER}
  • Group ${APACHE_RUN_GROUP}
O servidor web execútase utilizando un usuario da máquina onde se atopa instalado e cos permisos de dito usuario.
Para saber os valores de ditas variables podemos editar o arquivo /etc/apache2/envars:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
Se non temos acceso a ditos arquivos podemos saber o usuario e grupo coa orde:
ps aux  | grep apache # para Apache 2.x
ps aux  | grep httpd # para Apache 1.x
O arquivo /etc/apache2/apache2.conf carga a súa vez outros arquivos de configuración.


  • Arquivo de configuración: ports.conf
Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
  • Liña 1: Indicamos en que porto vai escoitar o servidor web o tráfico non seguro. Por defecto é o 80.
  • Liñas 4 e 8: Se temos cargado o módulo que permite tráfico SSL aquí indicamos o porto onde vai escoiter (por defecto o 443)


  • Outros arquivos de configuración: /etc/apache2/conf-enabled/
  • Todo o que haia neste cartafol será 'cargado' polo apache. Normalmente son enlaces simbólicos (accesos directos en Windows) a arquivos que se atopan fisicamente en /etc/apache2/conf-avaliable.
Sitios Web
  • Un servidor apache vai apuntar fisicamente por defecto a un cartafol (no noso caso a /var/www/html/).
  • Pero ademais pode:
  • Ter varios sitios web (URL) apuntando ao mesmo servidor web.
Varios sitios web apuntando ao mesmo servidor web
  • Isto se consegue no arquivo de configuración /etc/apache2/sites-available/000-default.conf
  • Dito arquivo é cargado xa que existe un enlace simbólico no cartafol: /etc/apache2/sites-enable/
Calquera enlace simbólico que poñamos nese cartafol levará consigo que Apache cargue dito arquivo de configuración.
Se editamos dito arquivo podemos ver:
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<Directory /var/www/html>
  Options Indexes FollowSymLinks
  AllowOverride All
</Directory>
  • Liña 1: Sección VirtualHost onde indicamos que imos escoitar no porto 80 todas as peticións da calquera URL que chegue ao servidor web.
  • Liña 3: Indicamos onde se atopa fisicamente o cartafol onde apunta este virtualhost.
  • Nas liñas 9-12 fan referencia a unha serie de parámetros que son aplicados sobre o cartafol ao que estar apuntando o virtualhost. Máis información neste enlace.
Comentar que a liña 11 indica que os parámetros de o arquivo de configuración do Apache poden ser reemplazados polos que se atopen nun arquivo de nome .htaccess (necesario para os aloxamentos compartidos).
  • Sempre temos que ter unha sección <Directory> por cada <VirtualHost>.
ServerName
  • ServerName é un parámetro que se engade no arquivo de configuración de Apache e lle indica a IP ou o nome web co que vai a recibir peticións web. Pódese poñerse a nivel 'global' no arquivo apache2.conf ou dentro da sección <virtualhost>.
  • Normalmente para ter un sitio web teremos que ter contratado un dominio válido en Internet que estará apuntando a IP onde temos instalado o servidor Web Apache.
  • Como o estamos a facer localmente, engadiremos ao arquivo /etc/hosts un dominio 'ficticio' (imos engadir dous):
127.0.0.1       localhost
127.0.1.1       angel-VirtualBox www.meusitio.es www.outrositio.es
Agora se facemos un ping dende un terminal: ping www.meusitio.es debería contestar coa ip 127.0.0.1
  • Engadimos a liña: ServerName www.meusitio.es ao arquivo httpd.conf e reiniciamos o servizo.
Sen embargo se poñemos: http://www.outrositio.es tamén a carga. Isto é debido a que Apache sempre vai cargar un <virtualhost> por defecto.
Se dito 'default' virtualhost non está especificado cargará sempre o primeiro da lista.
Para facer que cada un vaia a un cartafol diferente temos que duplicar a entrada <virtualhost>, unha por cada URL a atender:
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/meusitio
        ServerName www.meusitio.es

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/outrositio
        ServerName www.outrositio.es

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
No exemplo estamos indicando que
  • www.meusitio.es => /var/www/html/meusitio
  • www.outrositio.es => /var/www/html/outrositio
Ditos cartafoles teñen que estar creados e con permisos para que o usuario-grupo de apache (www-data:www-data) poda acceder.
Reiniciar o servizo.
Varias IP´s atendendo a sitios diferentes/mesmo sitio
  • Dentro da sección 'VirtualHost' podemos indicar que IP vai a ir a que sección.
  • Pode darse o caso de que o equipo onde está o servidor Web teña dúas o máis tarxetas de rede e cada unha delas pode atender a determinadas peticións.
<VirtualHost 192.168.1.1:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/meusitio
        ServerName www.meusitio.es

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost 172.1.1.10:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/outrositio
        ServerName www.outrositio.es

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  • No exemplo supoñemos que o equipo está configurado con dúas tarxetas de rede, unha coa dirección 192.168.1.1 e a outra coa dirección 172.1.1.10
Alias
  • Os alias que veñen ser nomes que van a continuación da URL pero que apuntan fisicamente a outro sitio no disco.
Por exemplo, se poñemos http://www.meusitio.es/tenda, isto iría ao cartafol /var/www/html/tenda, pero se no arquivo de configuración de apache creo un alias de nome 'tenda' podo apuntar a outro cartafol diferente.
Para crear un alias:
  • Editamos o arquivo /etc/apache2/sites-available/000-default.conf.
  • Engadimos dentro da sección <virtualhost>: alias /nome_alias /cartafol_onde_apunta
Por exemplo: alias /tenda_electr /var/www/html/tenda_electronica
  • Lembrar reiniciar o servizo.




WINDOWS

  • Para poder executar Apache en Windows é necesario ter instalado unha serie de librerías relacionadas con VC++.
Debemos descargar o paquete software Visual C++ Redistributable Packages e instalalo.


  • Descargamos o servidor web Apache.
Na súa páxina web, sen embargo, a fundación Apache Software só pon a disposición o código fonte. Os arquivos binarios executables para Windows atópanse en páxinas como Apache Lounge ou Apache Haus.


Movemos o cartafol 'Apache24' ó cartafol 'C:\'
DRUPAL instal apache windows 1.JPG


  • Desprazámonos ao cartafol C:\apache24\bin e executamos o arquivo httpd.exe.
DRUPAL instal apache windows 2.JPG
Aparecerá un aviso do firewall de windows preguntando se queremos permitir que se conecten a apache. Prememos a opción Permitir acceso.


  • Aparecerá unha ventá en negro de consola.
Agora mesmo o servidor web xa estaría funcionando. Podedes comprobalo se ides a unha ventá do navegador y escribides na url: http://localhost


DRUPAL instal apache windows 3.JPG


  • O arquivo de configuración do servidor web apache é httpd.conf que se atopa no cartafol /Apache24/conf.
En dito arquivo podemos atopar a directiva DocumentRoot que indica a carpeta física a onde 'apunta' o servidor web apache cando poñemos na url localhost.
  • Agora mesmo o servidor web apache non está instalado coma servizo (quere isto dicir que non se inicia automaticamente ao iniciar o computador). Cada vez que se queira utilizar ai que executar o arquivo httpd.exe. Cando non se queira usar se pode cerrar a ventá negra da consola.
Se se quere instalar como servizo habería que executar a orde: httpd.exe -k install dende unha consola de windows.


Para máis información sobre o arquivo de configuración de Apache podedes ver a sección anterior dunha instalación Linux desta mesma páxina.

Instalación do PHP

LINUX

Versións baseados en Ubuntu 14.04 ou anteriores
  • Para instalar o PHP escribiremos o seguinte nunha consola:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-cli
Versións baseados en Ubuntu 16.04 ou superiores
  • Nestas versións se podería instalar os paquetes de versións anteriores de PHP, pero por defecto xa ven coa versión PHP7.
apt-get install libapache2-mod-php


  • Para instalar as dúas versións de PHP (ver 7 e 5.6) deberemos:
sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0


Para pasar dunha versión de PHP a outra:
Pasamos dende a 5.6 á 7
sudo a2dismod php5.6 
sudo a2enmod php7.0 
sudo service apache2 restart
Pasamos dende a 7 á 5.6
sudo a2dismod php7.0
sudo a2enmod php5.6
sudo service apache2 restart


  • Actualizaremos o arquivo dir.conf e engadiremos index.php ao principio:
sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Reiniciamos o servizo: sudo service apache2 restart
  • Para comprobar se está ben instalado podemos crear un arquivo: /var/www/html/index.php
<?php
phpInfo();
?>
E cargar a páxina dende o navegador escribindo na URL: http://localhost/index.php.
Obteremos o seguinte:
Drupal instalacion php 1.jpg


Indicar que nesta saída obtemos o lugar onde se atopa o arquivo de configuración de php, que neste caso é /etc/php5/apache2/php.ini


WINDOWS

Unha vez descargada e descomprimida, movemos o cartafol a C:\ e renomeamos o seu nome a php, quedando todo no cartafol c:\php
  • Copiamos e pegamos o arquivo php.ini-development dándolle de nome php.ini.
  • Engadimos no arquivo httpd.conf do servidor web apache as seguintes liñas:
1 LoadModule php7_module "c:/php/php7apache2_4.dll"
2 AddType application/x-httpd-php .php
3 
4 # configure the path to php.ini
5 PHPIniDir "C:/php"


  • Modificamos a liña:
1 <IfModule dir_module>
2     DirectoryIndex index.html
3 </IfModule>

por

1 <IfModule dir_module>
2     DirectoryIndex index.php index.html
3 </IfModule>


Nota: Será necesario reiniciar o servidor web Apache para que colla os cambios.

Desactivando a visualización de erros

  • É importante non facilitarlle 'pistas' aos posibles atacantes do noso sitio web, polo que normalmente deberemos desactivar a visualización de mensaxes de erro en PHP.
  • Algúns aloxamentos compartidos van permitir activar/desactivar dita directiva para o noso sitio web, como podemos ver na seguinte imaxe:

Drupal instalacion 1B.jpg

  • Tamén podemos desactivar/activar dita opción a través do arquivo .htaccess do noso aloxamento.
  • Sempre que teñamos un sitio web en Internet funcionando deberemos desactivar dita directiva.

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:
sudo apt-get install php5-gd
sudo service apache2 restart

Instalación e configuración do Mysql

LINUX

Instalación
Versións baseados en Ubuntu 14.04 ou anteriores
  • Executaremos as seguintes ordes nun terminal:
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
Versións baseados en Ubuntu 16.04 ou superiores
sudo apt install mysql-server mysql-client


Nota: Se vos da un erro durante a instalación probade a facer o que está indicado nesta entrada de blog.

Proceso de instalación
  • Aparecerá unha pantalla onde se nos solicita o password que terá o usuario 'root'. Lembrade escoller un password complexo.
Drupal instalacion mysql 9.jpg


  • Se a versión de Mysql é inferior a 5.7.6, debemos executar un script para que cre as base de datos necesarias para o seu funcionamento:
sudo mysql_install_db
En caso de ter unha versión igual ou superior xa non é necesario facelo. Neste caso, se queremos facer unha nova instalación teremos que executar o código:
sudo mysqld --initialize



  • Executaremos un script de setup coa orde;
sudo /usr/bin/mysql_secure_installation
Preguntará:
  • Se queremos instalar o PLUGIN_VALIDATE para obrigar a que as contrasinais dos usuarios sexan seguras. Podedes escoller o que queirades, pero se estades practicando escollede N para así poder poñer contrasinais sinxelas.
  • 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.
  • Remove test database and access to it: Contestar y.
  • Reload privilege tables now? [Y/n]: Contestar y.


  • Unha vez instalado o arquivo de configuración do mysql se atopa en:
  • Apache: /etc/mysql/my.cnf
  • XAMPP: /opt/lampp/etc/my.cnf


Dentro deste arquivo podemos cambiar o porto por defecto (3306) no que escoite o servizo de mysql, indicar a tarxeta de rede (a ip) que está facendo uso do servizo,etc...
  • Agora necesitamos un programa para poder xestionar o servidor Mysql.
Temos dúas opcións:
  • MySqlWorkBench: É un programa.
  • Phpmyadmin: é un sitio web que se carga a través do navegador. Utilizado nos aloxamentos compartidos e na paquete XAMPP.
Instalación do frontend MysqlWorkBech
  • WorkBench é un programa que vai permitir xestionar todo o Mysql, dende ás bases de datos ata os usuarios. Se estamos nun aloxamento compartido, teremos como ferramenta o phpmyadmin (que ven có paquete XAMPP, explicado despois).


  • 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:


Instalación do phpmyadmin
  • Phpmyadmin é unha aplicación web que se carga como se fora unha páxina dende o navegador utilizando o servidor web Apache.
É a ferramenta que se utiliza nos aloxamentos compartidos de Internet e a que ven co paquete LAMPP.

Nota: Se estamos a utilizar LAMPP xa non teremos que instalalo e poderemos acceder a esta ferramenta accedendo á URL: http://localhost

WINDOWS

  • Seguir este enlace para descargar e instalar Mysql e WorkBench, pero tendo en conta que na primeira opción deberedes escoller Custom e escoller o seguinte software para instalar:
Drupal instal mysql windows 2.JPG
Desta forma xa non tedes que seguir a entrada anterior cando mande descargar o Mysqlworkbench, xa que estará instalado.


Importante: Fixarse que na páxina de descarga debemos escoller a opción msi.
Drupal instal mysql windows 1.JPG


Prememos dúas veces sobre o arquivo descargado e comeza o proceso de instalación.
Se durante a instalación informa que non está instalado o paquete VC++ Redistribuible 2013, debemos instalalo previamente dende este enlace.


  • Con isto acabaría a instalación do Mysql. No caso de querelo usar xunto cun CMS (por exemplo DRUPAL) deberedes de crear unha base de datos e un usuario de acceso á mesma.


PhpMyAdmin
  • Temos que ter instalado o PHP para Apache previamente (está nun punto anterior desta páxina).
Debemos descomentar as liñas (quitarlles o punto e coma inicial) no arquivo php.ini do cartafol onde estea instalado o php:
1 extension=php_mbstring.dll
2 extension=php_mysqli.dll


Nota: Será necesario reiniciar o servidor web Apache para que colla os cambios.


Descomprimimos o arquivo e copiamos o cartafol ao cartafol indicado pola directiva DocumentRoot de Apache, que se seguides este manual é C:\apache24\htdocs
Unha vez copiada accederemos ao phpmyadmin poñendo na URL dun navegador: http://localhost/phpmyadmin

Configuración

  • A continuación teríamos que crear a base de datos e un usuario con acceso á mesma. Isto está explicado a continuación xa que a mesma ferramenta(phpmyadmin) o ten o paquete XAMPP.
  • 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 => phpmyadmin
Con MysqlWorkBench
  • O MysqlWorkBench é unha ferramenta que vai permitir xestionar o servidor Mysql.
Podemos descárgalo e ver as súas características neste enlace.


  • 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 Drupal

Pasos previos

  • Primeiro debemos descargar a versión do drupal que queiramos.
  • Graficamente, escollemos a versión dende o navegador e a descargamos.
  • Dende consola en Lunix coa orden: wget https://ftp.drupal.org/files/projects/drupal-8.2.3.tar.gz (Nota: Teredes que baixar a última versión estable. Esta é un exemplo. Para saber cales hai podedes visitar este enlace no que aparecen as versión para Drupal 8).
  • Se estamos en Windows o facemos todo graficamente.
  • Unha vez descargada a descomprimimos:
  • Graficamente, premendo dúas veces e descomprimíndoa.
  • Dende consola en Linux coa orde: tar -zxvf drupal-8.1.8.tar.gz
  • Onde se move o cartafol descomprimido do drupal.
  • Se estamos a utilizar xampp:
  • En Linux deberemos movelo ao cartafol /opt/lampp/htdocs/ coa orde: sudo mv cartafol_descomprimido_drupal /opt/lampp/htdocs.
  • En Windows deberemos movelo ao cartafol C:\xampp\htdocs\
  • Se estamos a utilizar un servidor web (como Apache) debemos movelo ao cartafol onde cargue os sitios web. Normalmente será /var/www/html/.
ATENCIÓN O Drupal ten arquivos ocultos que empezan por '.' por exemplo .htaccess
Se movemos os arquivos tede en conta que gráficamente poden aparecer ocultos.
Se o facemos por consola lembrar poñer a orde: sudo mv /cartafol_drupal_comprimido/.* /cartafol_destino/


Notas::
  • Cando se descomprime, normalmente teremos o nome 'drupal-X.Y.Z'. Podemos cambiarlle o nome a ese cartafol por 'drupal' por exemplo e despois imos usalo no arquivo de configuración de Apache.
  • 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).


  • A outra forma é 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: sudo 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.
Nota: A partires da versión 8.3.2 de Drupal xa non é necesario crear estes cartafoles xa que o fai o asistente durante o proceso de instalación.
  • Crear o cartafol /cartafol_drupal/sites/default/files e darlle permisos de escritura sudo 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.
  • Se durante a instalación vos da un erro de que non pode conectarse ao servidor:
Drupal instalacion 25A.jpg
Teredes que:
  • Ir ao sitio web: Descarga traducciones Drupal.
  • Descargade o arquivo de idioma (Spanish) => Fixarse na versión do CORE, que debe corresponderse coa versión de Drupal descargada.
  • Copialo ao cartafol /cartafol_drupal/sites/default/files/translations



  • Cambiando os permisos (soamente Linux).
  • 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: sudo chown -R www-data:www-data dir_drupal sendo 'dir_drupal' o cartafol onde se atopa drupal.


  • Para saber o nome do usuario do servidor web Apache podemos escribir o seguinte nun terminal:
ps aux  |grep apache # para Apache 2.x
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 (Linux): 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 e reiniciaremos o Apache.
  • En Wampp (Windows): Editaremos o arquivo php.ini que se atopa en C:\xampp\php
  • Engadimos a seguinte liña: zend_extension=php_opcache.dll
  • Cambiamos o seguinte valor:
::[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1
  • Reiniciaremos o Apache.
  • En Apache (sen XAMPP/LAMPP): Debemos editar o arquivo /etc/php5/apache2/php.ini e cambiar o seguinte código;
::[opcache]
; Determines if Zend OPCache is enabled
;opcache.enable=0
Por
::[opcache]
; Determines if Zend OPCache is enabled
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 con Apache (non Lampp).


  • Para activalo deberemos escribir o seguinte (se estamos nun servidor compartido seguramente o módulo xa estará activo):
sudo a2enmod rewrite
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:
....
</VirtualHost>

<Directory /var/www/html>
  Options Indexes FollowSymLinks
  AllowOverride All
</Directory>
  • Reiniciamos o servizo
sudo service apache2 restart

Instalación

Comprobacións trala instalación

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


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


  • Para solucionalo deberemos editar o arquivo de configuración (settings.php) 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:
$settings['trusted_host_patterns'] = array(
  '^www\.example\.com$',
);
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 (soamente con Apache)

  • 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:
  • Se temos configurado o virtualhost do arquivo /etc/apache2/sites-enabled/000-default.conf e document_root apunta a /var/www/html
  • Modificamos o arquivo /var/www/html/drupal/.htaccess e descomentamos a liña indicada:
  RewriteBase /drupal
Sendo /drupal o cartafol onde está instalado Drupal no servidor web (/var/www/html/).


  • Se temos configurado o virtualhost do arquivo /etc/apache2/sites-enabled/000-default.conf e document_root apunta a /var/www/html/drupal
  • Modificamos o arquivo /var/www/html/drupal/.htaccess e descomentamos a liña indicada:
  RewriteBase /


  • Reiniciamos o servidor Apache: sudo service apache2 restart

Configuración de permisos nos cartafoles de Drupal (con Apache e Linux)

  • 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):
cd /RUTA_INSTALACION_DRUPAL/ -------------------(A CAMBIAR)------------------------
chown -R www-data:www-data *
find . ! -type d -exec chmod 444 {} \;
find . -type d -exec chmod 555 {} \;


chmod -R 2740 sites/default/files
chmod 440 sites/default/settings.php
find . -name .htaccess -exec chmod 444 {} \;


  • Se imos a estar traballando e instalando novas funcionalidades poderíamos aplicar este script:
cd /RUTA_INSTALACION_DRUPAL/ -------------------(A CAMBIAR)------------------------
chown -R www-data:www-data *
find . ! -type d -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;


chmod -R 2740 sites/default/files
chmod 440 sites/default/settings.php
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.
  • Pode sernos útil para gardar o estado do drupal antes da instalación dun software que faga que Drupal deixe de funcionar. Nese caso podemos facer uso de Git para volver a deixar ao Drupal como estaba.


  • Permite ter 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.
Non garda a base de datos polo que teremos que facer copias de seguridade pola nosa conta.
  • 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:
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:
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:
git config --global user.name "O teu nome"
git config --global user.email oteucorreo@prueba.es


  • Agora debemos engadir os arquivos ao repositorio. Agora mesmo está baleiro, polo que imos engadir todos os arquivo do cartafol drupal (escribide o punto despois do parámetro -A):
git add -A .
  • Agora podemos ver os arquivos 'engadidos' ao repositorio:
git status
Fixarse que saen todos os arquivos de Drupal, pero estes arquivos non están CONFIRMADOS. En git, ata que non se confirmen non son 'incluídos' no repositorio.
É 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:
git commit -m "Drupal acabado de instalar"


Se agora facemos un git status indicará que non hai nada novo que confirmar:
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.
git add proba.txt
Nota: Podemos engadir todos os arquivos de vez có parámetro -A como fixemos ao principio.
Importante Tedes que facer o add sempre antes de facer o commit, xa que se modificados un arquivo despois de facer o add, se gardará a versión anterior, non a modificada.
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:
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.
git commit -m "Drupal acabado de instalar cun arquivo (proba.txt) novo e modificado"
Nota: Podedes facer non só paso engadir-confirmar coa orde: git commit -a -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
Se engadimos a opción -p á orde git log, amosará as diferenzas entre as versións.
  • Para 'reverter' o estado a un anterior só temos que anotar o ID do estado ao que queremos volver e executar a orde:
git checkout id_copiado_do_paso_anterior


  • Tamén ides poder aloxar repositorios remotos (aloxados en Internet) como en GitHub. Ditos repositorios son públicos (hai que pagar para ter un privado).
Podedes consultar un pequeno manual de como usalo: https://git-scm.com/book/es/v1/Fundamentos-de-Git-Trabajando-con-repositorios-remotos

Documentación

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

A documentar:

Servidor web

  • Nome do dominio elixido e a onde apunta fisicamente (en caso de facer subdominios facelo constar)
  • Software utilizado para a instalación do CMS (que servidor web/versión, que versión de PHP,...)
  • Cambios realizados nos arquivos de configuración Apache.

Mysql

  • Indicar a versión do Mysql utilizada.
  • Nome da base de datos que vai aloxar o Drupal.
  • Nome e password do usuario que vai ter acceso á base de datos.
  • Cambios realizados nos arquivos de configuración do servidor de bases de datos.

FTP

  • No caso de utilizar un servizo de ftp:
  • Nome do usuario / password para acceso ao sitio web.
  • URL para acceder ao sitio web.

SSH

  • No caso de utilizar un servizo ssh:
  • Nome do usuario / password para acceso ao sitio web.


Novos módulos

  • No caso de instalar novos módulos:
  • Indicar o nome do módulo e funcionalidade perseguida.
  • Indicar as modificacións realizadas na configuración do módulo.






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