之前由我们一群学生组建了教务网开发团队,目的是为了更换老旧的经常崩溃的教务系统。由于学校数据库是oracle的,所以后端也是直接写成oracle的了,采用的laravel5框架。
数据库是远端机器跑的,和我本地无关,前几天重新安装的minimal-centos6.9,原因是之前的7.x用不习惯…都是坑,从esxi就开始翻车,刚开始没权限…后来给了权限之后网络配置问题…然而总算是装好了,麻烦来了…,环境一切正常,然而开nginx就除了根目录全都404,查了下laravel需要rewrite的支持,nginx开启后发现无效,遂转Apache,然后就开始了无尽的报错
首先是网页报错无法连接oracle数据库,phpinfo看了下,没有oci8扩展支持,于是准备装oci8,翻到了前辈们的教程
1.安装依赖
rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-jdbc-12.1.0.2.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
tar zxvf oci8-2.1.3.tgz
cd oci8-2.1.3
phpize
./configure –with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client64/lib –with-php-config=/usr/local/php/bin/php-config
make && make install
这里我下载的是2.0.10版本的oci8插件,在make的时候提示oci8.c报错,找不到头文件
ext/standard/php_smart_str.h:没有那个文件或目录
一番查找之后发现新版本的php_smart_str.h更名为php_smart_string.h了……
更改之后未见报错但是提示许多编译错误,于是去下了个新版的oci8-2.1.8,成功make&install
2.修改php.ini配置
nano /usr/local/php/etc/php.ini
在其中添加
extension=oci8.so
记住一定是oci8.so,一开始我直接在源文件基础上改的,写成php_oci8.so,重启phpfpm和Apache之后仍未发现oci扩展,查看php启动日志发现仍然找不到文件,于是排查文件目录发现是自己写错了文件名(囧…
之后保存文件,重启phpfpm,Apache,phpinfo即可看见新装扩展,
进入程序发现已经可以正常使用
囧!真的是每个环节都有坑呢……o(╯□╰)o不过作为折腾党,这是个很好的教训w
0 评论