Назад | Перейти на главную страницу

как установить LD_LIBRARY_PATH на VPS red-hat linux, чтобы он был виден apache

Где и как установить 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