在 Centos 7 上启用 PHP 扩展

fre*_*guy 2 php module

我想使用 Ngnix 运行 Drupal,但是一旦我安装了 ngnix、drupal,我就会看到:

Drupal requires you to enable the PHP extensions in the following list 
(see the system requirements page for more information):
 dom
 gd
 pdo
Run Code Online (Sandbox Code Playgroud)

我有显示这些模块未加载的 php 脚本:

<?php
 $dom = extension_loaded( 'dom');
 $gd = extension_loaded( 'gd');
 $pdo = extension_loaded( 'pdo');
 echo '<p>Hello Bogus Drupal, from Tommy the Geek</p>';
 echo "GD: ", extension_loaded('gd') ? 'OK' : 'MISSING', '<br>';
 echo "dom: ", extension_loaded('dom') ? 'OK' : 'MISSING', '<br>';
 echo "PDO: ", extension_loaded('pdo') ? 'OK' : 'MISSING', '<br>';
 echo "zip: ", extension_loaded('zip') ? 'OK' : 'MISSING', '<br>';
?>
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

GD: MISSING
dom: MISSING
PDO: MISSING
zip: OK
Run Code Online (Sandbox Code Playgroud)

即使“php -m”显示模块可用于命令行界面:

# php -m | grep [dgP][oDd]
dom
gd
PDO
pdo_sqlite
wddx
Run Code Online (Sandbox Code Playgroud)

. 如何使它们可用于 Web 服务器?

fre*_*guy 6

假设您使用的是 Google 的虚拟机,运行 Centos 7:

  1. 找到 php 扩展,例如:

    # find / -name wddx.so
    /usr/lib64/php/modules/wddx.so
    
    Run Code Online (Sandbox Code Playgroud)
  2. 找到 php.ini:

    # find / -name php.ini
    /etc/php.ini
    
    Run Code Online (Sandbox Code Playgroud)
  3. 编辑 php.ini 并更改 extension_dir 指令:

    ; Directory in which the loadable extensions (modules) reside.
    extension_dir = "/usr/lib64/php/modules/"
    
    Run Code Online (Sandbox Code Playgroud)