Где и как установить LD_LIBRARY_PATH
быть видимым apache?
Я попытался добавить следующий код в .bash_profile
:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/folder_with_library/
export LD_LIBRARY_PATH
Я перезапускаю apache, но в phpinfo()
я все еще вижу ошибки, значит библиотеки не загружены.
Он работал по команде: echo $LD_LIBRARY_PATH
.
Любая помощь, как установить этот путь?
Мне нужно установить это на сервере VPS - os is linux red-hat.
/etc/init.d/httpd
содержимое файла:
#!/bin/bash
#
# Startup script for the Apache Web Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
# HTML files and CGI.
# processname: httpd
# pidfile: /var/run/httpd.pid
# config: /etc/httpd/conf/access.conf
# config: /etc/httpd/conf/httpd.conf
# config: /etc/httpd/conf/srm.conf
ulimit -HSn 32768
# Source function library.
. /etc/rc.d/init.d/functions
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=/usr/sbin/httpd
prog=httpd
RETVAL=0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/etc/domeny:/etc/local/bin:.:$PATH
ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin LC_MESSAGES=en_US"
#LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/sql_anywhere/
#export LD_LIBRARY_PATH
# check for 1.3 configuration
check13 () {
CONFFILE=/etc/httpd/conf/httpd.conf
GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
GONE="${GONE}AccessConfig|ResourceConfig)"
if grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then
echo
echo 1>&2 " Apache 1.3 configuration directives found"
echo 1>&2 " please read @docdir@/migration.html"
failure "Apache 1.3 config directives test"
echo
exit 1
fi
}
# The semantics of these two functions differ from the way apachectl does
# things -- attempting to start while running is a failure, and shutdown
# when not running is also a failure. So we just do it the way init scripts
# are expected to behave here.
start() {
echo -n $"Starting $prog: "
check13 || exit 1
$ENV $httpd -k start -DSSL
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}
waitforexit() {
count=${2:-30}
while [ 0$count -gt 0 ]
do
PIDS=`ps -C$prog --no-heading e | grep $httpd` || break
PIDS=`echo "$PIDS" | awk '{print $1}' | tr '\n' ' '`
echo Remaining processes: $PIDS
stop
sleep 2
count=`expr $count - 1`
done
if [ 0$count -eq 0 ];
then
echo Remaining processes: $PIDS
return 1
fi
return 0
}
reload() {
echo -n $"Reloading $prog: "
check13 || exit 1
killproc $httpd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
waitforexit "httpd" 20
start
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
Поскольку сценарий инициализации включает в себя следующее:
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
Вы можете установить это в /etc/sysconfig/httpd
:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/folder_with_library/
export LD_LIBRARY_PATH
ОБНОВЛЕНИЕ Четверг, 6 сентября 23:27:06 ICT 2012
Изменить ENV
строка к:
ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin LC_MESSAGES=en_US LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/sql_anywhere/"
и попробуй еще раз.
ОБНОВЛЕНИЕ Пт 7 сентября 00:14:11 ICT 2012
Добавьте в сценарий инициализации следующее (под # Source function library.
line), чтобы увидеть, что происходит:
# Source SQL Anywhere
. /path/to/the/sa_config.sh