I have used these instructions and quite a few other resources to create a step by step process for installing Moodle on an Oracle with a Red Hat Linux . Here you will find the Google Doc of the instructions and a screencast to show how I did it.
I hope you have as much fun as I did getting this to work.
We followed several other tutorials and had lotsa problems, including the "mod assignment type online plugin needs upgrading" error and silly user-errors, like putting the tnsnames.ora file inside the Oracle Instant Client v11 when the box was configured to use Oracle Instant Client v10. (Hence, these instructions put the tnsnames.ora inside the /etc directory, which works, and uses v11.1). Also, no messing with ORACLE_HOME and NS_LANG environment variables, which many other tutorials had us doing.
Anyway, this tutorial was the one that did it for us. Many thanks.
I'm attaching a PDF that outlined the steps we took. They follow Ben Wilkoff's instructions almost to the tee, but with a few tweaks. For example, we needed the 32-bit Oracle Instant Client for our box.
Anyone got any more info?
Thanks in advance.
The DOD refuses any other DBMS than Oracle so it's a must.
In theory it should be as easy as setting up a DB, user and connect. Right? Just like with MySQL.
It is going to be a clean install.
The issues with Oracle support are:
- Oracle's SQL is a long way from the ANSI standard, so it requires far more database-specific hacks than anything else
- The hacks, and problems with the protocol used to connect to Oracle databases, mean that performance on Oracle is much worse than using any other database on equivalent hardware.
- Very few people use Oracle, so it has has the least testing of any of our supported databases, so you are more likely to be the first person to discover Oracle-specific bugs.
I've just managed today to find an effective way of installing the oci8po module for php on the DOD's concealed network. It is shown in another part of the site. They recommend installing the Zend Core for Oracle. I will try that on the DOD mainframe tomorrow and hopefully I will have some success with regard to get Moodle running.
It's terrible that they won't install anything else. MySQL is so much better. Even MS SQL for that matter. Grrr. Our DOD is so primitive
I've loaded a Linux VM. Installed kernel headers for incase and I've installed the OCI8PO prerequisite compile packages.
So obviously my Oracle DB was installed on the same system as my Application server...
First I set $ORACLE_HOME to the directory where Oracle is located namely /usr/lib/oracle/xe/app/oracle/product/10.2.0/server. Then, because I had the oci8po package at hand I use pear5 install oci8-1.3.5.tgz
I was prompted for the location of Instant client but because I am using ORACLE_HOME I just pressed enter and the location of ORACLE_HOME was automatically loaded. When compile finished, I added extension=oci8.so to the PHP configuration.
After all that I opened my browser at moodle's location, completed the wizard and voila.
For Oracle newcomers. If you use Oracle XE the name of the database will be xe. Username will be system and the password the one you specified during setup. You can create a new user (schema) though the web frontend to be moodle and your favorite password. The the details will be xe, moodle, password.
There are guides on the net that can help you create a new oracle database service to use another name than xe.
Also remember that Oracle in the Moodle setup wizard you do not need to specify the server address. The oci8po PHP module knows where to connect to.
If you are using multiple Oracle installations (databases) you may need to compile oci8po using instant client rather than ORACLE_HOME. Reason being that Instant Client can connect to multiple databases on multiple IPs. Each time only need to add the new DBs details to tnsnames.ora. No need to recompile oci8po for every new database you set up. Generally you may rather wish to have one single oracle installation with different schemas. It's easier to manage and less work to compile the oci8 module.
If you're running Moodle on Oracle with Apache on Linux, you might have issues with PHP being able to see the system environment variables. To resolve this, you can edit /etc/sysconfig/apache2 and add the following lines to the bottom:
LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2# Set LANG Variables for UTF-8
export LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIM NLS_LANG LD_LIBRARY_PATH
Also need to add those two lines to ~/.bashrc so that the PHP command-line client can see it too.
I am running Linux Redhat. I couldn't find this file /etc/sysconfig/apache2. But I see /etc/sysconfig/httpd instead.
I donwloaded Oracle Client and I installed with Administor option.
I pointed the installation to :
Below are the folds and files for Oracle Clinet.
assistants clone cv has instantclient jdk lib olap oraInst.loc perl rdbms sqldeveloper sysman wwg
bin crs dc_ocm hs inventory jlib network OPatch ord plsql relnotes sqlj ucp xdk
cdata csmig deinstall install javavm jpub nls opmn oui precomp root.sh sqlplus uix
cfgtoollogs css diagnostics install.platform jdbc ldap odbc oracore owm racg slax srvm utl