The problem I encountered, producing the same error, was that the web server runs as user _www and zabbix runs as user zabbix. I installed via MacPorts and am using the default Apache server. The semaphore is created with 660 permissions, so one or the other user is unable to access it.
% ipcs -s
IPC status from as of Tue Jul 22 11:08:18 MDT 2014
T ID KEY MODE OWNER GROUP
Semaphores:
...
s 655368 0x7a03e3ce --ra-ra---- _www _www
s 458761 0x7a03e2ed --ra------- _www _www
s 524298 0x7a03e559 --ra-ra---- _www _www
s 65547 0x7a0312c8 --ra------- zabbix zabbix
Rather than mess with the semaphore creation or group membership, I patched the zabbix_server.init file and run zebbix as user _www.
*** /opt/local/share/zabbix/zabbix_server.init 2014-07-21 17:42:14.000000000 -0600
--- /opt/local/share/zabbix/zabbix_server.init.orig 2014-07-22 11:11:49.000000000 -0600
***************
*** 3,10 ****
case "$1" in
start)
echo -n "Starting zabbix_server - 60s start delay for SQL server to load during boot"
! #sleep 60
! sudo -u _www /opt/local/sbin/zabbix/zabbix_server -c /opt/local/etc/zabbix/zabbix_server.conf
;;
stop)
--- 3,10 ----
case "$1" in
start)
echo -n "Starting zabbix_server - 60s start delay for SQL server to load during boot"
! sleep 60
! sudo -u zebbix /opt/local/sbin/zabbix/zabbix_server -c /opt/local/etc/zabbix/zabbix_server.conf
;;
stop)