Instalación de PHP en servidor Ubuntu

Hay dos opciones para instalar Apache en nuestro servidor Ubuntu, por módulo de apache (la forma normal) o por cgi. La forma preferible es a través de módulo, pero no todos los servidores lo permiten (como me ha pasado a mi hoy debido a que no tenía acceso a los repositorios del apt).

Importante aclarar que la forma ideal es hacerlo a través de apache puesto que por CGI parece ser que el rendimiento es mucho peor.

Pasos para la instalación por módulo de Apache

1º Actualizamos la lista de paquetes.

sudo apt-get update

2º Actualizamos los paquetes.

sudo apt-get upgrade

3º En caso de que ejecutando el comando anterior no se haya actualizado el php es porque posiblemente no hemos añadido el paquete de PHP. Lo haremos de la siguiente forma:

sudo apt-add-repository ppa:ondrej/php

4º Volvemos a ejecutar “sudo apt-get update” y posteriormente instalamos la versión de php que queramos

  • Para PHP 5.5 sudo apt-get install php5.5
  • Para PHP 5.6 sudo apt-get install php5.6
  • Para PHP 7 sudo apt-get install php7.0

Paso para la instalación por CGI de PHP

Descargamos la versión que queramos de PHP (en nuestro caso la 7.06)

2º A través de ftp subimos los archivos a una ruta. En nuestro caso será /usr/local/php706/.

Modificamos el archivo /etc/apache2/sites-available/default

En nuestro caso nos quedó de la siguiente manera:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName blablabla.yises.com
  DocumentRoot /var/www

  <Directory /usr/local/php706/bin>
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
  </Directory>

  ScriptAlias /php706-cgi /usr/local/php706/bin

  <Directory /var/www>
    Action php706-cgi /php706-cgi/php-cgi
    AddHandler php706-cgi .php
    <FilesMatch "\.php$">
      SetHandler php706-cgi
    </FilesMatch>
    Options Indexes FollowSymLinks
    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

  Alias /doc/ "/usr/share/doc/"
  <Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
  </Directory>
</VirtualHost>

4º Reiniciamos el servicio de apache

sudo service apache2 restart

Notas importantes:

  • Puede que sea necesario añadir algunos módulos para que funcione correctamente. Por ejemplo:
sudo a2enmod rewrite
  • Se puede ver los mods disponibles en la ruta /etc/apache2/mods-available y los habilitados en /etc/apache2/mods-enabled
  • Normalmente los errores que nos vayan apareciendo se encontrarán en /var/log/apache2/error.log

Linux – Crear un repositorio SVN

Los pasos a seguir para la creación de un repositorio son:

  1. Ir a la carpeta en donde se encuentre instalado el repositorio, normalmente /var/svn/
  2. Crear un nuevo repositorio, sustituyendo REPOS_PATH por el nombre que se le quiere dar: svnadmin create REPOS_PATH (+ información del comando svnadmin).
  3. Crea los usuarios que sean necesarios con la línea htpasswd  /etc/apache2/dav_svn.passwd usuario, te obligará a meter dos veces la password que quieras.
  4. Darle permisos al usuario www-data para que escriba en ese fichero: sudo chown -R www-data:www-data /var/svn/REPOS_PATH
  5. Reiniciar el servidor apache /etc/init.d/apache2 restart.

Espero que os haya servido!