因为学校课设的原因,在什么服务器都不懂的情况下,强行自己百度安装LAOP,觉得网上教程太少,而且千篇一律很多都看不太懂,觉得人生太绝望了。写一篇给小白用。我的Centos7是实体安装的,虚拟机应该也可以这样安装吧。
下面的顺序是我安装的顺序,仅供参考。
1.安装包可在oracle官网下载,需要注册帐号(建议注册,因为之后还是需要下载一些东西,放心是免费的)
2.具体的安装过程我就不具体写了,参考这篇文章,我是根据这篇文章进行安装的,能安装好。安装过程中有其他的问题的话也能百度到。这篇文章非常棒,强烈安利。Oracle 安装文章推荐
我用的是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的页面,也不影响下面的安装
一开始我认为oracle11g已经很老了,oracle给的官方安装php版本建议是5.4,谁知道我安了却在后面安装oci8插件出现问题,让我不得不卸载php5.4,重新安装php7.如果您已经安了php7版本以下的,最好卸载了。
卸载方法如下(还没安装就卸载了哈哈哈哈)
#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下面)
在
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
输入以下内容
在浏览器输入 localhost/phpinfo.php
显示如下信息则为安装成功
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 OCI8扩展
在浏览器打开 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; 进行查看)
\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "\n";
foreach ($row as $item) {
echo " ".($item !== null ? htmlentities($item, ENT_QUOTES) : " ")." \n";
}
echo " \n";
}
echo "\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)