This article applies to Angelfish Software: a self-hosted, self-contained, secure web analytics application.
Learn more about Angelfish here: Angelfish Software Overview
Angelfish v2 uses embedded Perl libraries. On Linux, these libraries are unable to unpack themselves if /tmp is mounted as noexec.
If /tmp is noexec, you will see an error message similar to the following when starting Angelfish:
[agf@centos6 2195]$ /usr/local/2195/agfsctl --start
Panic: '/usr/lib64/perl5/CORE/libperl.so' is not an ActivePerl 5.18 library
You can verify /tmp is noexec by running 'mount' - here's an example of the output from one of our QA servers:
[agf@centos6 2195]$ mount
/dev/mapper/vg_centos6-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,noexec,nosuid,nodev,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda2 on /boot type ext4 (rw)
/dev/sda1 on /boot/efi type vfat (rw,umask=0077,shortname=winnt)
/dev/mapper/vg_centos6-lv_tmp on /tmp type ext4 (rw,noexec,nosuid,nodev)
To resolve this issue, you'll need to mount /tmp as exec. There are a few ways to do this:
1) Permanent fix
edit /etc/fstab and remove 'noexec' from the options for /tmp
2) Temporary fix
run 'mount -o remount,noexec /tmp' (root or sudo privilege required for this)
Before performing either of the above, please check with your server security team.
You are not limited to these two options - your OS | cloud platform likely has a few ways to remove the noexec flag.