2

これと同様の質問があります。EC2(標準のAmazon AMI)でsqlite3 phpをサポートしたいのですが、PHPはでコンパイルされました--without-sqlite3

どうすればsqlite3サポートを追加できますか?リポジトリからのソフトウェアなので、./configureスクリプトを再実行することはできません

より詳しい情報:

私はそれをPECLからインストールしようとしましたが、あまり成功しませんでした。さらに、バージョンは0.6 (alpha)であり、sqlite3サポートはPECLを介して短時間しか利用できなかったため、PHP実行可能ファイルにコンパイルする必要があります(私は思います)。ややこしい。

私はPDO拡張機能も持っています(一部のサイトではsqlite3はPDOにあると言われています)

これが私がPECLで試したことです:

ec2-user[~]> pecl search sqlite
Retrieving data...0%
..Matched packages, channel pecl.php.net:
=======================================
Package    Stable/(Latest) Local
PDO_SQLITE 1.0.1 (stable)        SQLite v3 Interface driver for PDO
SQLite     1.0.3 (stable)        SQLite database bindings
sqlite3    0.6 (alpha)           SQLite v3 Database Bindings.
ec2-user[~]> pecl download sqlite3
Failed to download pecl/sqlite3 within preferred state "stable", latest release is version 0.6, stability "alpha", use "channel://pecl.php.net/sqlite3-0.6" to install
download failed
ec2-user[~]> pecl download channel://pecl.php.net/sqlite3-0.6
downloading sqlite3-0.6.tgz ...
Starting to download sqlite3-0.6.tgz (768,302 bytes)
.........................................................................................................................................................done: 768,302 bytes
File /home/ec2-user/sqlite3-0.6.tgz downloaded
ec2-user[~]> sudo pecl install sqlite3-0.6.tgz
84 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Optionally provide the path to the libsqlite3 library [autodetect] : yes
building in /var/tmp/pear-build-root8Jljf1/sqlite3-0.6

(...)

/var/tmp/sqlite3/sqlite3.c:1586: error: duplicate 'static' // repeated lots of times
make: *** [sqlite3.lo] Error 1
ERROR: `make' failed

編集:php-sqliteまたはphp5-sqliteパッケージはありません

ec2-user[~]> sudo yum search sqlite
Loaded plugins: fastestmirror, priorities, security, update-motd, upgrade-helper
Loading mirror speeds from cached hostfile
 * amzn-main: packages.us-west-2.amazonaws.com
 * amzn-updates: packages.us-west-2.amazonaws.com
========================================================================= N/S Matched: sqlite ==========================================================================
apr-util-sqlite.x86_64 : APR utility library SQLite DBD driver
libdbi-dbd-sqlite.x86_64 : SQLite plugin for libdbi
python-sqlite.x86_64 : Python bindings for sqlite.
python24-sqlite.x86_64 : Python bindings for sqlite.
sqlite-devel.x86_64 : Development tools for the sqlite3 embeddable SQL database engine
sqlite-doc.x86_64 : Documentation for sqlite
sqlite-tcl.x86_64 : Tcl module for the sqlite3 embeddable SQL database engine
perl-DBD-SQLite.x86_64 : Self Contained RDBMS in a DBI Driver
sqlite.i686 : Library that implements an embeddable SQL database engine
sqlite.x86_64 : Library that implements an embeddable SQL database engine

編集2: Enterprise Linux(EPEL)リポジトリ用の(デフォルトで無効になっている)追加パッケージを有効にした後も、上記のようなパッケージは使用できません

4

3 に答える 3

1

この問題でAmazonAMIは問題ないと思います。リポジトリからのデフォルトのPHP5.4インストールでは、SQLite3サポートが有効になっています。

[root@amazon-ami php.d]# php -m | grep sqlite
pdo_sqlite
sqlite3
[root@amazon-ami php.d]#

たとえば、このコードは私にとっては問題なく機能します。

$db = new SQLite3('localDB.sqlite');

$db->exec('CREATE TABLE test (foo STRING)');
$db->exec("INSERT INTO test (foo) VALUES ('bar')");

$results = $db->query('SELECT foo FROM test');

while ($row = $results->fetchArray())
    echo $row['foo'];
于 2013-10-24T12:56:04.710 に答える
0

私はこのためにEC2を放棄することになり、VM内のLinuxMintに落ち着きました。

誰かが解決策を知っているなら、私は彼の答えを喜んで受け入れます。

于 2012-11-01T09:29:01.687 に答える
0

Amazon linuxのsqliteの場合、次のようにしました。

sudo yum install sqlite-devel
于 2017-01-26T18:16:59.590 に答える