Skip to content

Instantly share code, notes, and snippets.

@aubinlrx
Created July 16, 2015 15:22
Show Gist options
  • Save aubinlrx/ea85ab1526762f1386ca to your computer and use it in GitHub Desktop.
Save aubinlrx/ea85ab1526762f1386ca to your computer and use it in GitHub Desktop.
Ubuntu Server Installation

Installatin d'un serveur Ubuntu

Ce document vous guide durant l'installation d'un serveur web PHP et Node.JS sur l'OS Ubuntu 14.04.

Dependencies:

  • Apache2 >= 2.4.7
  • PHP5-Cli >= 5.5.9
  • PHP5-FPM >= 5.5.9
  • Mysql >= 5.5.43
  • Node (with Nvm) >= 0.12.7
  • Composer
  • Gulp

Installation de Apache2

Installation et activation apache2-mpm-event

sudo apt-get update
sudo apt-get install apache2-mpm-event

Tester l'installation de Apache avec la commande:

sudo service apache2 status

Si le service est en route vous devriez obtenir "apache2 is running" sinon entrer la commande suivante:

sudo service apache2 start

Installation de PHP5-FPM

Pour utiliser PHP5-FPM avec Apache, libapache2-mod-fastcgi doit être installer. Néanmoins, il est important de mettre à jour les sources apt car ce module n'est pas disponible par défaut dans les paquets d'Ubuntu.

sudo nano /etc/apt/sources.list

Ajouter les lignes suivantes à la fin du fichier:

deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse

Fermer et sauvegarder le fichier (CTRL + X puis O (ou Y))

Installer ensuite libapache2-mod-fastcgi

sudo apt-get update
sudo apt-get install libapache2-mod-fastcgi

Installation de PHP5-FPM avec la commande suivante:

sudo apt-get install php5-fpm

Et l'activer au niveau de apache2:

sudo nano /etc/apache2/conf-available/php5-fpm.conf

puis entrer les lignes suivantes:

<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization

<Directory /usr/lib/cgi-bin>
    Require all granted
</Directory>

</IfModule>

Sauvegarder et quitter l'éditeur.

Il faut maintenant activer les nouveaux module et la configuration d'apache:

sudo a2enmod actions fastcgi alias
sudo a2enconf php5-fpm
sudo service restart

Installation PHP5-Cli

Php5-cli permet d'utiliser php à travers la ligne de commande pour l'installer entrer les lignes suivantes:

sudo apt-get install php5-cli
php -v # doit afficher la version de php installé (ex: PHP 5.5.9)

Installation de Mcrypt

sudo apt-get update
sudo apt-get install php5-mcrypt

Activer mcrypt

sudo php5enmod mcrypt
sudo service apache2 restart

Installation Rewrite Mode

Pour installer le mod_rewrite pour apache lancer les commande suivante:

sudo a2enmod rewrite
sudo service apache2 restart

Installation Php5 Mysql

sudo apt-get update
sudo apt-get install php5-mysql php5-curl

Installation de composer

Pour installer composer globalement entrer les commandes suivantes:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/

Création d'un alias afin d'appeller composer directement et non composer.phar

alias composer='/usr/local/bin/composer.phar'

Installation de Git

Pour installer git entrer les commandes suivantes

sudo apt-get update
sudo apt-get install git

Création d'un dossier pour les futurs projets

Il est nécessaire de créer un dossier dédié pour les futurs projets qui seront hébergés par le serveur.

mkdir /home/administrateur/Sites
# Création du dossier pour un projet
mkdir ~/Sites/nom-projet
# Permission pour éviter 403 access denied
chmod 755 ~/Sites/nom-projet

Configuration VirtualHost

Par défault apache affiche une page d'accueil mais ne pointe pas vers un des projets que l'on désire déployer. Pour cela éditer le fichier suivant:

sudo nano /etc/apache2/sites-available/nom-project.dev.conf

Renseigner les différentes informations dans le fichier

<VirtualHost *:80>
    ServerName nom-project.dev
    ServerAlias nom-project.*.xip.io

    <Directory /home/administrateur/Sites/nom-project/>
        Options Indexes FollowSymLinks MultiViews
        Require all granted
        AllowOverride All
    </Directory>

    DocumentRoot /home/administrateur/Sites/nom-project/
</VirtualHost>

Activer enfin la configuration

# Enable configuration
sudo a2ensite nom-projet.dev.conf
sudo service apache2 reload

# Disable configuration
sudo a2dissite nom-projet.dev.conf
sudo service apache2 reload

Il vous sera ainsi possible d'accéder à l'application à l'aide des addresses suivantes:

  • nom-project.dev (en ayant modifier localement le fichier hosts pointant vers l'adresse IP du serveur web)
  • nom-project.IP-DU-SERVEUR-WEB.xip.io

Installation de MySQL

Pour installer MySQL entrer les commandes suivantes (choisir un password lors de l'installation):

sudo apt-get update
sudo apt-get install mysql-server

Démarrer le service

sudo service mysql start

Configuration de MySQL pour accès à distance

sudo nano /etc/mysql/my.cnf

Modifier la ligne suivante :

bind-address=SERVER-IP-ADDRESS

Se connecter à MySQL en local sur le serveur et entrer les lignes suivantes:

mysql -u root -p #entrer le passord
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'IP-REMOTE-DESKTOP' IDENTIFIED BY 'root-password';
mysql > FLUSH PRIVILEGES;

Il est désormais possible d'utiliser un client tel que Toad pour accèder à la base de donnée à distance avec le poste distant ajouté dans les privilèges.

Installation de Node.JS

Installation de curl et build-essential

sudo apt-get update
sudo apt-get install curl build-essential libssl-dev

Installation de NVM

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash

Configuration de NVM avec le bash

source ~/.profile

Installation d'une version de node

nvm install 0.12.7
nvm use 0.12.7

Installation de gulp

Pour installer gulp globalement entrer les commandes suivantes

npm install -g gulp
# locade in ~/.nvm/versions/node/0.12.7/lib/node_modules/gulp
npm link gulp

Installation de bower

Pour installer bower globalement entrer les commandes suivantes

npm install -g bower
# locate in ~/.nvm/versions/node/0.12.7/lib/node_modules/bower
npm link bower

Laravel 5.0 - Troubleshooting

Laravel peut poser quelques problèmes lors du premier déploiement voici quelques pistes.

403 Forbidden

Verifier dans le VirtualHost que le Directory and DocumentRoot pointent bien vers le dossier public

Page blanche

Si une page blanche apparait la première fois que vous tentez d'accèder à l'application vérifier les droits sur le dossier storage

 # Group Writable (Group, User Writable)
$ sudo chmod -R gu+w app/storage

# World-writable (Group, User, Other Writable)
$ sudo chmod -R guo+w app/storage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment