编译后如何将 PHP 5.6 连接到 SQL 数据库

编译后如何将 PHP 5.6 连接到 SQL 数据库

我在 Debian server 9 服务器上从源代码安装了 PHP 5.6。 Debian 9 中的 OpenSSL 版本对于 PHP 5.6 来说太新了,因此我必须在 /opt/openssl 中编译旧版本才能将其与 PHP 5.6 一起使用。 (版本openssl-1.0.1t)

我这样配置PHP5.6的编译:

./configure --prefix=/opt/PHP/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl=/opt/openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

我已经让 PHP5.6 在命令之后工作makemake install

我编写了这个 PHP 脚本来测试连接(我也隐藏了好的值):

    <?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?>

我尝试了这样的结果:

 /opt//PHP/php-5.6/bin/php connect_db.php
Connection failed: SQLSTATE[HY000] [2002] No such file or directory

在同一台服务器上,我使用以下编译配置从源代码编译了 PHP7.1:

./configure --prefix=/opt/PHP/php-7.1 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

我尝试了相同的 PHP 脚本并且运行良好:

/opt//PHP/php-7.1/bin/php connect_db.php
Connected successfully

如何配置PHP5.6的编译以获得与PHP7.1组件相同的效果?

答案1

我发现如果我替换脚本行:

$servername = "localhost";

通过这个

$servername = "127.0.0.1";

该脚本使用PHP5.6和PHP7.1连接数据库

 /opt/PHP/php-5.6/bin/php connect_db.php
Connected successfully

请随意发表任何评论以确认问题可能来自何处

相关内容