forked from GNUsocial/gnu-social
INSTALL file overhaul, mostly done.
This commit is contained in:
parent
6abcc24834
commit
49cf19ccfe
236
INSTALL
236
INSTALL
@ -6,13 +6,16 @@ TABLE OF CONTENTS
|
|||||||
* Installation
|
* Installation
|
||||||
- Getting it up and running
|
- Getting it up and running
|
||||||
- Fancy URLs
|
- Fancy URLs
|
||||||
|
- Themes
|
||||||
|
- Private
|
||||||
|
* Extra features
|
||||||
- Sphinx
|
- Sphinx
|
||||||
- SMS
|
- SMS
|
||||||
- Queues and daemons
|
|
||||||
- Themes
|
|
||||||
- Translation
|
- Translation
|
||||||
|
- Queues and daemons
|
||||||
|
* After installation
|
||||||
- Backups
|
- Backups
|
||||||
- Private
|
- Upgrading
|
||||||
|
|
||||||
Prerequisites
|
Prerequisites
|
||||||
=============
|
=============
|
||||||
@ -44,7 +47,7 @@ functional setup of GNU Social:
|
|||||||
- php5-intl Internationalization support (transliteration et al).
|
- php5-intl Internationalization support (transliteration et al).
|
||||||
- php5-json For WebFinger lookups and more.
|
- php5-json For WebFinger lookups and more.
|
||||||
- php5-mysqlnd The native driver for PHP5 MariaDB connections. If you
|
- php5-mysqlnd The native driver for PHP5 MariaDB connections. If you
|
||||||
use MySQL, 'mysql' or 'mysqli' may work.
|
use MySQL, 'php5-mysql' or 'php5-mysqli' may be enough.
|
||||||
|
|
||||||
The above package names are for Debian based systems. In the case of
|
The above package names are for Debian based systems. In the case of
|
||||||
Arch Linux, PHP is compiled with support for most extensions but they
|
Arch Linux, PHP is compiled with support for most extensions but they
|
||||||
@ -69,7 +72,7 @@ For some functionality, you will also need the following extensions:
|
|||||||
|
|
||||||
You may also experience better performance from your site if you configure
|
You may also experience better performance from your site if you configure
|
||||||
a PHP cache/accelerator. Most distributions come with "opcache" support.
|
a PHP cache/accelerator. Most distributions come with "opcache" support.
|
||||||
Enable it in your php.ini, it is documented there together with its settings.
|
Enable it in your php.ini where it is documented together with its settings.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
============
|
============
|
||||||
@ -131,9 +134,9 @@ especially if you've previously installed PHP/MariaDB packages.
|
|||||||
writeable by the Web server group, as noted above.
|
writeable by the Web server group, as noted above.
|
||||||
|
|
||||||
5. Create a database to hold your site data. Something like this
|
5. Create a database to hold your site data. Something like this
|
||||||
should work:
|
should work (you will be prompted for your database password):
|
||||||
|
|
||||||
mysqladmin -u "root" --password="rootpassword" create gnusocial
|
mysqladmin -u "root" -p create social
|
||||||
|
|
||||||
Note that GNU Social should have its own database; you should not share
|
Note that GNU Social should have its own database; you should not share
|
||||||
the database with another program. You can name it whatever you want,
|
the database with another program. You can name it whatever you want,
|
||||||
@ -147,17 +150,17 @@ especially if you've previously installed PHP/MariaDB packages.
|
|||||||
database. If you have shell access, this will probably work from the
|
database. If you have shell access, this will probably work from the
|
||||||
MariaDB shell:
|
MariaDB shell:
|
||||||
|
|
||||||
GRANT ALL on gnusocial.*
|
GRANT ALL on social.*
|
||||||
TO 'gnusocial'@'localhost'
|
TO 'social'@'localhost'
|
||||||
IDENTIFIED BY 'agoodpassword';
|
IDENTIFIED BY 'agoodpassword';
|
||||||
|
|
||||||
You should change the user identifier 'gnusocial' and 'agoodpassword'
|
You should change the user identifier 'social' and 'agoodpassword'
|
||||||
to your preferred new database username and password. You may want to
|
to your preferred new database username and password. You may want to
|
||||||
test logging in to MariaDB as this new user.
|
test logging in to MariaDB as this new user.
|
||||||
|
|
||||||
7. In a browser, navigate to the GNU Social install script; something like:
|
7. In a browser, navigate to the GNU Social install script; something like:
|
||||||
|
|
||||||
http://social.example.net/install.php
|
https://social.example.net/install.php
|
||||||
|
|
||||||
Enter the database connection information and your site name. The
|
Enter the database connection information and your site name. The
|
||||||
install program will configure your site and install the initial,
|
install program will configure your site and install the initial,
|
||||||
@ -171,55 +174,100 @@ Fancy URLs
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
By default, GNU Social will use URLs that include the main PHP program's
|
By default, GNU Social will use URLs that include the main PHP program's
|
||||||
name in them. For example, a user's home profile might be found at:
|
name in them. For example, a user's home profile might be found at either
|
||||||
|
of these URLS depending on the webserver's configuration and capabilities:
|
||||||
|
|
||||||
http://example.net/gnusocial/index.php/gnusocial/fred
|
https://social.example.net/index.php/fred
|
||||||
|
https://social.example.net/index.php?p=fred
|
||||||
|
|
||||||
On certain systems that don't support this kind of syntax, they'll
|
It's possible to configure the software to use fancy URLs so it looks like
|
||||||
look like this:
|
this instead:
|
||||||
|
|
||||||
http://example.net/gnusocial/index.php?p=gnusocial/fred
|
https://social.example.net/fred
|
||||||
|
|
||||||
It's possible to configure the software so it looks like this instead:
|
|
||||||
|
|
||||||
http://example.net/gnusocial/fred
|
|
||||||
|
|
||||||
These "fancy URLs" are more readable and memorable for users. To use
|
These "fancy URLs" are more readable and memorable for users. To use
|
||||||
fancy URLs, you must either have Apache 2.x with .htaccess enabled and
|
fancy URLs, you must either have Apache 2.x with .htaccess enabled and
|
||||||
mod_rewrite enabled, -OR- know how to configure "url redirection" in
|
mod_rewrite enabled, -OR- know how to configure "url redirection" in
|
||||||
your server (like lighttpd or nginx).
|
your server (like lighttpd or nginx).
|
||||||
|
|
||||||
1. Copy the htaccess.sample file to .htaccess in your StatusNet
|
1. See the instructions for each respective webserver software:
|
||||||
directory.
|
* For Apache, inspect the "htaccess.sample" file and save it as
|
||||||
|
".htaccess" after making any necessary modifications. Our sample
|
||||||
2. Change the "RewriteBase" in the new .htaccess file to be the URL path
|
file is well commented.
|
||||||
to your GNU Social installation on your server. Typically this will
|
* For lighttpd, inspect the lighttpd.conf.example file and apply the
|
||||||
be the path to your GNU Social directory relative to your Web root.
|
appropriate changes in your virtualhost configuration for lighttpd.
|
||||||
If you are installing it in the root directory, leave it as '/'.
|
* For nginx and other webservers, we gladly accept contributions of
|
||||||
|
server configuration examples.
|
||||||
3. Add, uncomment or change a line in your config.php file so it says:
|
|
||||||
|
|
||||||
|
2. Assuming your webserver is properly configured and have its settings
|
||||||
|
applied (remember to reload/restart it), you can add this to your
|
||||||
|
GNU social's config.php file:
|
||||||
$config['site']['fancy'] = true;
|
$config['site']['fancy'] = true;
|
||||||
|
|
||||||
You should now be able to navigate to a "fancy" URL on your server,
|
You should now be able to navigate to a "fancy" URL on your server,
|
||||||
like:
|
like:
|
||||||
|
|
||||||
http://example.net/gnusocial/main/register
|
https://social.example.net/main/register
|
||||||
|
|
||||||
If you changed your HTTP server configuration, you may need to restart
|
Themes
|
||||||
the server first.
|
------
|
||||||
|
|
||||||
If it doesn't work, double-check that AllowOverride for the GNU Social
|
As of right now, your ability change the theme is limited to CSS
|
||||||
directory is 'All' in your Apache configuration file. This is usually
|
stylesheets and some image files; you can't change the HTML output,
|
||||||
/etc/httpd.conf, /etc/apache/httpd.conf, or (on Debian and Ubuntu)
|
like adding or removing menu items, without the help of a plugin.
|
||||||
/etc/apache2/sites-available/default. See the Apache documentation for
|
|
||||||
.htaccess files for more details:
|
|
||||||
|
|
||||||
http://httpd.apache.org/docs/2.2/howto/htaccess.html
|
You can choose a theme using the $config['site']['theme'] element in
|
||||||
|
the config.php file. See below for details.
|
||||||
|
|
||||||
Also, check that mod_rewrite is installed and enabled:
|
You can add your own theme by making a sub-directory of the 'theme'
|
||||||
|
subdirectory with the name of your theme. Each theme can have the
|
||||||
|
following files:
|
||||||
|
|
||||||
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html
|
display.css: a CSS2 file for "default" styling for all browsers.
|
||||||
|
logo.png: a logo image for the site.
|
||||||
|
default-avatar-profile.png: a 96x96 pixel image to use as the avatar for
|
||||||
|
users who don't upload their own.
|
||||||
|
default-avatar-stream.png: Ditto, but 48x48. For streams of notices.
|
||||||
|
default-avatar-mini.png: Ditto ditto, but 24x24. For subscriptions
|
||||||
|
listing on profile pages.
|
||||||
|
|
||||||
|
You may want to start by copying the files from the default theme to
|
||||||
|
your own directory.
|
||||||
|
|
||||||
|
Private
|
||||||
|
-------
|
||||||
|
|
||||||
|
A GNU social node can be configured as "private", which means it will not
|
||||||
|
federate with other nodes in the network. It is not a recommended method
|
||||||
|
of using GNU social and we cannot at the current state of development
|
||||||
|
guarantee that there are no leaks (what a public network sees as features,
|
||||||
|
private sites will likely see as bugs).
|
||||||
|
|
||||||
|
Private nodes are however an easy way to easily setup collaboration and
|
||||||
|
image sharing within a workgroup or a smaller community where federation
|
||||||
|
is not a desired feature. Also, it is possible to change this setting and
|
||||||
|
instantly gain full federation features.
|
||||||
|
|
||||||
|
Access to file attachments can also be restricted to logged-in users only:
|
||||||
|
|
||||||
|
1. Add a directory outside the web root where your file uploads will be
|
||||||
|
stored. Use this command as an initial guideline to create it:
|
||||||
|
|
||||||
|
mkdir /var/www/gnusocial-files
|
||||||
|
|
||||||
|
2. Make the file uploads directory writeable by the web server. An
|
||||||
|
insecure way to do this is (to do it properly, read up on UNIX file
|
||||||
|
permissions and configure your webserver accordingly):
|
||||||
|
|
||||||
|
chmod a+x /var/www/gnusocial-files
|
||||||
|
|
||||||
|
3. Tell GNU social to use this directory for file uploads. Add a line
|
||||||
|
like this to your config.php:
|
||||||
|
|
||||||
|
$config['attachments']['dir'] = '/var/www/gnusocial-files';
|
||||||
|
|
||||||
|
Extra features
|
||||||
|
==============
|
||||||
|
|
||||||
Sphinx
|
Sphinx
|
||||||
------
|
------
|
||||||
@ -284,7 +332,21 @@ For this to work, there *must* be a domain or sub-domain for which all
|
|||||||
|
|
||||||
$config['mail']['domain'] = 'yourdomain.example.net';
|
$config['mail']['domain'] = 'yourdomain.example.net';
|
||||||
|
|
||||||
|
Translations
|
||||||
|
------------
|
||||||
|
|
||||||
|
For info on helping with translations, see the platform currently in use
|
||||||
|
for translations: https://www.transifex.com/projects/p/gnu-social/
|
||||||
|
|
||||||
|
Translations use the gettext system <http://www.gnu.org/software/gettext/>.
|
||||||
|
If you for some reason do not wish to sign up to the Transifex service,
|
||||||
|
you can review the files in the "locale/" sub-directory of GNU social.
|
||||||
|
Each plugin also has its own translation files.
|
||||||
|
|
||||||
|
To get your own site to use all the translated languages, and you are
|
||||||
|
tracking the git repo, you will need to install at least 'gettext' on
|
||||||
|
your system and then run:
|
||||||
|
$ make translations
|
||||||
|
|
||||||
Queues and daemons
|
Queues and daemons
|
||||||
------------------
|
------------------
|
||||||
@ -346,16 +408,13 @@ separate server is probably a good idea for high-volume sites.
|
|||||||
.htaccess file, but make sure that your config.php file is close
|
.htaccess file, but make sure that your config.php file is close
|
||||||
to, or identical to, your Web server's version.
|
to, or identical to, your Web server's version.
|
||||||
|
|
||||||
3. In your config.php files (both the Web server and the queues
|
3. In your config.php files (on the server where you run the queue
|
||||||
server!), set the following variable:
|
daemon), set the following variable:
|
||||||
|
|
||||||
$config['queue']['enabled'] = true;
|
|
||||||
$config['queue']['daemon'] = true;
|
$config['queue']['daemon'] = true;
|
||||||
|
|
||||||
You may also want to look at the 'daemon' section of this file for
|
You may also want to look at the 'Queues and Daemons' section in
|
||||||
more daemon options. Note that if you set the 'user' and/or 'group'
|
this file for more background processing options.
|
||||||
options, you'll need to create that user and/or group by hand.
|
|
||||||
They're not created automatically.
|
|
||||||
|
|
||||||
4. On the queues server, run the command scripts/startdaemons.sh.
|
4. On the queues server, run the command scripts/startdaemons.sh.
|
||||||
|
|
||||||
@ -385,85 +444,20 @@ It is also possible to use a STOMP server instead of our kind of hacky
|
|||||||
home-grown DB-based queue solution. This is strongly recommended for
|
home-grown DB-based queue solution. This is strongly recommended for
|
||||||
best response time, especially when using XMPP.
|
best response time, especially when using XMPP.
|
||||||
|
|
||||||
Themes
|
After installation
|
||||||
------
|
==================
|
||||||
|
|
||||||
Older themes (version 0.9.x and below) no longer work with StatusNet
|
|
||||||
1.0.x, due to major changes in the site layout. We ship with three new
|
|
||||||
themes for this version, 'neo', 'neo-blue' and 'neo-light'.
|
|
||||||
|
|
||||||
As of right now, your ability to change the theme is site-wide; users
|
|
||||||
can't choose their own theme. Additionally, the only thing you can
|
|
||||||
change in the theme is CSS stylesheets and some image files; you can't
|
|
||||||
change the HTML output, like adding or removing menu items.
|
|
||||||
|
|
||||||
You can choose a theme using the $config['site']['theme'] element in
|
|
||||||
the config.php file. See below for details.
|
|
||||||
|
|
||||||
You can add your own theme by making a sub-directory of the 'theme'
|
|
||||||
subdirectory with the name of your theme. Each theme can have the
|
|
||||||
following files:
|
|
||||||
|
|
||||||
display.css: a CSS2 file for "default" styling for all browsers.
|
|
||||||
logo.png: a logo image for the site.
|
|
||||||
default-avatar-profile.png: a 96x96 pixel image to use as the avatar for
|
|
||||||
users who don't upload their own.
|
|
||||||
default-avatar-stream.png: Ditto, but 48x48. For streams of notices.
|
|
||||||
default-avatar-mini.png: Ditto ditto, but 24x24. For subscriptions
|
|
||||||
listing on profile pages.
|
|
||||||
|
|
||||||
You may want to start by copying the files from the default theme to
|
|
||||||
your own directory.
|
|
||||||
|
|
||||||
Translation
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Translations in StatusNet use the gettext system <http://www.gnu.org/software/gettext/>.
|
|
||||||
Theoretically, you can add your own sub-directory to the locale/
|
|
||||||
subdirectory to add a new language to your system. You'll need to
|
|
||||||
compile the ".po" files into ".mo" files, however.
|
|
||||||
|
|
||||||
Contributions of translation information to StatusNet are very easy:
|
|
||||||
you can use the Web interface at translatewiki.net to add one
|
|
||||||
or a few or lots of new translations -- or even new languages. You can
|
|
||||||
also download more up-to-date .po files there, if you so desire.
|
|
||||||
|
|
||||||
For info on helping with translations, see http://status.net/wiki/Translations
|
|
||||||
|
|
||||||
Backups
|
Backups
|
||||||
-------
|
-------
|
||||||
|
|
||||||
There is no built-in system for doing backups in StatusNet. You can make
|
There is no built-in system for doing backups in GNU social. You can make
|
||||||
backups of a working StatusNet system by backing up the database and
|
backups of a working StatusNet system by backing up the database and
|
||||||
the Web directory. To backup the database use mysqldump <http://ur1.ca/7xo>
|
the Web directory. To backup the database use mysqldump <https://mariadb.com/kb/en/mariadb/mysqldump/>
|
||||||
and to backup the Web directory, try tar.
|
and to backup the Web directory, try tar.
|
||||||
|
|
||||||
Private
|
Upgrading
|
||||||
-------
|
---------
|
||||||
|
|
||||||
The administrator can set the "private" flag for a site so that it's
|
Upgrading is strongly recommended to stay up to date with security fixes
|
||||||
not visible to non-logged-in users. (This is the default for new installs of version 1.0!)
|
and new features. For instructions on how to upgrade GNU social code,
|
||||||
|
please see the UPGRADE file.
|
||||||
This might be useful for workgroups who want to share a social
|
|
||||||
networking site for project management, but host it on a public
|
|
||||||
server.
|
|
||||||
|
|
||||||
Total privacy is attempted but not guaranteed or ensured. Private sites
|
|
||||||
currently don't work well with OStatus federation.
|
|
||||||
|
|
||||||
Access to file attachments can also be restricted to logged-in users only.
|
|
||||||
|
|
||||||
1. Add a directory outside the web root where your file uploads will be
|
|
||||||
stored. Usually a command like this will work:
|
|
||||||
|
|
||||||
mkdir /var/www/statusnet-files
|
|
||||||
|
|
||||||
2. Make the file uploads directory writeable by the web server. An
|
|
||||||
insecure way to do this is:
|
|
||||||
|
|
||||||
chmod a+x /var/www/statusnet-files
|
|
||||||
|
|
||||||
3. Tell StatusNet to use this directory for file uploads. Add a line
|
|
||||||
like this to your config.php:
|
|
||||||
|
|
||||||
$config['attachments']['dir'] = '/var/www/statusnet-files';
|
|
||||||
|
Loading…
Reference in New Issue
Block a user