#php #sql-server #pdo #centos #centos8
#php #sql-сервер #pdo #centos #centos8
Вопрос:
Я успешно установил php 7.4 с пакетами Remi на свой CentOS 8 VPS (использовал это руководство https://www.digitalocean.com/community/tutorials/how-to-run-multiple-php-versions-on-one-server-using-apache-and-php-fpm-on-centos-8)
У меня есть виртуальный хост на моем сервере Apache, который указывает на мой домен и загружает требуемую версию php для этой среды.
<VirtualHost *:80>
ServerName www.example.net
ServerAlias example.net
DocumentRoot /var/www/example.net/html
ErrorLog /var/www/example.net/log/error.log
CustomLog /var/www/example.net/log/requests.log combined
<IfModule !mod_php7.c>
<FilesMatch .(php|phar)$>
SetHandler "proxy:unix:/var/opt/remi/php74/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
</IfModule>
</VirtualHost>
Как включить расширение pdo_sqlsrv для установки php 7.4 с помощью Remi?
Я следовал этому руководству: https://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15#installing-the-drivers-on-red-hat-7-and-8 но я думаю, что что-то пошло не так.
Если я это сделаю <?php echo phpinfo(); ?>
, я увижу, что модули не загружаются https://gyazo.com/d5a30969f06c49e78bf3473a07776492
Также, если я проверю версию PHP с помощью php -v
, это результат:
PHP Warning: Module 'sqlsrv' already loaded in Unknown on line 0
PHP Warning: Module 'pdo_sqlsrv' already loaded in Unknown on line 0
PHP 7.4.12 (cli) (built: Oct 27 2020 15:01:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
Редактировать:
Я также проверил с помощью этой команды yum list installed | grep php
и у меня есть следующий вывод. Обратите внимание на php-pdo
от remi.
php-json.x86_64 7.4.12-1.el8.remi @remi-modular
php-pdo.x86_64 7.4.12-1.el8.remi @remi-modular
php-sqlsrv.x86_64 5.8.1-1.el8.remi.7.4 @remi-modular
php74.x86_64 1.0-3.el8.remi @remi-safe
php74-php-cli.x86_64 7.4.12-1.el8.remi @remi-safe
php74-php-common.x86_64 7.4.12-1.el8.remi @remi-safe
php74-php-fpm.x86_64 7.4.12-1.el8.remi @remi-safe
php74-php-json.x86_64 7.4.12-1.el8.remi @remi-safe
php74-runtime.x86_64 1.0-3.el8.remi @```
Комментарии:
1. он у вас есть на шаге 3, но убедитесь, что вы используете правильный ini-файл. Кроме того, если вы используете fpt, вам может потребоваться перезапустить службу php, чтобы изменения вступили в силу.
2. Похоже, для меня вы не добавили модули в свой
php.ini
. проверьте файл PHP (что важно, который использует Apache), и я подозреваю, что вы заметите, что они отсутствуют.3. Я попытался добавить
extension=pdo_sqlsrv.so
в загружаемый Php.ini, но все равно ничего не меняется.4. Обратите внимание как на себя, так и на @JulienB. Есть подозрение, что вы добавили его не в правильный. Я подозреваю, что вы добавили его в
php.ini
файл, только не тот, который использует Apache.5. Это тот, который я добавляю gyazo.com/13d70786f38653136e732f3cf60e458d
Ответ №1:
Как включить расширение pdo_sqlsrv для установки php 7.4 с помощью Remi? php-sqlsrv.x86_64 5.8.1-1.el8.remi.7.4 @remi-модульный php74-php-fpm.x86_64 7.4.12-1.el8.remi @remi-безопасный
Вы перепутали php- * (единственную версию / версию по умолчанию) и php74- * (предназначен для установки нескольких версий). Прочитайте FAQ по репозиторию
Для правильной установки просто следуйте инструкциям мастера.
Итак, если вы используете php-fpm, вам нужен php-sqlsrv (что является более простым способом, поэтому рекомендуется).
Если вы используете php74-php-fpm, вам нужен php74-php-sqlsrv.
dnf remove php74*
dnf install php-fpm php-cli
Вам не нужно ничего создавать из исходного кода и не нужно изменять какой-либо INI-файл.