Неустранимая ошибка: необнаруженная ошибка: вызов неопределенной функции sqlsrv_connect () в /var/www/localhost/htdocs/login.php:8 Трассировка стека: #0 {main} добавлено в /var/www/localhost/htdocs/login.php в режиме онлайн 8.
Но когда я запускаю php -m, я вижу необходимые драйверы. Кроме того, драйверы также отображаются с помощью phpinfo():
Код: Выделить всё
Additional .ini files parsed /etc/php83/conf.d/00_curl.ini, /etc/php83/conf.d/00_mbstring.ini, /etc/php83/conf.d/00_odbc. ini, /etc/php83/conf.d/00_opcache.ini, /etc/php83/conf.d/00_openssl.ini, /etc/php83/conf.d/00_pdo.ini, /etc/php83/conf.d/00_session. ini, /etc/php83/conf.d/00_xml.ini, /etc/php83/conf.d/01_mysqlnd.ini, /etc/php83/conf.d/01_pdo_sqlite.ini, /etc/php83/conf.d/02_mysqli. ini, /etc/php83/conf.d/02_pdo_mysql.ini, /etc/php83/conf.d/docker-php-ext-pdo_sqlsrv.ini, /etc/php83/conf.d/docker-php-ext-sqlsrv.ini
и добавил эти команды в свой файл Docker:
Код: Выделить всё
FROM namoshek/php-mssql:8.3-cli-alpine
USER root
RUN docker-php-ext-install session
RUN apk update && apk add --no-cache apache2 apache2-utils php php-apache2 php-mysqli php-pdo_mysql php-json php-opcache session.so
RUN apk add --no-cache unixodbc unixodbc-dev
RUN echo "extension=pdo_sqlsrv" >> /usr/local/etc/php/php.ini \
&& echo "extension=sqlsrv" >> /usr/local/etc/php/php.ini
RUN echo "LoadModule php_module modules/libphp.so" >> /etc/apache2/httpd.conf \
&& echo "AddHandler php-script .php" >> /etc/apache2/httpd.conf \
&& echo "DirectoryIndex index.php index.html" >> /etc/apache2/httpd.conf
CMD ["/bin/sh", "-c", "httpd -D FOREGROUND"]
Почему-то я до сих пор не могу найти решение. PHP должен знать эту функцию и уметь устанавливать соединение с SQL Server.
Подробнее здесь: https://stackoverflow.com/questions/791 ... when-i-use
Мобильная версия