Laravel 5.6 OCI可与“;php artisan serve“;但Nginx找不到oci_connect()
我正在尝试在Ubuntu18.2上设置Laravel5.6+PHP7.2(使用Instantclient 12.2和OracleOCI)+Nginx。此外,我还为laravel安装了“yajra/laravel-oci8”:“^5.6”。为了确保instantclient安装正确,我还尝试了sqlplus,以确保可以与oracle服务器建立连接 因此,当我使用“php-artisan-serve--host=192.168.56.12--port=8000”命令为页面提供服务时,我应该正确配置所有内容,并且oracle连接器工作正常 测试代码如下所示:Laravel 5.6 OCI可与“;php artisan serve“;但Nginx找不到oci_connect(),nginx,laravel-5,php-7,oracle-call-interface,instantclient,Nginx,Laravel 5,Php 7,Oracle Call Interface,Instantclient,我正在尝试在Ubuntu18.2上设置Laravel5.6+PHP7.2(使用Instantclient 12.2和OracleOCI)+Nginx。此外,我还为laravel安装了“yajra/laravel-oci8”:“^5.6”。为了确保instantclient安装正确,我还尝试了sqlplus,以确保可以与oracle服务器建立连接 因此,当我使用“php-artisan-serve--host=192.168.56.12--port=8000”命令为页面提供服务时,我应该正确配置所
public function testorcl(){
if (function_exists('oci_connect') == false){
return "oci driver not available";
}
}
同时,我在默认端口80上启用了Nginx。
两个web服务器都提供相同的Laravel代码库
奇怪的是,Nginx找不到oci\u connect()
然后,我检查两台服务器上的phpinfo()页面
我发现oci8模块未安装在Nginx服务器上。但是,“php artisan serve”显示安装了oci8。安装的oci8模块应显示如下图所示的内容。
不仅oci8模块部分不同,环境变量列表也不同。
Nginx只提供了如下所示的4个环境变量,而php artisan提供了一个很长的变量列表(太长,无法在一个页面中显示)。
所以,我认为是Nginx造成了这个问题。这是我的Nginx配置
server {
listen 80;
listen [::]:80 ipv6only=on;
# Log files for Debugging
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Webroot Directory for Laravel project
root /home/ub18/test/public;
index index.php index.html index.htm;
# Your Domain Name
#server_name example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
include fastcgi_params;
}
# deny access to . files, for security
#
location ~ /\. {
log_not_found off;
deny all;
}
}
问题是:
1.如何让我的OCI工作?我错过了什么?
2.如何确保Nginx能够加载正确的环境变量,就像“php artisan serve”
欢迎您提出任何建议,谢谢。您有没有弄清这件事的真相?我无法让
oci\u connect()
工作。我目前唯一想做的就是卸载Nginx,然后尝试使用Apache!!我刚刚注意到,您的LD\u LIBRARY\u路径
应该指向$ORACLE\u HOME/bin
,而不是指向与ORACLE HOME相同的位置。这可能是(但可能不是完整的)解决您问题的方法。