Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • fusiondirectory fusiondirectory
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 35
    • Issues 35
    • List
    • Boards
    • Service Desk
    • Milestones
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • fusiondirectoryfusiondirectory
  • fusiondirectoryfusiondirectory
  • Issues
  • #5503
Closed
Open
Issue created Apr 30, 2017 by bmortier@bmortierMaintainer

Series of issues with FreeBSD 10.3

Hi everyone!

So, the latest version of FusionDirectory is broken in a few ways on FreeBSD 10.3. I have not yet successfully gotten it to run. I am following the directions from https://documentation.fusiondirectory.org/en/documentation/admin_installation_from_source . So far I did the following:

For PHP requirements:

pkg install nginx php56 php56-ldap php56-gettext php56-curl php56-iconv php56-hash php56-imap php56-mbstring pear-MDB2_Driver_mysql pear-MDB2_Driver_mysqli pecl-imagick php56-openssl php56-session

For Perl requirements:

pkg install p5-Path-Class p5-perl-ldap p5-Mime-Base64 p5-Crypt-PasswdMD5 p5-Crypt-CBC p5-File-Copy-Recursive p5-Archive-Extract p5-XML-Twig

So far so good. Next, fetch the packages:

cd /var/www
fetch https://github.com/fusiondirectory/fusiondirectory/archive/fusiondirectory-1.0.20.tar.gz
fetch -o fusiondirectory-plugins-1.0.20.tar.gz https://github.com/fusiondirectory/fusiondirectory-plugins/archive/fusiondirectory-1.0.20.tar.gz

Installing core by the source directions is mostly fine. Due to the different paths in FreeBSD, I have to use the following flags:

fusiondirectory-setup --set-fd_config_dir=/usr/local/etc/fusiondirectory --set-ldap_conf=/usr/local/etc/openldap/ldap.conf --set-fd_smarty_dir=/usr/local/share/smarty3 --write-vars --check-directories --update-cache --update-locales

+BUG+: The following error occurs:

Setting fd_config_dir to /usr/local/etc/fusiondirectory
Setting ldap_conf to /usr/local/etc/openldap/ldap.conf
Setting fd_smarty_dir to /usr/local/share/smarty3
Choose FusionDirectory Directories
Checking FusionDirectory's directories
! Looks like you are not a Debian, Suse, Redhat or Mageia, I don't know your distribution !
What is your apache group?:
www
/var/www/fusiondirectory exists…
/var/www/fusiondirectory is not set properly, do you want to fix it ?:  [Yes/No]?
yes
Use of uninitialized value $group_gid in chown at /usr/local/bin/fusiondirectory-setup line 483,  line 2.
/usr/local/etc/fusiondirectory exists…
-- snip --

Cause: This is because in FreeBSD, the root group is "wheel". If you hard-set $group = 'wheel';, for example, then it works fine.

+BUG+: If I try to install plugins, it errors out:

# fusiondirectory-setup --set-fd_config_dir=/usr/local/etc/fusiondirectory --set-ldap_conf=/usr/local/etc/openldap/ldap.conf --set-fd_smarty_dir=/usr/local/share/smarty3 --write-vars --check-directories --update-cache --update-locales --install-plugins
Setting fd_config_dir to /usr/local/etc/fusiondirectory
Setting ldap_conf to /usr/local/etc/openldap/ldap.conf
Setting fd_smarty_dir to /usr/local/share/smarty3
Choose FusionDirectory Directories
Checking FusionDirectory's directories
! Looks like you are not a Debian, Suse, Redhat or Mageia, I don't know your distribution !
What is your apache group?:
www
/var/www/fusiondirectory exists…
Rights on /var/www/fusiondirectory are correct
/usr/local/etc/fusiondirectory exists…
Rights on /usr/local/etc/fusiondirectory are correct
/var/spool/fusiondirectory exists…
Rights on /var/spool/fusiondirectory are correct
/var/cache/fusiondirectory exists…
Rights on /var/cache/fusiondirectory are correct
/var/cache/fusiondirectory/tmp exists…
Rights on /var/cache/fusiondirectory/tmp are correct
/var/cache/fusiondirectory/fai exists…
Rights on /var/cache/fusiondirectory/fai are correct
/var/cache/fusiondirectory/template exists…
Rights on /var/cache/fusiondirectory/template are correct
Updating class.cache
Updating translations
Installing FusionDirectory's plugins
Where is your plugins archive ?:
/var/www/fusiondirectory-plugins-1.0.20.tar.gz
Installing plugins into /var/www/fusiondirectory, please wait...
Can't open directory /tmp/fusiondirectory-plugins-1.0.20: No such file or directory at /usr/local/bin/fusiondirectory-setup line 1139.

Cause: This is because the directory structure within the plugins .tar.gz from Github.com extracts to /tmp/fusiondirectory-plugins-fusiondirectory-1.0.20/. If you mv this to /tmp/fusiondirectory-plugins-1.0.20/, it works fine.

Now you in theory should be all set to run it from Nginx/Apache/etc. But, no...

+BUG+: If you try to view index.php or setup.php, you get this error:

PHP Fatal error:  require(): Failed opening required '/usr/local/share/smarty3' (include_path='.:/var/www/fusiondirectory/include:/usr/share/php:/usr/share/php') in /var/www/fusiondirectory/include/php_setup.inc on line 334

Fatal error: require(): Failed opening required '/usr/local/share/smarty3' (include_path='.:/var/www/fusiondirectory/include:/usr/share/php:/usr/share/php') in /var/www/fusiondirectory/include/php_setup.inc on line 334

Cause: This is because in /var/www/fusiondirectory/include/variables.inc, SMARTY is set to /usr/local/share/smarty3 (that's fine). But in /var/www/fusiondirectory/include/php_setup.inc, it calls require(SMARTY); which tries to require() the whole directory.

Fix: Change that line to require(SMARTY.'/Smarty.class.php');

From this point, I hope everything is fine. Still nope...

+BUG+: Smarty3 from FreeBSD doesn't seem to play well with FusionDirectory. If I run setup.php from the command line to view errors, I get this:

# php setup.php 
ldap_create
ldap_url_parse_ext(ldap://localhost:389)
ldap_sasl_bind_s
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP localhost:389
ldap_new_socket: 5
ldap_prepare_socket: 5
ldap_connect_to_host: Trying 127.0.0.1:389
ldap_pvt_connect: fd: 5 tm: -1 async: 0
attempting to connect: 
connect errno: 61
ldap_close_socket: 5
ldap_new_socket: -1
ldap_err2string
PHP Fatal error:  Uncaught  --> Smarty Compiler: Syntax error in template "file:/var/www/fusiondirectory/setup/setup_welcome.tpl"  on line 3 "{t}This seems to be the first time you start FusionDirectory - we didn't find any configuration right now. This simple wizard intends to help you while setting it up.{/t}" unknown tag "t" <-- 
  thrown in /usr/local/share/smarty3/sysplugins/smarty_internal_templatecompilerbase.php on line 3

Fatal error: Uncaught  --> Smarty Compiler: Syntax error in template "file:/var/www/fusiondirectory/setup/setup_welcome.tpl"  on line 3 "{t}This seems to be the first time you start FusionDirectory - we didn't find any configuration right now. This simple wizard intends to help you while setting it up.{/t}" unknown tag "t" <-- 
  thrown in /usr/local/share/smarty3/sysplugins/smarty_internal_templatecompilerbase.php on line 3

This is where I eventually gave up. :(

Edited Oct 16, 2017 by bmortier
Assignee
Assign to
Time tracking