mosakabe @ ウィキ
Cake環境構築
最終更新:
mosakabe
-
view
イチから Centos6, Apache2, PHP5.3, Cake2.2, Oracle11g 環境を構築します。
今回は仮想環境(Xen)で構築します
今回は仮想環境(Xen)で構築します
仮想CPU数は2, メモリ2GB で仮想環境を構築します
centosは最小構成でインストールします
あえて無理してCUIのみで作業します
Cakeとoracleはあまり相性がよくありませんが、とある事情により*****
むしろCUI Oracle11gインストール作業が中心になってしまっています
centosは最小構成でインストールします
あえて無理してCUIのみで作業します
Cakeとoracleはあまり相性がよくありませんが、とある事情により*****
むしろCUI Oracle11gインストール作業が中心になってしまっています
サーバ構築
swapのサイズを変更します。
$ sudo dd if=/dev/zero of=/swapfile bs=1024K count=4096 $ sudo mkswap /swapfile $ sudo swapon /swapfile
確認します
$ swapon -s
OS起動時に自動でスワップが追加されるよう/etc/fstabに設定をします。
$ sudo vi /etc/fstab
最後の行に以下を追加します
/swapfile swap swap defaults 0 0
SELinuxの状態を確認します
$ getenforce Enforcing
有効となっているので無効にします
$ sudo setenforce 0 $ getenforce Permissive
起動時にSELinuxを無効にします
$ sudo vi /etc/sysconfig/selinux
SELINUX=enforcing ↓ SELINUX=disabled
yumをupdateし、setup系コマンドをインストールします
$ sudo yum clean all $ sudo yum update $ sudo yum install setuptool ntsysv system-config-network-tui system-config-firewall-tui
setupコマンドを実行し、ファイアウォール設定などを行います
$ setup
各ツールをインストールします
$ sudo yum install vim wget bind-utils unzip ntp scp
全く関係ないけどftpサーバをインストールします(もちろんしなくていいです)
$ sudo yum -y install ftp vsftpd
Apache, PHP のインストール
Apache, PHP をインストールします
$ sudo yum install httpd php php-devel php-process php-ldap php-mbstring php-mysql php-odbc php-pdo php-pear php-xml
自動起動の設定をします
$ chkconfig --list $ sudo chkconfig vsftpd on $ sudo chkconfig httpd on
PHPの設定をします
$ sudo vim /etc/php.ini
Oracle11g CUI インストール
Oracle CUI サイレントインストールに必要なパッケージを事前にインストールします
$ sudo yum install make gcc libaio glibc-devel glibc-headers glibc.i686 gcc-c++ libaio-devel compat-libstdc++-33 elfutils-libelf-devel sysstat unixODBC-devel
カーネルパラメータを変更します
$ sudo vim /etc/sysctl.conf
以下の値を追記します
kernel.sem = 250 32000 100 128 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576
値を反映します
$ sudo sysctl -p
ユーザとグループを追加します
$ sudo groupadd oinstall $ sudo groupadd dba $ sudo useradd -g oinstall -G dba oracle $ sudo passwd oracle
/etc/security/limits.conf を修正します
$ sudo vim /etc/security/limits.conf
以下の値を追加します
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
/etc/pam.d/login を修正します
$ sudo vim /etc/pam.d/login
以下の値を追加します
session required /lib/security/pam_limits.so session required pam_limits.so
/etc/profile を修正します
$ sudo vim /etc/profile
以下の値を追加します
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
ORACLE_BASEディレクトリを作成します
$ sudo mkdir -p /opt/oracle/app $ sudo chown -R oracle:oinstall /opt/oracle $ sudo chmod -R 775 /opt/oracle/app
データディレクトリ・リカバリディレクトリを作成します
$ sudo mkdir /opt/oracle/oradata $ sudo chown oracle:oinstall /opt/oracle/oradata $ sudo chmod 775 /opt/oracle/oradata
/etc/oraInst.locを作成します
$ sudo vim /etc/oraInst.loc
以下の2行を記載します
inventory_loc=/opt/oracle/oraInventory inst_group=oinstall
$ sudo chown oracle:oinstall /etc/oraInst.loc $ sudo chmod 644 /etc/oraInst.loc
Oracleユーザに変更します
$ sudo su - oracle
oracleユーザーの環境設定を設定します
$ vim ~/.bash_profile
末尾に以下を追加します。
umask 022 export ORACLE_BASE=/opt/oracle/app
現在のターミナルでもこの設定を有効にします。
$ . ~/.bash_profile
インストールディレクトリの作成
$ mkdir /opt/oracle/src $ cd /opt/oracle/src
以下の場所からOracle11g をダウンロードします
http://www.oracle.com/technetwork/jp/database/enterprise-edition/downloads/index.html
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
http://www.oracle.com/technetwork/jp/database/enterprise-edition/downloads/index.html
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
以下のディレクトリに配置します
/opt/oracle/src
/opt/oracle/src
解凍します
"database"というディレクトリに展開されます。
"database"というディレクトリに展開されます。
$ unzip linux.x64_11gR2_database_1of2.zip $ unzip linux.x64_11gR2_database_2of2.zip
"/opt/oracle/src/database/response/db_install.rsp"を編集します。
$ vim /opt/oracle/src/database/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=localhost.localdomain UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/opt/oracle/oraInventory SELECTED_LANGUAGES=ja,en ORACLE_HOME=/opt/oracle/product/11.2 ORACLE_BASE=/opt/oracle oracle.install.db.InstallEdition=SE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true
Oracleをインストールします
$ export ORACLE_BASE=/opt/oracle
$ export ORACLE_HOME=/opt/oracle/product/11.2
$ cd /opt/oracle/src/database
$ ./runInstaller -silent -responseFile /opt/oracle/src/database/response/db_install.rsp
$ export ORACLE_BASE=/opt/oracle
$ export ORACLE_HOME=/opt/oracle/product/11.2
$ cd /opt/oracle/src/database
$ ./runInstaller -silent -responseFile /opt/oracle/src/database/response/db_install.rsp
エラーがでたら内容を確認します
$ grep Error /opt/oracle/oraInventory/logs/installActions*.log
以下の表示がでたらインストールは完了です。
$ 次の構成スクリプトは、rootユーザーとして実行する必要があります。 #!/bin/sh #実行するrootスクリプト /opt/oracle/product/11.2/root.sh 構成スクリプトを実行するには、次のようにします: 1. ターミナル・ウィンドウを開きます 2. rootとしてログインします 3. スクリプトを実行します 4. このウィンドウに戻り、[Enter]キーを押して続行します
root権限で以下のコマンドを実行します
# /opt/oracle/product/11.2/root.sh
参考
http://www.asami.asia/tech/oracle/11g-install.html
http://blog.suz-lab.com/2011/04/ec2oracle.html
http://www.asami.asia/tech/oracle/11g-install.html
http://blog.suz-lab.com/2011/04/ec2oracle.html
/opt/oracle/src/database/response/dbca.rsp を編集します
$ vim /opt/oracle/src/database/response/dbca.rsp
GDBNAME = "cake.oracle.totto.local" SID = "cake" SYSPASSWORD = "xxxxx" SYSTEMPASSWORD = "xxxxx" CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8"
データベースを作成します
$ sudo su - oracle $ /opt/oracle/product/11.2/bin/dbca -silent -responseFile /opt/oracle/src/database/response/dbca.rsp
起動したプロセスを確認します
$ ps -aux | grep oracle
接続確認します
$ export ORACLE_HOME=/opt/oracle/product/11.2 $ export ORACLE_SID=suzlab $ /opt/oracle/product/11.2/bin/sqlplus /nolog
以下の表示がでればOKです
SQL*Plus: Release 11.2.0.1.0 Production on Sun Sep 23 13:19:29 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL>
リスナーを作成します
パラメータ /opt/oracle/src/database/response/netca.rsp をしようしますが、今回は特に調整なしです
パラメータ /opt/oracle/src/database/response/netca.rsp をしようしますが、今回は特に調整なしです
$ /opt/oracle/product/11.2/bin/netca /silent /responsefile /opt/oracle/src/database/response/netca.rsp
リスナーのプロセスを確認します
$ ps -aux | grep tnslsnr
リスナーのLISTENポートを確認します
$ netstat -lanput | grep tnslsnr
tnspingでリスナーを確認します
$ /opt/oracle/product/11.2/bin/tnsping localhost
以下のように表示されればOKです
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 23-SEP-2012 13:50:14 Copyright (c) 1997, 2009, Oracle. All rights reserved. Used parameter files: /opt/oracle/product/11.2/network/admin/sqlnet.ora Used EZCONNECT adapter to resolve the alias Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))) OK (0 msec)
/opt/oracle/product/11.2/network/admin/tnsnames.ora を作成します
$ vim /opt/oracle/product/11.2/network/admin/tnsnames.ora
CAKE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = cake.oracle.totto.local) (INSTANCE_NAME = cake) ) )
接続します
$ /opt/oracle/product/11.2/bin/sqlplus sys/xxxxx@CAKE as sysdba
/etc/profile に追加
$ sudo vim /etc/profile
export ORACLE_HOME=/opt/oracle/product/11.2 export NLS_LANG=Japanese_Japan.AL32UTF8
/etc/sysconfig/httpd に追加
$ sudo vim /etc/sysconfig/httpd
export ORACLE_HOME=/opt/oracle/product/11.2 export NLS_LANG=Japanese_Japan.AL32UTF8
php_oci8 のインストール
sudo pecl install oci8
sudo pecl install oci8
ORACLE_HOME を聞かれるので答えます
/opt/oracle/product/11.2
oci8.ini の設定
$ sudo vi /etc/php.d/oci8.ini
extension=oci8.so
/opt/oracle/product/11.2/sqlplus/admin/glogin.sql 編集
$ sudo vim /opt/oracle/product/11.2/sqlplus/admin/glogin.sql
SET LINESIZE 9999; SET PAGESIZE 9999; COLUMN TIMESTAMP FORMAT a30;
システムユーザでログイン
$ /opt/oracle/product/11.2/bin/sqlplus sys/xxxxx@CAKE as sysdba
表領域と容量の確認
SQL> SELECT tablespace_name, SUM(bytes)/1024/1024 "size(MB)" FROM dba_data_files GROUP BY tablespace_name;
表領域と空き容量の確認
SQL> SELECT tablespace_name, SUM(bytes)/1024/1024 "free space(MB)" FROM dba_free_space GROUP BY tablespace_name;
表領域の作成
SQL> CREATE TABLESPACE cake_ts DATAFILE '/opt/oracle/oradata/cake_ts.dbf' SIZE 1024M AUTOEXTEND OFF;
一時表領域の作成
SQL> CREATE TEMPORARY TABLESPACE cake_tts TEMPFILE '/opt/oracle/oradata/cake_tts.dbf' SIZE 64M AUTOEXTEND OFF;
ユーザ作成
SQL> CREATE USER cake_user IDENTIFIED BY xxxxx DEFAULT TABLESPACE cake_ts TEMPORARY TABLESPACE cake_tts QUOTA UNLIMITED ON cake_ts;
権限の追加
SQL> GRANT CONNECT, RESOURCE TO cake_user;
作成したユーザでログイン
$ /opt/oracle/product/11.2/bin/sqlplus cake_user/xxxxx@CAKE
シーケンスオブジェクトの作成
SQL> CREATE SEQUENCE test_table_id_sequence;
テーブルの作成
SQL> CREATE TABLE test_tables( test_table_id NUMBER(4), name varchar2(32), timestamp TIMESTAMP DEFAULT SYSTIMESTAMP NOT NULL, PRIMARY KEY( test_table_id ) );
擬似AUTO_INCREMENT
CREATE OR REPLACE TRIGGER test_table_id_sequence_trigger BEFORE INSERT ON test_tables FOR EACH ROW BEGIN SELECT test_table_id_sequence.NEXTVAL INTO :NEW.test_table_id FROM DUAL; END; /
レコードのINSERT
SQL> INSERT INTO test_tables ( name ) VALUES ( test_seq.nextval, 'テストデータ1' ); SQL> INSERT INTO test_tables ( name ) VALUES ( test_seq.nextval, 'テストデータ2' ); SQL> INSERT INTO test_tables ( name ) VALUES ( test_seq.nextval, 'テストデータ3' );
レコードのSELECt
SQL> SELECT * FROM test_tables;
Cakeのインストール
Cake を以下のサイトよりダウンロードします
http://cakephp.jp/
http://cakephp.jp/
$ wget http://github.com/cakephp/cakephp/zipball/2.2.2 $ mv 2.2.2 cakephp-cakephp-2.2.2-0-gf155687.zip $ unzip cakephp-cakephp-2.2.2-0-gf155687.zip
DocumentRootに移動します
$ sudo mv cakephp-cakephp-ac41b42 /var/www/html/cake
いい加減ですが、オーナー、パーミッションを変更します
$ cd /var/www/ $ sudo chown -R apache:wheel html $ sudo chmod -R 775 html $ sudo chmod 755 /var/log/httpd
Apacheの設定を変更します
$ sudo vim /etc/httpd/conf/httpd.conf
</Directory> Options FollowSymLinks AllowOverride None <Directory /> の部分を <Directory /> Options All AllowOverride All </Directory>
Cake の Config/core.php の設定を変更します
$ sudo vim /var/www/html/cake/app/Config/core.php
タイムゾーンのコメントアウトを外します
date_default_timezone_set('UTC');
Security.salt と Security.cipherSeed の値を任意に変更します
database.php.default をベースにしてdatabase.phpを作成します
$ sudo cp /var/www/html/cake/app/config/database.php.default /var/www/html/cake/app/config/database.php
var $default = array( 'driver' => 'oracle', 'persistent' => false, 'host' => 'localhost', 'login' => 'cake_user', 'password' => 'xxxxxx', 'database' => 'CAKE', 'prefix' => '', 'charset' => 'AL32UTF8', );
Apacheを起動します
$ sudo /etc/init.d/httpd start
それぞれのドメインでCakeを確認します
http://cake.totto.local/cake/
http://cake.totto.local/cake/