1. Introducción
2. Webs de estilo general y blogs
2.1. WordPress
- Instalación:
- Como la mayoría de los servicios, necesita de un servidor web (Apache), un servidor SQL
(MySQL/MariaDB) y PHP:
apache2
, libpache2-php7.2
, php7.2
, mariadb
, php7.2-mysql
- https://es.wordpress.org/download/
- Descarga y descomprime el archivo
- Crea una base de datos y un
usuario con permisos para usar la base.
- Mueve los archivos a la carpeta del servidor deseada.
- Cambia de nombre el
archivo
wp-config-sample.php
a wp-config.php
y
edítalo para añadir la información de la base de datos.
- NGINX: En la configuración de Nginx, añade el código
para aceptar PHP ("estructura básica") y, además, dentro de
location
/
, sustituye el try_files
por try_files $uri
$uri/ /index.php?$args;
(para los enlaces permanentes).
- Entra a la página web y sigue los pasos.
- Tras la instalación, para permitir subidas, cambia el grupo y da permisos de escritura
a
www-data
en la carpeta wp-content
- APACHE: Cómo hacer que los enlaces permanentes funcionen:
- Cómo permitir resúmenes de las entradas en la página principal:
- Hay que indicarlo en cada entrada con el bloque
Más
o
etiqueta Leer más
en el final del resumen.
- Instalación de plugins:
- Instalando un servidor ftp como vsftpd (habilita el permiso de escritura en la configuración de
vsftpd) e incluyendo los datos de conexión en
wp-config.php
define('FTP_USER', 'nombredeusuario'); define('FTP_PASS', 'clave'); define('FTP_HOST', 'servidorftp');
- Si no se tiene acceso FTP para que Wordpress lo haga automáticamente, hay que descargar los plugins
y moverlos a la carpeta
wp-content/plugins
.
- Wordpress modifica algunos caracteres como "--", "...", etc. Para evitarlo, hay que crear un archivo php en
la carpeta de plugins, añadir lo siguiente y activar el plugin en la ventana de administración:
<?php
/*Plugin Name: Remove the wptexturize filter*/
remove_filter( 'the_content' , 'wptexturize' );
?>
- Temas personalizados.
- El método más fácil es clonar un tema y modificarlo al gusto.
- Para ello hay que crear una carpeta en
/wp-content/themes
con el nombre
del tema y copiar la hoja de estilos del tema padre.
- Edita la primera parte de la hoja para añadir el nombre del tema nuevo y la
línea:
Template: <tema original>
.
- Uso de cookies
- Si se usa Google Analytics u otros cookies, puede instalarse el plugin GPDR Cookie Consent que
permite crear el banner de aceptación de cookies e insertar el código de Analytics sólo si el
usuario ha aceptado las cookies.
- Migraciones y copias de seguridad
- Recomiendo el plugin
Duplicator
- Medidas de seguridad
- Comprueba permisos de los archivos (640, 750, salvo en wp-content)
- Cambia la dirección de la página de acceso (usa el plugin WPS Hide Login)
- Limita el número de intentos de iniciar sesión (plugin Loginizer)
- Haz copias de seguridad
3. Administración web/servidores
3.1. Virtualmin
- Permite administrar un servidor web (hosting) a través del navegador
- Instalación:
wget http://software.virtualmin.com/gpl/scripts/install.sh
sudo /bin/sh install.sh
- Instala un paquete LAMP junto a Virtualmin, por lo que requiere de un sistema recién instalado para evitar
errores.
- El primer usuario de Webmin son los del sistema.
- Para albergar webs hay que crear un servidor virtual. Virtualmin crea un VirtualHost por cada servidor.
También se pueden crear "sub-servidores", funcionan como los subdominios (test.example.com).
3.2. Vesta Control Panel
- Instalación (como root)
- Posibles errores:
- Apache no inicia
sudo netstat -tulpn
- (buscar puerto 80 y matar proceso/ID que lo esté usando, probablemente nginx)
- Prueba a buscar la configuración de nginx y evitar que intente crear servidor en el puerto
80. Es importante que lo cree en el puerto 8083, pero el 80 es para apache.
- No es útil para instalar Nextcloud y similares
3.3. openQRM
4. Nubes privadas/NAS
4.1. Nextcloud
- Introducción
- Instalación
- La manera más rápida es instalando el "snap" (es como un contenedor docker, para Ubuntu) y creando
un proxy con Nginx.
- sudo snap install nextcloud (sudo snap install nextcloud --channel=17/edge)
- sudo snap set nextcloud ports.http=8080
- Instala nginx y crea un proxy al puerto 8080, tanto para HTTP como para HTTPS (recuerda
instalar Certbot y ejecutarlo)
- Instala (además de apache, php, mysql y los módulos conocidos) los módulos de php con gd, json,
mbstring, curl, zip, xml, intl.
- Copia los archivos a la carpeta raíz del servidor y configurar el virtualhost (hay que asegurarse de
que se copian todos los archivos, incluidos los que empiezan por
punto,
.htaccess
y .user.ini
. Recuerda habilitar el
uso del .htaccess
con la directiva AllowOverride
all
en la configuración de apache, apache2.conf
.
- En el VirtualHost:
ServerName nubedericardo.com.es DocumentRoot /home/ricardo/nube Options +FollowSymlinks AllowOverride all Dav off
SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud
- Habilitar el módulo rewrite y headers de apache
- Dar permisos al usuario HTTP
- Crear una base de datos y un usuario con permisos para crear bases y otorgar privilegios (grant all
privileges on . to 'ricardo'@'localhost' with grant option;)
- Ir a http://ipdelservidor/ e indicar el usuario y contraseña de MariaDB en la configuración de la base de
datos
- Una vez instalado, cambiar el propietario y dar permisos de escritura a config, apps, data.
- Indicar las direcciones o dominios del servidor
'trusted_domains' =>
array (
0 => '192.168.1.15',
1 => 'nubedericardo.com.es',
2 => '85.251.67.151',
),
- Hacer que se acceda directamente con http://ipdelservidor (si se ha instalado en una carpeta)
- Cambiar el Alias de nextcloud.conf de /nextcloud a /
- Configurar Fail2Ban
'loglevel' => '2',
'logfile' => '/var/www/nextcloud/data/nextcloud.log', 'logtimezone' => 'Europe/Madrid',
- Seguir las instrucciones del apartado 12.7.1. Fail2Ban.
- Configurar SSL
- Seguir las instrucciones del apartado 12.1. Uso de SSL.
- Configurar caché (OPCache y APCu)
- Instalar APCu (15. Gestión de la caché)
- Añadir en el config.php:
'memcache.local' => 'OCMemcacheAPCu',
- Cambiar (y descomentar) estos parámetros en el php.ini (/etc/php/7.2/apache2/):
opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1
- Hacer que las URL sean un poco más cortas
- Editar en config.php (atento a la barra diagonal final de la url):
- 'overwrite.cli.url' => 'https://ejemplo.com.es/', 'htaccess.RewriteBase' => '/',
- Habilitar “HTTP Strict Transport Security” para evitar cualquier tipo de conexión por HTTP, en lugar del
HTTPS
- En el virtualhost del SSL, añadir:
- Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
- Copia de seguridad
- cd /var/www/owncloud/ sudo -u www-data php occ maintenance:mode --on
- Esperar unos minutos
- Parar Apache: sudo service apache2 stop
- Copiar carpetas data, config y themes
- Copia base de datos:
- sudo mysqldump --single-transaction -h localhost -u oc_ricardosgz -p ownbase >
owncloud_dbbackup_date +"%Y%m%d".bak
- Volver a activar apache: sudo service apache2 start
- cd /var/www/owncloud/
- sudo -u www-data php occ maintenance:mode –off
- Restauración de una copia:
- Reponer carpetas data, config y themes con el usuario y grupo adecuados
- Carpetas owncloud, data (recursivo), config (recursivo) tienen usuario www-data y grupo www-data
- themes tiene usuario root y grupo root
- mysql -h [server] -u [username] -p[password] [db_name] < owncloud-dbbackup.bak
- Notas: Instalar mcrypt en php7.2 (opcional):
- Instalar php7.2-dev
- sudo apt-get -y install gcc make autoconf libc-dev pkg-config
- sudo apt-get -y install libmcrypt-dev
- sudo pecl install mcrypt-1.0.1 (pretar intro)
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"
sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"
4.2. SeaFile
4.3. OpenMediaVault
4.4. FreeNAS
5. Tiendas online
5.1. Prestashop
- Instalación
- Necesita de un servidor web (Apache o Nginx), un servidor SQL (MySQL/MariaDB) y PHP (y los módulos
de apache con php y de php con mysql).
- Además necesita los siguientes paquetes de PHP: zip, xml, gd, curl. Opcionalmente el paquete intl
(recuerda reiniciar apache).
- Crea una base SQL y un usuario con permisos para acceder y editar la base (ver apartado 9.4.).
- https://www.prestashop.com/es/descarga
- Cambia propietario a
www-data
en los archivos temporalmente, o da
permisos de escritura a la carpeta raíz.
- Configuración básica del VirtualHost o de la configuración de Nginx (PHP).
- En Nginx, es posible que haya que añadir:
location /tienda/admin_rs/ { # Change this for your admin url
if (!-e $request_filename) {
rewrite ^/.*$ /tienda/admin_rs/index.php last;
}
- Después de la instalación, hay que borrar la carpeta
install
.
- Acceder a la administración
- <dirección>/admin (puede que la carpeta tenga otro nombre por seguridad, como "admin344343")
- Borrar datos por defecto
- Instalar módulo Prestashop "Cleaner". Una vez instalado, entrar en "Configurar" en el módulo e ir
borrando.
- Añadir productos
- Recuerda ponerlos en línea en la página de modificación del producto (el control deslizante de la
parte inferior).
- Añadir opción SSL en
Parámetros de la tienda -> Configuración
(tanto
"Activar SSL
" como "Activar SSL en todas las páginas
")
6. Foros
6.1. phpBB
- Instalación
- Necesita permisos de escritura (archivos y carpetas) y ejecución (carpetas) para la instalación.
- Reducir URL
Server Configuration -> Server settings -> Enable URL Rewriting