El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

wordpress para todos

| Comments

Recién se ha puesto de moda, en el mundo entero, “wordpress”. No hace mucho leí un twit de no se que perico de los palotes; diciendo que el 22% de los sitios en internet son wordpress.

En infomed wordpress es un boom. Incluso se escriben plugins y temas para wordpress.

Al llegar aquí me encontré con un drupal tirado en una IP detrás de un “/intranet” y con un estado de abandono tremendo. Ni siquiera había un DNS así que ni hablar de virtualhost.

Lo primero fue crear un virtualhost para una intranet que albergaría un wordpress.

/etc/apache2/sites-enabled/wordpress
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
lazaro@leviatan:~/octopress$ cat /etc/apache2/sites-enabled/wordpress
<VirtualHost *:80>
        ServerAdmin lazaro@localhost
        ServerName intranet.hcg.sld.cu

        DocumentRoot /usr/share/wordpress/

        <Directory /usr/share/wordpress/>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

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

Declaramos el virtualhost en el DNS. En este caso, es hacer un puntero a la maquina donde está el wordpress. Como uso dnsmasq, basta con agregarlo al virtuahost.

dnsmasq
1
2
3
4
5
root@blackjack:~# cat /etc/hosts|grep intranet
10.1.1.14   intranet.hcg.sld.cu

root@blackjack:~# /etc/init.d/dnsmasq restart
Restarting DNS forwarder and DHCP server: dnsmasq.

E instalar wordpress:

aptitude
1
root@leviatan:~# aptitude install wordpress

Como si fuese poca la carga de mi servidor SQL, resulta que cada sitio de wordpress, es simplemente una configuración y una base de datos.

Basta copiar la configuración de ejemplo y bautizarla en /etc/wordpress con el prefijo config- seguido del nombre del virtualhost.

cp
1
lazaro@leviatan:~/octopress$  cp /usr/share/wordpress/wp-config-sample.php /etc/wordpress/config-intranet.hcg.sld.cu.php

Dentro del fichero, la configuración, es un bien comentado script de PHP, que figura los datos para una conexión a la base de datos. Obviemos los comentarios para ahorrar espacio. El fichero me quedó así.

/etc/wordpress/config-intranet.hcg.sld.cu.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php

define('DB_NAME', 'wordpress');

define('DB_USER', 'wordpress');

define('DB_PASSWORD', 'secretisimo');

define('DB_HOST', 'localhost');

define('DB_CHARSET', 'utf8');

define('DB_COLLATE', '');

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');


$table_prefix  = 'wp_';

define('WPLANG', 'es_ES');

define('WP_DEBUG', false);


if ( !defined('ABSPATH') )
        define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . 'wp-settings.php');

define('WP_ALLOW_REPAIR', true);

Como ven, hay un “algo”; no se si variable. Bajo el nombre DB_NAME, declaramos el nombre de la base de datos y así sucesivamente lo obvio hasta DB_HOST.

De ahí pa alante, no tocamos más nada.

Ya estamos listo para crear la base da datos. La rutina clásica: Haremos un usuario con el mismo nombre de la base y le daremos todos los permisos.

$mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
lazaro@leviatan:~/octopress$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.30-1.1 (Debian)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Y ahora creamos la base de datos y el usuario con estas sentencias
NOTA: en nuestro ejemplo tanto la base de datos como el usuario son wordpress, reemplazar PASSWORD_DB por el password que deseen asignarle a la base de datos.

mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'secretisimo';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> \q
Bye

COMPLETO! Reinicia apache, reinicia dnsmasq y apunta un navegador al nombre del servidor para ver que pasa.

http://intranet.hcg.sld.cu

Si este artículo te resultó interesante, considere donar 0.06 BTC: 14iNmkfULf5jggumVh963kUg4UPScEZHgz

Comments