Hay muchas formas automatizadas de crear un servidor de desarrollo, en este caso vamos a usar una Raspberry Pi con sistema LAMP, primero configuraremos el sistema LAMP y después configuraremos las carpetas.
Vamos a considerar que tenemos una empresa Acme que tiene un proyecto de nombre Coyote.
Primero tenemos que actualizar la Raspberry para ponerlo todo en orden.
Se puede actualizar el kernel así como el firmware de Raspberry aunque no es estrictamente necesario, esto se realiza con el comando rpi-update, si no está instalado se puede descargar vía apt-get.
# sudo rpi-update
Ahora actualizamos la distribución, este paso es recomendable.
# sudo apt-get update # sudo apt-get upgrade # sudo apt-get dist-upgrade
Ahora instalamos primero la base de datos, en este caso MariaDB, durante el proceso de instalación se pedirá una contraseña para el usuario root, se recomienda indicar una.
# sudo apt-get install mariadb-server mariadb-client
Ahora instalamos el servidor Apache 2.
# sudo apt-get install apache2
Ahora instalamos PHP 5 y el módulo de PHP 5 para Apache 2.
# sudo apt-get install php5 libapache2-mod-php5
PHP 5 tiene muchos módulos pero uno de los más importantes y que va a ser necesario es el módulo de PHP 5 para base de datos, en este caso para MariaDB
# sudo apt-get install php5-mysqlnd
Como optimizador de código intermedio de PHP 5 vamos a instalar ACPu.
# sudo apt-get install php5-acpu
Ahora solo queda reiniciar Apache 2.
# sudo service apache2 restart
Ahora vamos a usar Samba para poder acceder a la carpeta de Apache desde Windows, si trabajamos en entornos híbridos es una comodidad para poder acceder al código fuente.
En Raspberry vamos a usar la carpeta por defecto de Apache para desplegar (/var/www/apache/html) en esta carpeta creamos la carpeta Acme y dentro de esta la carpeta Coyote.
#cd /var/www/html #sudo mkdir acme #cd acme #sudo mkdir coyote
Ahora podemos instalar Samba.
#sudo apt-get install samba samba-common-bin
Una vez hecho esto vamos a crear un usuario por proyecto, en este caso creamos el usuario coyote, no nos interesa que tenga ni una shell ni una carpeta de usuario porque es un usuario que solo vamos a usar para acceder por red y así proporcionamos más seguridad al sistema, en resto de los valores que nos pida podemos establecer cualquier valor.
# sudo adduser -shell /bin/false --no-create-home coyote
Ahora añadimos el usuario a la lista de usuarios de Samba y le indicamos una contraseña para acceder por red.
# sudo smbpasswd -a coyote
Tenemos que dejar que el usuario de apache (www-data) pueda acceder a las carpetas para poder mostrarlas, pero también tenemos que dejar que el usuario coyote pueda acceder y realizar modificaciones desde el exterior a través de la red, así que vamos a crear el grupo acme y añadir a ambos usuarios a ese grupo.
# sudo addgroup acme # sudo adduser coyote acme # sudo adduser www-data acme
Empezamos con los permisos, vamos a asignar como propietario de los ficheros a www-data pero el grupo para la carpeta acme lo vamos a asociar al grupo acme, la carpeta html la dejamos como está (propietario y grupo para root para permisos 775).
# cd /var/www/html # sudo chown -R www-data acme # sudo chgrp -R acme acme
Ahora asignamos permisos, damos permiso total al usuario y grupo.
# sudo chmod -R 770 *
Tanto el usuario coyote como el usuario www-data necesitan acceder a la carpeta así que vamos a establecer el bit setgid para que los permisos se orienten por grupo y no por usuario así ambos usuarios podrán utilizar los ficheros indistintamente y también configuramos los permisos en la carpeta.
# sudo chmod g+s acme # sudo chmod -R 755 acme
Ahora solo nos queda hacer visible la carpeta a través de la red, para eso modificamos el fichero /etc/samba/smb.conf y añadimos lo siguiente.
[coyote] comment = El proyecto Coyote de Acme path = /var/www/html/acme/coyote read only = No valid users = coyote write list = coyote #Usuarios que pueden escribir create mask = 0660 #Mascara de creación de archivos directory mask = 0770 #Máscara de creación de directorios
Finalmente podemos comprobar que toda la configuración es correcta con el uso del comando testparm.
# testparm
Que debería indicarnos que todo es correcto, si es así reiniciamos Samba.
# sudo service smbd restart