You are here

# Linux-Oracle 对接服务器配置文档

冉老师整理

# Linux-Oracle 对接服务器配置文档


**主要内容**:


1. 外网计算机:安装 VirtualBox,配置一个跑业务的虚拟机

2. 内网实体机:安装 VirtualBox,导入在外网计算机配置的虚拟机



## 1 .外网计算机


### 1.1 安装 VirtualBox


根据不同系统,下载对应版本的 VirtualBox。下载地址:[https://www.virtualbox.org/wiki/Downloads](https://www.virtualbox.org/wiki/Downloads)


注意:安装后如果不能支持创建 64 bit 的虚拟机,则在 Bios 启用虚拟化支持。相关文档:[启动BIOS的虚拟化设置 | 开启CPU虚拟化支持](http://jingyan.baidu.com/article/335530daa55d7e19cb41c3c2.html)


### 1.2 创建虚拟机并安装 Ubuntu


虚拟机镜像采用 Ubuntu 14.04 64 bit 桌面版。


### 1.2.1 配置 LAMP 运行环境


参考文档:[https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04](https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04)


文档很详细,一步一步的做就可以了。


### 1.2.2 配置 Drupal 环境并安装 Drupal


参考文档:[https://www.digitalocean.com/community/tutorials/how-to-install-drupal-on-an-ubuntu-14-04-server-with-apache](https://www.digitalocean.com/community/tutorials/how-to-install-drupal-on-an-ubuntu-14-04-server-with-apache)


### 1.2.3 安装 oci8 扩展


#### 1.2.3.1 准备工作:安装 Oracle Client。


先查看服务器端 Oracle 的版本,如果可以执行 SQL 语句。


~~~

SELECT * FROM v$version

~~~


下载对应版本的 Oracle 连接客户端。下载地址:[http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html](http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html) , 下载页面的底部是安装文档。


需要注意的是把环境变量的设置放入了 .bashrc 文件中。


~~~

export PATH=/opt/oracle/instantclient_11_2:$PATH

~~~


并使用


~~~

source ~/.bashrc

~~~


使其生效。


#### 1.2.3.2 开始安装 oci8 扩展


因为安装的 PHP 版本为 5.1 ~ 5.6 之间,所以选择 oci8 扩展的版本为 2.0.12


通过源码的方式安装,步骤为下载源代码,解压后进入其文件夹,配置,编译,安装。


参考文档 [http://php.net/manual/en/oci8.installation.php](http://php.net/manual/en/oci8.installation.php),[https://gist.github.com/ranqiangjun/1e40dde4ea35833dd5933c3706cd9244](https://gist.github.com/ranqiangjun/1e40dde4ea35833dd5933c3706cd9244)


### 1.2.4 安装 Drush


准备工作:安装 git 和 composer(具体查看 bash 的历史记录)


步骤:


- 克隆源代码到 ~/.drush

- 检出一个 7.x 的一个版本,8.x 也支持 drupal 7,但是对 php 的要求可能更高,与当前系统安装的 php 版本冲突。

- 运行 composer install 安装依赖

- 创建符号链接到 /usr/local/bin,使得可以全局运行 drush 命令


### 1.2.5 安装 openssh-server


使得允许使用 ssh 访问。


~~~

sudo apt-get installl openssh-server -y

~~~


## 2 内网实体机


### 2.1 安装系统


系统选择 Ubuntu 16.04 64 bit 桌面版


#### 2.1.1 制作安装 U 盘


工具:[https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/](https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/)


#### 2.1.2 安装 Ubuntu


如果安装完毕后,无法正常进入,则考虑格式化整个磁盘,重新安装。


### 2.2 无网络安装 openssh-server 


无网络的情况下,获取 openssh-server 及其依赖的下载地址。


在一个全新安装的可联网 Ubuntu 16.04 64 bit 虚拟机/实体机里运行下面这条命令,获取 openssh-server 及其依赖列表。执行前需将命令中的 package-name 替换为 openssh-server。


~~~

apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > apturls

~~~


下载文件


~~~

wget -i path-to-apturls-file 

~~~


拷贝文件到不可联网的机器上,进入包含 deb 文件的文件夹,安装


~~~

sudo dpkg -i *.deb

~~~


#### 2.3 安装 VirtualBox


去官网下载对应版本的安装文件。运行下面的命令安装


~~~

dpkg -i 文件夹名

~~~


如果缺少依赖,解决依赖的问题。通过上面的方式或联网。


#### 2.4 导入虚拟机镜像


启动 VirtualBox,打开终端,输入:


~~~

sudo VirtualBox &

~~~


让其以 root 账号身份在后台运行。使用 root 账号身份运行,使得 VirtualBox 在配置端口映射时,可以使用数值比较小的端口,如 80。


#### 2.5 设置端口映射


需要映射至少两个端口,80 是 Drupal  网站的默认端口,22 是 SSH 服务的默认端口。


所以可以将实体机的 80 端口映射为虚拟机里的 80 端口,其他某个的端口如 2222 影射为虚拟机里的 22 端口。


外部则可以使用实体机的 ip 虚拟机里的网站。使用下面这个命令利用 ssh 登录虚拟机:


~~~~

ssh gat@ip地址 -p 2222

# 提示输入密码时输入 gat

~~~~


## 附1:默认账号密码


虚拟机:


实体机



## 附2:虚拟机管理常用命令


- 运行 VirtualBox


~~~

sudo VirtualBox

~~~


可能的输出:


~~~

"Ubuntu14.04 Clone_1" {d7c1be83-1f78-41d3-bfb9-a11b2c0bd993}

~~~


"Ubuntu14.04 Clone" 为界面中显示的虚拟机名字


- 列出虚拟机


~~~

VBoxManage list vms

~~~


- 以 Headless 方式启动虚拟机


~~~

VBoxManage startvm "Ubuntu14.04 Clone" --type headless

~~~


其中 "Ubuntu14.04 Clone" 为界面中显示的虚拟机名字


- 关闭虚拟机


~~~

VBoxManage controlvm "Ubuntu14.04 Clone" poweroff

~~~


- 创建一条名为 ssh 的映射规则


将实体机的 2222 端口,映射到虚拟机的 22 端口


~~~

VBoxManage controlvm "Ubuntu14.04 Clone" natpf1 "ssh,tcp,,2222,,22"

~~~


- 删除一条名为 rule1 的映射记录


~~~

VBoxManage controlvm "Ubuntu14.04 Clone" natpf1 delete rule1

~~~


更多命令查阅 VirtualBox 用户手册:[https://www.virtualbox.org/manual/](https://www.virtualbox.org/manual/)


## 附3 修改软件安装源


如果使用 apt-get 安装软件很慢,可以考虑换源。


下面是将 Ubuntu 14.04 的源修改为阿里云提供的镜像源。


编辑 `/etc/apt/sources.list`,(编辑前最好备份该文件),修改其内容如下:


~~~

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

~~~


Ubuntu 16.04 则将上面的所有 trusty 换为 xenial 即可。



## 附3:部分操作命令记录


来自 history 命令


~~~

   16  sudo apt-get update

   18  sudo apt-get install apache2

   19  sudo apt-get install mysql-server php5-mysql

   20  sudo mysql_install_db

   21  sudo mysql_secure_installation

   22  sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

   23  sudo vi /etc/apache2/mods-enabled/dir.conf

   24  sudo service apache2 restart

   25  sudo apt-get install php5-cli

   26  vi /var/www/html/info.php

   27  sudo vi /var/www/html/info.php

   29  sudo apt-get install php5-gd php5-curl libssh2-php

   30  sudo vi /etc/php5/apache2/php.ini

   31  sudo a2enmod rewrite

   32  sudo vi /etc/apache2/sites-enabled/000-default.conf

   33  sudo service apache2 restart

   34  wget http://ftp.drupal.org/files/projects/drupal-7.54.tar.gz

   35  tar xzvf drupal*

   36  cd drupal-7.54/

   37  sudo rsync -avz . /var/www/html

   38  cd /var/www/html

   39  mkdir /var/www/html/sites/default/files

   40  cp /var/www/html/sites/default/default.settings.php /var/www/html/sites/default/settings.php

   41  chmod 664 /var/www/html/sites/default/settings.php

   42  sudo chown -R :www-data /var/www/html/*


# 解压 Oracle 客户端,需要的两个文件


   50  unzip instantclient-basic-linux.x64-11.2.0.4.0.zip 

   51  unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip 

   54  sudo mkdir /opt/oracle

   57  sudo mv instantclient_11_2/ /opt/oracle/

   64  cd instantclient_11_2/

   66  ln -s libclntsh.so.11.1 libclntsh.so

   67  ln -s libocci.so.11.1 libocci.so

   73  vi .bashrc 

   74  . .bashrc 

   75  echo $LD_LIBRARY_PATH

   80  tar -xf oci8-2.0.12.tgz 

   81  cd oci8-2.0.12/

   89  sudo apt-get install php5-dev

   90  phpize

   91  ./configure --with-oci8=instantclient,/opt/oracle/instantclient_11_2

   92  make

   94  sudo make install

   95  echo $LD_LIBRARY_PATH

  100  ll  /usr/lib/php5/20121212/oci8.so 

  115  sudo vi /etc/php5/mods-available/oci8.ini

  118  sudo php5enmod oci8

  119  sudo service apache2 restart 

  121  cd /opt/oracle/instantclient_11_2/

  123  mkdir -p network/admin

  124  cd network/admin

  126  vi tnsnames.ora

  130  cd /var/www/html/sites/all/modules/

  132  mkdir custom

  133  cd custom/

  134  mkdir oracle_test

  138  cd oracle_test/

  140  touch oracle_test.{info,module}

  142  vi oracle_test.info 

  144  ls

  145  rm oracle_test.module 

  146  mv oracle_test.info oracle_test.module

  152  git clone https://github.com/drush-ops/drush.git .drush

  153  sudo apt-get install git

  155  git clone https://github.com/drush-ops/drush.git .drush

  156  cd .drush/

  159  cd

  160  php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

  161  php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

  162  php composer-setup.php

  163  php -r "unlink('composer-setup.php');"

  166  sudo mv composer.phar /usr/local/bin/composer

  171  composer config -g repo.packagist composer https://packagist.phpcomposer.com

  176  git checkout 7.4.0

  177  composer install -vvv

  179  ./drush

  191  sudo ln -s $(pwd)/drush /usr/local/bin/

  196  drush init

  197  cd /var/www/html/

  198  drush en admin_menu -y

  199  drush dis toolbar -y

  200  drush pm-uninstall toolbar -y

  201  drush en oracle_test -y

  203  drush en devel -y

~~~


论坛:

Drupal版本: