If you are running Apache as a service then, by default, it runs as NT AUTHORITY\SYSTEM
, not the currently logged in user. The rest of my answer follows this assumption.
OCI.dll is not being loaded. Each attempt at loading it shows the file not being found with the "result" column showing "NAME NOT FOUND" OCI.dll is being looked for within each of the PATH variable paths EXCEPT for my shared drive location, which in this case is Q:/something/something...
Q:
is a mapped drive for your user account, not the SYSTEM
account, so as far as Apache is concerned that path doesn't exist at all.
I thought this was a bit odd so I changed the "Q" to use a UNC path (knowing that system environment variables do not officially support UNC path). When I checked it again with Process Monitor, it showed that it was looking for OCI.dll in the UNC path but it comes back as "ACCESS DENIED" (but I can access, edit, and delete the file myself).
By using a UNC path the local SYSTEM
account can now see the location but is not authorised to it, hence the ACCESS IS DENIED
message.
So the answer to both of your questions is that the account being used to run Apache is not your user account and doesn't have the same environment settings and access rights.