Habilitar url limpias de Drupal en OpenSUSE

Si partimos de una instalación limpia de un servidor LAMP en OpenSUSE, por defecto no tendremos el módulo rewrite de Apache activado, por lo que las url limpias de Drupal no nos van a funcionar. Para activarlas, hay que hacer lo siguiente:
1) Editar el fichero /etc/sysconfig/apache2
En la linea con APACHE_MODULES="actions… etc añadimos al final “rewrite” de forma que nos queda más o menos así:
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 reqtimeout rewrite"

2) Editamos el archivo /etc/apache2/httpd.conf e incluimos las directivas que nos permiten activar el módulo rewrite en el directorio en que tenemos Drupal, por ejemplo:
<Directory /srv/www/htdocs/drupal7>
AllowOverride All
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1 [L,QSA]
</Directory></code>

3) Reiniciamos el servidor web con systemctl restart apache2.service y volvemos a probar en Drupal si ya tenemos disponibles las url limpias.

Anuncios

Configurar Selinux para un VirtualHost de Apache en Centos 6

Para que al utilizar un host virtual en Apache (por ejemplo localdev) cuyas páginas se encuentren en un directorio dentro de la carpeta del usuario (por ejemplo en public_html) no tengamos problemas de seguridad con Selinux, tenemos que realizar lo siguiente:

1) Instalar paquetes necesarios

Una instalación por defecto de Centos 6 a partir del CD Live configura Selinux en modo enforcing pero no instala algunos paquetes que vienen bien. En una consola como root hacemos:
#yum install policycoreutils-python setroubleshoot

2) Activar Selinux (en caso de que no lo tengamos ya activado)

Editar (como root) el fichero /etc/selinux/config dejándolo así:

SELINUX=enforcing
SELINUXTYPE=targeted

Tenemos que tener en cuenta que si no lo teníamos activado y modificamos este fichero para activarlo, es necesario reiniciar el equipo, porque hace falta que se haga de nuevo un “relabel” del sistema de ficheros.

3) Crear el host virtual en Apache

Modificar el fichero /etc/httpd/conf/httpd.conf descomentando la línea:
NameVirtualHost *:80 y añadiendo al final de dicho fichero:

DocumentRoot ~user/public_html
Servername localdev

4) Modificar el /etc/hosts

Modificamos la línea del host local incluyendo el nuevo host virtual (en este caso localdev) dejándola más o menos así:
127.0.0.1 localhost localhost.localdomain localdev

5) Configurar el contexto de Selinux y los permisos de la carpeta

Tenemos que lanzar como root los siguientes comandos en una consola.
Para cambiar el contexto Selinux de la carpeta del host virtual al necesario para que lo utilice el servidor web:
#chcon -R -v -u system_u -r object_r -t httpd_sys_content_t ~user/public_html

Para permitir al servidor web que lea el contenido de la carpeta home de los usuarios:
#setsebool -P httpd_enable_homedirs 1

Para que la configuración de Selinux se mantenga después de un “relabel” del sistema de ficheros:
# semanage fcontext -a -t httpd_sys_content_t "~user/public_html

Para que no haya problemas de permisos de acceso a las páginas web:
#chmod -R 755 ~user/public_html

(Los dos primeros comandos pienso que habría también que utilizarlos si en vez de crear un host virtual lo que se hace es utilizar el módulo userdir de Apache.)

6) Reiniciamos Apache y probamos nuestra página de inicio.

http://localdev/index.html

(Esta entrada es una versión resumida de este post, en el que se explica todo con más detalle)

Configurar LAMP en CentOS 6.1

Apache

El servidor de páginas web Apache viene instalado por defecto con Centos, así que lo único que hace falta es arrancarlo (como root) con:

service httpd start

PHP

Para tener PHP, hay que instalar los paquetes php, php-mysql y php-gd. Si queremos también el paquete php-mcrypt podemos descargarlo del repositorio de EPEL (el enlace es para i386).
También se puede, en vez de descargar cada paquete de EPEL, incluir este repositorio para tenerlo disponible. Esto se hace con el comando:

su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm'

Reiniciamos el servidor web para que se reflejen los cambios.

MySQL

Instalamos el paquete MySQL-server y si queremos hacer seguras las cuentas iniciales, en la guía de referencia lo explican perfectamente.

Instalar phpMyAdmin

Descargar o instalar el paquete php-php-gettext de EPEL:

Descargar o instalar el paquete phpMyAdmin de EPEL:

Como el paquete no instala directamente la aplicación en el servidor web, hay que hacer un enlace simbólico (ojo con las mayúsculas):

ln -s /usr/share/phpMyAdmin/ /var/www/html/phpMyAdmin

Hay que editar el fichero /usr/share/phpMyAdmin/config.inc.php y localizar $cfg[‘blowfish_secret’] = ”; Ponemos entre comillas una frase cualquiera, con el fin de que exista una semilla para la encriptación de contraseñas cuando se utiliza la autentificación por cookies. Debe de quedar así:

$cfg['blowfish_secret'] = ‘poner una frase cualquiera’;

Verificar que tu servidor de base de datos es correcto:

 $cfg['Servers'][$i]['host'] = ‘localhost’;

Verificar que la autenticación es por cookie:

$cfg['Servers'][$i]['auth_type'] = ‘cookie’;

Incluir el usuario y contraseña de acceso:

$cfg['Servers'][$i]['user'] = ‘root’;
$cfg['Servers'][$i]['password'] = ‘miPassword’;

Y guardar el archivo config.inc.php.

Accedemos a http://localhost/phpMyAdmin y verificamos que todo va bien entrando como root y con la contraseña que establecimos para MySQL.

Si los script php no funcionan en /home/~usuario/public_html

A partir de la versión 10.04 LTS de Ubuntu Server y también en Debian Wheeze los script de php5 no funcionan por defecto cuando se invocan en el directorio del usuario habilitado para el módulo de Apache mod_userdir. Para solucionarlo editar el archivo

/etc/apache2/mods-available/php5.conf

Y comentar las líneas que se refieren a dicho módulo, dejándolas

#    <IfModule mod_userdir.c>
#        <Directory /home/*/public_html>
#            php_admin_value engine Off
#        </Directory>
#    </IfModule>

Después de salvar el archivo, reiniciar el Apache  y ya deberían de funcionar.

Tomado de Ubuntuforums

Instalar LAMP en Debian 6.0

Una muy buena guía para la instalación del entorno de trabajo LAMP en Debian 6.0 la tenemos en Linode. Resumiendo la instalación básica (sin virtual host) una vez que nuestro sistema Debian está actualizado( apt-get update … apt-get upgrade … que no falte) , sería la siguiente.
Para instalar el Apache2:
apt-get install apache2
Ejecutando posteriormente:
a2enmod rewrite
Para instalar MySQL:
apt-get install mysql-server
y luego ejecutar:
mysql_secure_installation
Para instalar el PHP5:
apt-get install php5 php-pear php5-suhosin php5-mysql
Y finalmente, aunque en la guía no lo incluyen, para mí es fundamental instalar el gestor phpMyAdmin:
apt-get install phpmyadmin

Una vez hecho esto, reiniciar el servidor con :
/etc/init.d/apache2 restart

Y ya está.

LAMP en OpenSUSE 11.3

Bueno, pues en GNU/Linux es todavía más fácil que en Windows. En la distribución con la que trabajo ahora (mientras siga viva) sólo hace falta instalar apache2, php5 y mysql desde los repositorios por defecto de OpenSUSE haciendo uso de los patrones llamados “Servidorweb” y “LAMP”. Para poder ver los patrones en YAST2 hay que pulsar en “Ver / Patrones”.
Antes de seguir, es bueno hacer segura la instalación de MySQL, ejecutando como root el comando:
# mysql_secure_installation

2) Si no vemos phpMyAdmin en los repositorios, incluirlo con:
http://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.3/

y el de php5-xdebug:
http://download.opensuse.org/repositories/server:/php:/extensions/openSUSE_11.3/

Instalar ambos paquetes desde Yast.

3) Modificar el /etc/php5/conf.d/xdebug.ini descomentando (o añadiendo) las líneas:

xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

4) Instalar el netbeans descargándolo desde la página:
http://netbeans.org/downloads/index.html

Y a trabajar ..

Instalar WIMP en Windows 7 professional 64 bits

Esto no es un artículo sesudo y formal, sino un mero recordatorio que me dejo a mí mismo por si tengo que volverme a instalar todo el entorno de desarrollo en el que trabajo desde cero, porque aunque es relativamente fácil, tiene un par de cosillas tontas que hasta que las descubres se puede perder algo de tiempo. Cuando digo WIMP me refiero al acrónimo que indica un conjunto de herramientas que permiten el desarrollo en php y mySQL, en concreto PHP + mySQL + phpMyAdmin + IIS. 

Los enlaces apuntan a los instaladores que yo he usado y que guardo en Dropbox públicamente, por lo que es posible que existan nuevas versiones ya en los sitios originales. Los pasos que he seguido son:

  • Instalar y arrancar el IIS 7 en windows de la forma habitual en este sistema operativo.
  • Instalar el mySQL para 64 bits, haciendo que arranque automáticamente como servicio. El instalador está aquí.
  • Instalar el PHP pero la versión VC9, indicando que se instale en IIS como fastCGI. El instalador de PHP está aquí. Sí, es el de 32 bits, pero es que con el de 64 no he conseguido hacer andar la plataforma de desarrollo. No se  por qué y me cansé de intentarlo.
  • Instalar el php MyAdmin. El instalador está aquí.
  • Modificar las siguiente líneas del \phpMyAdmin\config.inc.php

$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '3306';

  • Instalar el NetBeans como IDE para desarrollo. En mi caso he instalado el 6.9 pero seguro que ya hay una versión nueva. El instalador que usé está aquí.
  • Instalar el XDebug, necesario para las pruebas y la depuración de los programas. Es importante que la versión se corresponda con la que hemos instalado de PHP, en este caso la VC9. El instalador está aquí. Tiene que ser la versión nts (non thraded safe) y la de 32 bits porque el PHP que hemos instalado es el de 32 bits.
  • Incluir en el php.ini las siguientes líneas (Ojo a las direcciones de disco que pueden cambiar en cada caso):

zend_extension="C:\Program Files (x86)\PHP\ext\php_xdebug-2.1.0-5.3-vc9-nts.dll"
extension=php_exif.dll
[xdebug]
xdebug.remote_enable=on
xdebug.remote_mode=req
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.profiler_output_dir="C:\Program Files (x86)\PHP\tmp"
xdebug.profiler_enable=1

Y nada más. Repito que este blog es más un recordatorio personal que una guía perfecta, pero si a alguien más que a mí le sirve para instalar un entorno de desarrollo cómodo para PHP, pues me alegro.

Y sí, ya se que lo suyo si desarrollas en PHP tal vez sea trabajar en Linux, donde la plataforma LAMP está mucho más desarrollada, con facilísimos instaladores en casi todas las distribuciones, pero no viene mal poder hacerlo también en Win 7.