您的位置:首页 > 数据库 > Oracle

Linux+Apache+Oracle+php Centos7下环境搭建 安装Oracle 用yum安装Apache 安装php php与oracle连接

2018-09-24 15:32 1036 查看

因为学校课设的原因,在什么服务器都不懂的情况下,强行自己百度安装LAOP,觉得网上教程太少,而且千篇一律很多都看不太懂,觉得人生太绝望了。写一篇给小白用。我的Centos7是实体安装的,虚拟机应该也可以这样安装吧。

下面的顺序是我安装的顺序,仅供参考。

一、安装oracle 11g R2

1.安装包可在oracle官网下载,需要注册帐号(建议注册,因为之后还是需要下载一些东西,放心是免费的)

2.具体的安装过程我就不具体写了,参考这篇文章,我是根据这篇文章进行安装的,能安装好。安装过程中有其他的问题的话也能百度到。这篇文章非常棒,强烈安利。Oracle 安装文章推荐

二、安装Apache

我用的是centos7自带的apache服务器

1.yum命令进行安装

              #yum install httpd

              #yum install httpd-tools

              #yum install httpd-manual

2.启动apache服务器

              #systemctl start httpd

3.开机自动启动Apache

              #systemctl enable httpd

4.为Apache开启防火墙

              可能安装Oracle时你关闭了防火墙,需要 #systemctl start firewalld.service 进行开启

               #firewall-cmd --add-service=http --permanent

               #firewall-cmd --reload

5.配置ServerName

               #vi /etc/httpd/conf/http.conf

                没有域名就添加 ServerName localhost:80或者ServerName 127.0.0.1:80

6.重启Apache

              #apachectl restart

7.Apache默认将网站的根目录指向/var/www/html 目录

   默认的主配置文件是/etc/httpd/conf/httpd.conf

    配置存储在的/etc/httpd/conf.d/目录

8.等待更新中,因为这一块还不是很熟悉,但是基本你打开浏览器,输入localhost就会有一个Testing 123的页面,也不影响下面的安装

三、安装php

一开始我认为oracle11g已经很老了,oracle给的官方安装php版本建议是5.4,谁知道我安了却在后面安装oci8插件出现问题,让我不得不卸载php5.4,重新安装php7.如果您已经安了php7版本以下的,最好卸载了。

卸载方法如下(还没安装就卸载了哈哈哈哈)

[code]#php -v    //查看php版本,确定是否是7版本以下
#rpm -qa | grep php    //看有那些与php有关,然后依次卸载他们

//卸载格式如下
//rmp -e XXXXXXXXXXXXXXXX
//有些是有依赖关系的,所以请依次卸载
//举个例子 先卸载process,再卸载common,(如果先后顺序反了,会报错提醒你)如下
#rpm -e php-process-5.4.16-45.el7.x86_64
#rpm -e php-common-5.4.16-45.el7.x86_64

 好了。正式进入正确安装的打开方式

1.官网下载安装包 http://php.net/downloads.php

              下载php-7.2.10.tar.gz(我当时的最新版本是这个,如果你的不是,就下最新版本的.tar.gz结尾的安装包)

2.转到你安装包的位置,进行解压

               # tar -zxvf php-7.2.10.tar.gz

3.建立目标文件夹

               # mkdir /usr/local/php

4.配置,你解压之后会在安装包所在位置多出一个文件夹,进入解压后的文件夹(注意:不是上方的目标文件夹,而是名为php-7.2.10的文件夹)

              # ./configure --prefix=/usr/local/php --with-apxs2=/usr/bin/apxs

                        注意 :apxs的位置不一定都是/usr/bin/apxs,我的想法是建议大家输入命令 #find / -name apxs  进行查找路径,找到之后对我的/usr/bin/apxs进行替换就好

5.编译和测试编译

              # make

              # make test

6.安装

              # make install

7.配置文件

                          # cp /home/wcc/Downloads/php-7.2.10/php.ini-development   /usr/local/php/lib/php.ini

                                         注意:你们的php.ini-development在自己解压后的文件夹中,所以第一个的路径需要你们自己修改,也可以用 #find / -name php.ini-development  进行查找路径,找到之后对我的/home/wcc/Downloads/php-7.2.10/php.ini-development 进行替换就好

8.配置Apache支持php

              #vi /etc/httpd/conf/httpd.conf

              先检查LoadModule php7_module        /usr/lib64/httpd/modules/libphp7.so 是否有(这句话一般是自动就有了,反正我的是,在我印象中我没加过,这句话在Listen下面)

                在<IfModule mime_module></IfModule>之间加入以下三行

                           AddType application/x-httpd-php .php .phtml
                                       AddType application/x-httpd-php-source .phps
                                       AddHandler application/x-httpd-php .php

                退出保存

                重启Apache   -->   # apachectl restart

9.测试php

                  #vi /var/www/html/phpinfo.php

                    输入以下内容

[code]<?php
phpinfo();
?>

                    在浏览器输入  localhost/phpinfo.php

                     显示如下信息则为安装成功

四、php与oracle的连接

1.下载basic、devel、sqlplus的Instant Client 程序包(因为oracle是11g的,所以一定要下载对应的)

             下载地址:https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

            2.以 root 用户身份安装 RPM

                           #rpm -Uvh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

                           #rpm -Uvh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

                           #rpm -Uvh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

3.用pecl安装php的扩展非常方便,所以需要单独安装这个扩展

               #yum install php-devel

               #yum install php-pear

4.#pecl install oci8

                运行之后会出现 Please provoid the path to the ORACLE_HOME dircetory....if you're compiling with oracle instant Client[autodetect]:  直接按回车键就好

5.#vim  /usr/local/php/lib/php.ini

           在Dynamic extensions  下找到对应的位置打入extension=oci8.so

                  在Paths and Directories  下找到对应的位置 填写extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/"            (注意:这个路径为oci8.so的位置,如果不知道在哪,就# find / -name oci8.so )

             6.设置LD_LIBRARY_PATH

                              # vi /etc/profile

                                    在这个文件中输入  export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64:$LD_LIBRARY_PATH

                                    保存并退出

                             # source /etc/profile

7.重启Apache

               # apachectl restart

8.验证是否安装了PHP OCI 23ff8 8扩展

                在浏览器打开 localhost/phpinfo.php    打开之后往下翻会有OCI8的选项,其中显示“OCI8 Support enabled”并列出可以配置的 OCI8 选项

9.测试连接数据库

                切换到oracle用户下

                          # su - oracle

                打开oracle监听服务

                         $ lsnrctl start

               查看oracle监听状态

                         $ lsnrctl status

               超级用户登录oracle

                         $ sqlplus /nolog

                         SQL> connect  /as  sysdba

                         SQL> startup

            oracle有一个普通用户scott,我打算用普通用户,不知道密码是什么,我先重置密码(在sys用户下可修改普通用户密码)              格式:alter user 用户名 identified by 新密码;

                        SQL> alter  user scott identified by 123456;

               切换用户到scott

                         SQL> conn scott/123456

                查看当前用户是否是scott

                         SQL> show user

                 之后怎么在oracle下操作日后再自己学习,我这里主要是获得一个用户和它的密码,为之后php连接测试做准备

           建议再开一个终端,切换到root用户下

                      #cd /var/www/html/

                      #vim testoci.php

                       在这个文件中输入以下内容(注意!!!:第一行中的localhost.localomain是主机名,可能不一样,所以#hostname 进行查看  而orcl应该是全剧数据库名,在sys用户(此为oracle数据库用户)下输入命令 select name from v$database;  进行查看)

[code]<?php

$conn=oci_connect('SCOTT','123456','localhost.localdomain/orcl');
$stid = oci_parse($conn, 'select table_name from user_tables');
oci_execute($stid);

echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo "  <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

?>

                  在浏览器输入 localhost/testoci.php  会出现四行数据则为正确

如果你的浏览器出现oci_connect(): ORA-12514: TNS:listener does not currently know of service requested in connect descriptor in /var/www/html/testoci.php  这个错误,你最好多试几次,或者在oracle用户下查看监听状态($ lsnrctl status

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: