Page 1 of 2
Oracle not visible for installation
Posted: Wed Jul 29, 2009 7:09 pm
by Jack
Hello,
When I open the installer.php page, I see the full page. This includes “phpMyFAQ 2.0.15 Installation” and “Your PHP version: PHP 5.2.6”. However, the drop-down next to “SQL server” only provides the “MySQL 4.x…” choice and the “MySQL 4.1…” choice. I want to see “oracle” as a choice.
I have Oracle 10.2.0.3. I downloaded PHP through yum. I downloaded oci8-1.3.5.tgz, configured it to my $ORACLE_HOME and oracle libraries and installed it. In /etc/php.ini I have
extension_dir = "/usr/lib64/php/modules"
and
extension=oci8.so
Under /usr/lib64/php/modules I have oci8.so
I restarted apache.
I added a page with the following code:
<?php phpinfo(); ?>
and opened it in the browser.
I saw this info:
oci8
OCI8 Support enabled
Version 1.3.5
Revision $Revision: 1.269.2.16.2.38.2.32 $
Active Persistent Connections 0
Active Connections 0
Compile-time ORACLE_HOME /opt/db/oracle/10.2.0
Libraries Used -Wl,-rpath,/opt/db/oracle/10.2.0/lib -L/opt/db/oracle/10.2.0/lib -lclntsh
Temporary Lob support enabled
Collections support enabled
Directive Local Value Master Value
oci8.connection_class no value no value
oci8.default_prefetch 100 100
oci8.events Off Off
oci8.max_persistent -1 -1
oci8.old_oci_close_semantics Off Off
oci8.persistent_timeout -1 -1
oci8.ping_interval 60 60
oci8.privileged_connect Off Off
oci8.statement_cache_size 20 20
I also made another php page that accessed my oracle database using OCI functions and retrieved tablenames.
I cleared my browser cache and restarted apache multiple times.
Why is “oracle” still not showing up?
Thank you for any help.
-Jack
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 7:30 pm
by Thorsten
Hi Jack,
you're the first Oracle user!
Okay, it seems, I made a mistake in the check for Oracle.
Please open the file inc/constants.php and goto line 178. Please edit this line from
Code: Select all
'oracle' => array('5.0.0', 'Oracle 8i and later (experimental)'),
to
Code: Select all
'oci8' => array('5.0.0', 'Oracle 8i and later (experimental)'),
It's possible that more issue pop up because the Oracle support is still experimental. Maybe you can help here.
Thanks!
bye
Thorsten
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 7:58 pm
by Jack
Thank you for the incredibly fast response. After the fix, the oracle choice popped up.
I realize that MySQL has been tested more, but I'm hoping Oracle works out. We already have Oracle installed on this server and we're more familiar with it.
Thanks again.
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 8:08 pm
by Jack
When I try to install I get
"Error: Invalid server type."
My settings:
SQL server: Oracle 8i and later (experimental)
SQL server host: localhost
SQL username: requestsFAQ
SQL password: ****
SQL database: testdb1
Table prefix:
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 8:14 pm
by Thorsten
Hi,
yes, I found another issue. Please rename the file inc/PMF_DB/Oracle.php to inc/PMF_DB/Oci8.php. You also have to rename the class inside from class db_oracle to class db_oci8.
Hope that helps.
I already fixed these issues in SVN for 2.0.16, 2.5.1 and 2.6.0-alpha.
bye
Thorsten
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 8:40 pm
by Jack
I'm getting the same error. Maybe I should just install a newer version?
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 8:54 pm
by Thorsten
Hi,
strange... should work now. You can try to download the stable snapshot of version 2.5 tomorrow or check it out directly from SVN.
bye
Thorsten
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 9:16 pm
by Jack
I did
mv /install/oracle.sql.php /install/oci8.sql.php
I got past that error.
I'm getting database connection problems, but that's probably my fault and I'll experiment with it.
Thanks
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 9:19 pm
by Jack
I mistyped that last command. This is what I did from the faq directory:
mv install/oracle.sql.php install/oci8.sql.php
Re: Oracle not visible for installation
Posted: Wed Jul 29, 2009 9:41 pm
by Thorsten
Hi,
ah, I forgot the name changes in the install/ folder. It's fixed now, too.
bye
Thorsten
Re: Oracle not visible for installation
Posted: Thu Jul 30, 2009 12:51 am
by Jack
In Oci8.php, the connect function had the line
if (empty($db) OR $this->conn == true) {
Based on the other files in PMF_DB, I changed this to
if (empty($db) || $this->conn == false) {
I'm still getting this error when trying to install:
|
Error: Please install your version of phpMyFAQ once again or send us a bug report.
DB error:
Query:
CREATE TABLE faqadminlog (
id INTEGER NOT NULL,
time INTEGER NOT NULL,
usr VARCHAR(255) NOT NULL,
text VARCHAR(512) NOT NULL,
ip VARCHAR(64) NOT NULL,
PRIMARY KEY (id))
Re: Oracle not visible for installation
Posted: Thu Jul 30, 2009 2:54 am
by Jack
I noticed that the query function in Oci8.php does not have a return value, while the other database types do return a value for query.
I tried replacing
oci_execute($stmt, OCI_DEFAULT);
with
return oci_execute($stmt, OCI_DEFAULT);
but that did not work.
As a test I ended the query with
return true;
It created 18 of the tables. Of course this was a mistake because I got the message
All database tables were successfully created.
Congratulation! Everything seems to be okay.
and now my installer.php is gone. It looks like there should be about 31 tables. I deleted the new tables and now I have a bad install.
I have a theory about what may have gone wrong with the
return oci_execute($stmt, OCI_DEFAULT);
but I can't test it now - is there a way to reverse the install (and restore installer.php)?
Thanks
Re: Oracle not visible for installation
Posted: Thu Jul 30, 2009 7:12 am
by Thorsten
Hi,
I also checked the code and the oci8 extension. I think, the query() method has to look like this:
Code: Select all
public function query($query)
{
$this->sqllog .= pmf_debug($query);
$stmt = oci_parse($this->conn, $query);
oci_execute($stmt, OCI_DEFAULT);
return $stmt;
}
bye
Thorsten
Re: Oracle not visible for installation
Posted: Thu Jul 30, 2009 7:49 pm
by Jack
I downloaded the newest 2.5.x Pandora and made a fresh install. I made the changes we discussed including
Code: Select all
public function query($query)
{
$this->sqllog .= pmf_debug($query);
$stmt = oci_parse($this->conn, $query);
oci_execute($stmt, OCI_DEFAULT);
return $stmt;
}
I also changed the class name in Oci8.php to
Code: Select all
class PMF_DB_Oci8 implements PMF_DB_Driver
I ran the install and got the message
Install wrote:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
All database tables were successfully created.
Congratulation! Everything seems to be okay.
In the database I ran
Code: Select all
select table_name from user_tables;
And I see 20 table names, but I see 32 CREATE TABLE statements in oci8.sql.php. Is this a problem?
Re: Oracle not visible for installation
Posted: Thu Jul 30, 2009 8:22 pm
by Jack
I extracted the other CREATE TABLE statements and ran them directly in oracle. They don't run for various reasons. For instance, 'comment' cannot be used as a column name in oracle because it's a reserved word.