Original HowTo by http://juboblo.gr #installingfreesome
- #canworkwithoutsudo but this HowTo assumes #havesudo . Should be straightforward even #withoutsudo if existing LAMP (GNU/Linux, Apache or Nginx, MariaDB or MySQL and php) installed on the system. I used MariaDB and Nginx since the https://d.consumium.org #diaspora pod is configured to use that.
- Normative instructions: https://git.gnu.io/gnu/gnu-social/blob/master/INSTALL
- Also I read these slightly dated Debian specific instructions: https://levlaz.org/installing-gnu-social-on-a-debian-server/
Replacing MySQL with MariaDB
Following these instructions https://askubuntu.com/questions/531455/how-to-drop-in-replace-mysql-with-mariadb (written for Ubuntu14.04) blindly would have made a mess of this but they still outline what you want to do. Since they wanted to remove the ruby specific stuff which I wanted to stay to retain diaspora* pod working.
So I shut down diaspora* processes the usual waya and MySQL with ‘mysqladmin -uroot -p stop’
The instructions say to
sudo apt-get remove --purge mysql-server mysql-client mysql-common
but I used instead
sudo apt-get remove --purge mysql-server mysql-client
Which left the ruby stuff in place which is a good idea since afaik MariaDB is binary compatible with MySQL add-on stuff
followed by
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mariadb-server
And MariaDB was up and running which I checked by ‘mysql -uroot -p’ so the downtime for the pod was only like 5 minutes for this step.
Installing the dependencies for GNUsocial
‘sudo aptitude install php5-curl php5-gd php5-gmp php5-intl php5-json php5-mysqlnd’
Installing optimizations / accelerators for GNUsocial
I went with this ‘ sudo aptitude install php5-xcache exif’
I’m not sure if php5-xcache (an opcode cache system) is what the official installation instructions refer to as ‘opcache’. At least /etc/php5/mods-available/ is showing a opcache.ini so I’m guess it was that.
Downloading GNUsocial code
‘sudo mkdir /var/www/gnusocial’
‘sudo chgrp www-data /var/www/gnusocial/’
‘sudo chmod g+w /var/www/gnusocial/’
‘sudo git clone https://git.gnu.io/gnu/gnu-social.git gnusocial/’
and you are done
Creating the database
From shell run
mysqladmin -u "root" -p create social
GRANT ALL on social.*
TO 'social'@'localhost'
IDENTIFIED BY 'agoodpassword';
The command above is to be executed in the MariaDB client (start it with ‘mysql -uroot -p social’)
Get an SSL cert and key for your GNU social instance
I have not yet tried out https://letsencrypt.org/ but have heard good things about it and you cannot really beat the price of 0€. A few companies I am clientele of are supporting it financially. Mainly https://gandi.net – a very nice registrar. Good even if not the cheapest around. High sortiment of domain names and rock solid tek with the latest copyleft solutions.
Configure Apache/Nginx with the help of the example .conf files in the directory you cloned the social software into.
You can test the configuration file makes sense by
‘sudo nginx -t’
Remember to reload after editing.
‘sudo service nginx reload’
Finishing up
Once you have configured you httpd there is still one thing to do before proceeding to https://social.example.com/install.php
For some reason the installation guide did not mention that the default settings in the httpd.conf.example file expects unix:/var/run/php5-fpm.sock; to just be there.
install with
‘sudo aptitude php5-fpm’
This was how I got GNU social to work in the same box as the diaspora* pod.