Dans ce tutoriel, nous allons vous expliquer comment installer Publify sur un VPS Ubuntu 14.04 avec MariaDB, Puma et Nginx. Publify est un logiciel de publication Web open source simple mais complet. Publify est construit sur le framework Ruby on Rails et c'est le plus ancien projet open source Rails en vie. Ce guide devrait également fonctionner sur d'autres systèmes Linux VPS, mais a été testé et écrit pour Ubuntu 14.04 VPS.
Connectez-vous à votre VPS via SSH
ssh user@vps
Mettre à jour le système et installer les packages nécessaires
[user]# sudo apt-get update && sudo apt-get -y upgrade [user]# sudo apt-get install software-properties-common imagemagick build-essential git openssl nano
Installer MariaDB 10.1
[user]# sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db [user]# sudo add-apt-repository 'deb [arch=amd64,i386] http://mirrors.accretive-networks.net/mariadb/repo/10.1/ubuntu trusty main' [user]# sudo apt-get update [user]# sudo apt-get install mariadb-server libmariadbclient-dev
Une fois l'installation terminée, exécutez la commande suivante pour sécuriser votre installation :
[user]# sudo mysql_secure_installation
Ensuite, nous devons créer une base de données pour notre installation Publify :
[user]# mysql -uroot -p MariaDB [(none)]> CREATE DATABASE publify CHARACTER SET utf8; MariaDB [(none)]> GRANT ALL PRIVILEGES ON publify.* TO 'publify'@'localhost' IDENTIFIED BY 'publify_passwd'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
Publier l'utilisateur
Créez un nouvel utilisateur système pour Publify.
[user]# sudo adduser --home /opt/publify --shell /bin/bash --gecos 'Publify publishing software' publify [user]# sudo install -d -m 755 -o publify -g publify /opt/publify [user]# sudo usermod -a -G sudo publify [user]# sudo su - publify
Installer Ruby en utilisant RVM
Les commandes suivantes sont exécutées en tant qu'utilisateur de publication.
[publify]# cd [publify]# curl -sSL https://rvm.io/mpapis.asc | gpg --import - [publify]# curl -sSL https://get.rvm.io | bash -s stable --ruby [publify]# rvm install ruby-2.1.5
Pour commencer à utiliser RVM, exécutez la commande suivante :
[publify]# source ~/.rvm/scripts/rvm
Pour vérifier que tout est fait correctement, utilisez la commande ruby --version
.
Le résultat doit ressembler à ce qui suit :
[publify]# ruby --version ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]
Installer Publify
Clonez la dernière version de Publify depuis github à l'aide de la commande suivante :
[publify]# cd && git clone https://github.com/publify/publify.git
[publify]# git checkout v8.2.0
Copiez database.yml.mysql en tant que database.yml
[publify]# cp ~/publify/config/database.yml.mysql ~/publify/config/database.yml
Ouvrez le fichier database.yml
fichier et mettre à jour nom d'utilisateur/mot de passe
[publify]# vim ~/publify/config/database.yml
production: login: &login adapter: mysql2 host: localhost username: publify password: publify_passwd
Créez un nouveau fichier de configuration Puma.
[publify]# nano ~/publify/config/puma.rb
#!/usr/bin/env puma application_path = '/opt/publify/publify' directory application_path environment 'production' daemonize true pidfile "#{application_path}/tmp/pids/puma.pid" state_path "#{application_path}/tmp/pids/puma.state" stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log" bind "unix://#{application_path}/tmp/sockets/publify.sock"
[publify]# mkdir -p ~/publify/tmp/{pids,log,sockets}
Installer des gemmes
[publify]# cd ~/publify [publify]# echo "gem 'puma'" >> Gemfile [publify]# echo "gem: --no-ri --no-rdoc" >> ~/.gemrc [publify]# RAILS_ENV=production bundle install --without development test postgresql sqlite
Préparer la base de données et compiler les assets
[publify]# RAILS_ENV=production rake db:setup [publify]# RAILS_ENV=production rake db:migrate [publify]# RAILS_ENV=production rake db:seed [publify]# RAILS_ENV=production rake assets:precompile
Créer un script Upstart
[publify]# sudo nano /etc/init/publify.conf
description "Puma Publify Service" start on filesystem or runlevel [2345] stop on runlevel [!2345] setuid publify setgid publify respawn respawn limit 3 30 script exec /bin/bash << EOT source /opt/publify/.rvm/scripts/rvm cd /opt/publify/publify exec puma -C config/puma.rb EOT end script
Vous pouvez désormais démarrer votre service Publify avec :
[publify]# sudo service publify start
Installer et configurer Nginx
La dernière version de Nginx 1.8 n'est pas disponible via les référentiels Ubuntu par défaut, nous allons donc ajouter le PPA "nginx/stable", mettre à jour le système et installer le package nginx.
[user]$ sudo add-apt-repository ppa:nginx/stable [user]$ sudo apt-get update [user]$ sudo apt-get install nginx
Créez un nouveau bloc de serveur Nginx avec le contenu suivant
[publify]# sudo nano /etc/nginx/sites-available/publify.domain.com
upstream publify { server unix:/opt/publify/publify/tmp/sockets/publify.sock; } server { server_name publify.domain.com; root /opt/publify/publify; location / { try_files $uri @ruby; } location @ruby { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_read_timeout 300; proxy_pass http://publify; } }
Activez le bloc serveur en créant un lien symbolique et redémarrez Nginx :
[user]# sudo ln -s /etc/nginx/sites-available/publify.domain.com /etc/nginx/sites-enabled/publify.domain.com [user]# sudo service nginx restart
C'est ça. Vous avez installé avec succès Publify sur votre VPS Ubuntu. Pour plus d'informations sur Publify, veuillez consulter le site Web de Publify.
Bien sûr, vous n'avez rien à faire si vous utilisez l'un de nos services d'hébergement VPS Linux, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de le configurer pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS . Si vous avez aimé cet article, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.