====== Technical FAQ ======
==== How VHFFS store its own data ?====
In fact, VHFFS use a PostgreSQL server to store all its data. This server must be different of the PostgreSQL server for websites and can be secure (all passwords are in the database and websites must not have access to it).
==== Why the install script show errors like Permission denied ? ====
You have to be //root// to install successfully vhffs on your system. The install script write his files in ///usr/share/vhffs// and ///usr/lib/vhffs// directories and create the ///etc/vhffs/vhffs.conf// file if it doesn't exist.
==== Which version of PostgreSQL should be used ? ====
In fact, all versions can be used, from 7.4 to lastest. However, it is better to use the lastest version of PostgreSQL, the 7.4 has some problems when VHFFS has many users (more than 2000).
==== How VHFFS find users on the system ? Users are not in ''/etc/passwd'' ? ====
Your system should have the //libnss-pgsql// library installed. With it, the system can found users on your system through the VHFFS database.
==== I set up the VHFFS database on a server and the robots run on another machine and cannot connect the database server ====
This is a mistake in the //pg_hba.conf// file. The //pg_hba.conf// is used to specify which user can connect on the database. For more informations, please read the PostgreSQL documentation on [[http://www.postgresql.org]].
==== I have to perform an operation of maintainance for my hosting system, how can I stop the panel ? ====
Very simple :
- Stop your webserver (''apache2ctl stop'')
- Edit the config file of vhffs (''/etc/vhffs/vhffs.conf''), then, be sure that you have //open = no// in the section.
- Restart your webserver (''apache2ctl start'')
To open the panel, simply edit ''vhffs.conf'' and put ''open=yes''.
==== The vhffs-robots stalled. What to do ? ====
You probably use a lockfile. Simply delete this lockfile, the robots will run again.
==== The web-interface returns an error ====
You probably forgot to install a perl-dependency. So, you should see the perl error message on you error log on //Apache//. This error message tells which perl module is missing. Simply install this module by the way you want (//cpan// or package from your distribution).
Another way to check if your installation contains all necessary perl-modules is to run the ''vhffs-checkinstall'' program (''/usr/bin/vhffs-checkinstall'').
==== I have an error, the authentification works, but the user cannot access to the panel menu ====
The panel uses the ''/tmp/'' directory to put sessions informations. Be sure that Apache can write files in the directory.
==== How the install-script find dependencies ?====
There is two methods :
- If you use //Debian// (or debian-like distribution like //Ubuntu//), the system can install perl-dependencies with packages. This script just download and install debian packages to get a fully functionnal VHFFS. However, be carefull, it install it on a machine, but if you use vhffs on another machine, you need those dependencies.
- If you use another unix system (like Mac OS X), the install-script uses the //cpan// program to install perl modules. It is a generic program to install perl-modules.
==== How VHFFS find websites ? I don't see config file with ====
In fact, VHFFS was designed for massive hosting. So, it's very stupid to use the //VirtualHost// directive, because it force to reload apache and it's imply a little downtime. So, this solution is not the best. We use an apache-module designed for VHFFS called //mod-vhost-hash-alias//. This module (available on //Debian//) has to be installed on your webserver(s) and loaded by //Apache2//. This module work as it :
- A user ask for a webpage (i.e http://example.com). His browser send the request to the apache webservers.
- Webservers receive the adress (http://example.com), compute a hash for this adress (i.e 5ababd603b22780302dd8d83498e5172). The hash is splitted on 2 caracters (5a ba bd ....).
- The first, second and third split compose a directory (//5a/ba/bd//). From the directory which contains all websites (i.e /vhffs/websites/), we obtain the //DocumentRoot// ( ///vhffs/websites/5a/ba/bd/// )
- If this directory exists, the website exits and the document is take. Otherwise, the website doesn't exists.
Website integration on Apache is totally dynamic and doesn't need a reload or restart.
==== Where is the documentation of the VHFFS perl API ? ====
You can found perl documentation for VHFFS api on your system, by using the ''perldoc'' command. For example, the command ''perldoc Vhffs::Main'' prints the documentation of the ''Vhffs::Main'' module.
==== The panel returns sometimes an error, what is it ? ====
You probably have too many connections on your database. You have several solutions :
- If you use an old version of PosgreSQL, update to the lastest version
- When you use the panel, no connection is available on the VHFFS database. You should increase the connections number in the //PostgreSQL// configuration.
Another source of error can be a missing perl-module. If you have errors on the same page, you should run the ''vhffs-checkinstall'' program (''/usr/bin/vhffs-checkinstall'').
==== What is the mailuser module ? ====
When you have an hosting service, you can provide a free mail-adress for your users. For example, if you have the hosting service //MyHosting// with the domain name //myhosting.com//, you could choose to offer an email adress on this domain for each user. The mailuser module allow this service. So, each user on the platform can create //user@myhosting.com// mail-adress and declare it as a popable account or a simple forward. The mailuser module use the ''mail'' module, so you have to enable it if you use ''mailuser''.
==== The panel does not store any avatar ? What is the problem ? ====
In fact, you have to create the ''/data/avatar'' directory. But this directory must have the rights of the Apache user. On Debian, Apache user is //www-data// (and this user is in the //www-data// group). So, you have to run the ''chown -R /data/avatar'' to have a ''/data/avatar'' writeable for the panel.