2017년 3월 29일 수요일

[MS-SQL] Mssql Cursor(커서) 사용하기 2 - (mssql 커서(cursor) 응용)


1. Cursor(커서) 를 이용한 결과 값 출력

- USERTABLE 의 SELECT 값을 CURSOR 을 이용하여 출력을 하는데 이때, PRINT 함수를
이용하여 메시지로 꾸며서 출력을 하겠습니다.

- USERTABLE SELECT 값

 - CURSOR 을 이용하여 PRINT 함수로 출력

* Query 문 분석

- SQL 문을 한줄 씩 살펴 보겠습니다.

+ DECLARE @temp_username NVARCHAR(50), @temp_tel NVARCHAR(50)
-> 커서 에서 반환하는 유저이름, 유저전화번호를 저장할 변수를 생성합니다.

+ DECLARE test_cur CURSOR FOR SELECT USERNAME, TEL FROM USERTABLE
-> 커서 생성 및 커서에 대입할 SELECT 구문을 작성 합니다.

+ OPEN test_cur
-> 커서 사용 준비를 합니다.

+ FETCH NEXT FROM test_cur INTO @temp_username, @temp_tel
-> 커서에서 첫번째 행 값을 읽어 변수에 대입합니다.

+ PRINT '----- CURSOR DOCUMENT START -----'
-> PRINT 함수를 사용하여 문서 시작을 알립니다.

+ WHILE @@FETCH_STATUS = 0
-> @@FETCH_STATUS 는 FETCH 문의 실행 상태를 반환 합니다. ( 0 : 수행, -1 : 실패, -2 : 행 없음)
즉 FETCH NEXT 문이 성공적으로 수행되면 WHILE 문이 수행되며 실패, 또는 커서의 행을 모두 반환하여
행이 없을 경우 WHILE 문이 종료 됩니다.
+ PRINT '유저이름 || 유저전화번호'
PRINT '[ ' + @temp_username + ' ] || [ ' + @temp_tel + ' ]'
-> 변수에 저장된 값을 PRINT 함수를 이용하여 출력합니다.

+ FETCH NEXT FROM test_cur INTO @temp_username, @temp_tel
-> 커서에서 다음행을 불러와 변수에 대입합니다.

+ CLOSE test_cur
-> OPEN 된 커서를 닫습니다.
+ DEALLOCATE test_cur
-> 커서에 할당된 리소스를 제거 합니다.

[MSSQL] PROCEDURE(프로시저)와 CURSOR(커서)의 활용

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--  실행문
--  EXEC TEST_PROCEDURE '강길동', '05600000'

--  현재의 DATABASE에 아래에서 선언한 내용이 없기 때문에 프로시저를 생성하면 오류 발생하므로
--  아래의 구문에 맞게 DATABASE를 생성하거나 이미 만들어 놓은 DATABASE에 맞게 아래의 PROCEDURE내용을 바꿔야 함

CREATE PROCEDURE [dbo].[TEST_PROCEDURE] -- 프로시저를 생성할 때 사용(생성하고 또 실행하게 될 경우 이미 존재했다면서 오류 발생)
ALTER PROCEDURE [dbo].[TEST_PROCEDURE]  -- 프로시저의 내용을 변경할 때 사용(CREATE를 한번 실행한 후 계속 ALTER로 사용하면 됨)
    --프로그램에서 넘겨 받을 변수선언
    @strName            VARCHAR(10)   = '',              -- 1. 이름
    @strNumber         VARCHAR(10)   = '',              -- 2. 번호

    --프로그램으로 넘겨줄 변수선언
    @Rtn               INT                  = 0   OUTPUT,    -- 3. 리턴 값(숫자)
    @Msg             VARCHAR(255)  = ''  OUTPUT     -- 4. 리턴 값(문자)
AS
BEGIN
  DECLARE @strTEL         VARCHAR(11);              -- 일반 변수      
                   
  -- 변수 초기화(SET명령어는 해당 변수에 값을 넣어준다)
  SET     @Msg            = '프로시저를 시작했습니다.'

  -- 이처럼 SELECT문의 결과를 SET명령어를 사용하여 변수에 저장할 수 있음
  SET @strTEL = (SELECT HACKBUN
                         FROM   STUDENT
                         WHERE  STUDENT_NAME = @strName
                         AND    STUDENT_NUMBER = @strNumber)

  -- CURSOR 생성
  DECLARE CURSOR_NAME CURSOR FOR
    -- CURSOR안에서 사용할 값을 SETTING
    SELECT STUDENT_TEL
    FROM   STUDENT
    WHERE  STUDENT_NAME = @strName
    AND    SEQ = @strNumber

  OPEN CURSOR_NAME  --CURSOR_NAME은 임시로 만든 이름으로 사용자에 맞게 변경해주어도 된다
  --다만 FETCH문도 동일하게 바꿔주어야 하며, CLOSE, DEALLOCATE문에도 같은 이름을 사용해야 한다
  FETCH NEXT FROM CURSOR_NAME INTO @strTEL----------------- 1
                         
  -- FETCH_STATUS의 값이 성공(0)일때 WHILE문 실행
  WHILE @@FETCH_STATUS = 0  BEGIN  
    INSERT INTO ADDRESS (STUDENT_NAME, ADDRESS,    TEL)
    VALUES                       (@strName,           '대한민국',   @strTEL);

    -- 이 부분에 새로운 CURSOR를 생성해서 사용해도 된다
    -- 즉, 다중 CURSOR문이 가능
    -- 이 안에 CURSOR를 생성하게 되면 결과는
    -- 첫번째 CURSOR에서 생성되는 값을 두번째 CURSOR에서 또 사용할 수 있어서 후처리를 할 때 편하다   

  FETCH NEXT FROM CURSOR_NAME INTO @strTEL------------------2
  END;

  -- 1, 2번의 INTO뒤에 있는 변수는 CURSOR를 생성할 때 받는 값을 저장할 변수로써,
  -- 생성 부분의 SELECT문의 결과 개수와 1, 2의 FETCH문의 개수가 일치해야 됨
  -- 1, 2번은 똑같아야 한다.

  CLOSE CURSOR_NAME -- CURSOR 닫기
  DEALLOCATE CURSOR_NAME  -- CURSOR 해체

  SET @Msg = '정상적으로 처리가 되었을까요??'
END


2017년 3월 12일 일요일

カーネルのバージョン確認

カーネルのバージョン確認

$ cat /proc/version
Linux version 2.6.32-28-generic (buildd@allspice) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #55-Ubuntu SMP Mon Jan 10 23:42:43 UTC 2011
もしくは、次のように確認できます。
$ uname -a
Linux desktop 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 23:42:43 UTC 2011 x86_64 GNU/Linux

各デバイス毎の確認方法

Debian GNU/Linuxの場合

$ cat /etc/debian_version
4.0

Ubuntuの場合

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"

CentOS / RedHat Enterprise Linuxの場合

$ cat /etc/redhat-release 
CentOS release 5.2 (Final)

Fedoraの場合

$ cat /etc/fedora-release
Fedora release 9 (Sulphur)

SUSE Linuxの場合

$ cat /etc/SuSE-release
SUSE Linux Enterprise Server 10 (x86_64)
VERSION=10
PATCHLEVEL=1

Installing Gnome-3 desktop on FreeBSD 11

Installing Gnome-3 desktop on FreeBSD 11

Gnome is one of the most popular desktop environments. Gnome 3 is the latest version of this software. In this article, let us look at how to install Gnome 3 on FreeBSD 11.
FreeBSD 11 can be downloaded from this link. Install FreeBSD according to your requirements, and once the installation is complete, use the following steps to install Gnome3 desktop evironment.

You can find more details and documentation about Gnome 3 here.

Update the package list

pkg update
 
Upgrade the packages, in case there are updates available
pkg upgrade
 
Install the packages required.
pkg install gnome-desktop gdm xorg xf86-video-fbdev
 
Add the following lines to /etc/rc.conf to enable mouse daemon, dbus daemon and hal daemon.

gnome_enable="YES"
moused_enable="YES"
dbus_enable="YES"
hald_enable="YES"
gdm_enable="YES"
 
Reboot the machine. Now the machine will boot into GDM login screen, where you can login to Gnome 3  session. You will get a screen similar to the image below.

2017년 3월 9일 목요일

telnet サーバーを CentOS7にインストールする

telnet サーバーを CentOS7にインストールする

#yum -y install telnet telnet-server
#systemctl enable telnet.socket  ←自動起動をONにします
#systemctl start telnet.socket
※ローカルでTelnetが可能かチェックします。
#telnet localhost

※Firewallの設定を変更し、ローカルからのTelnetを許可します。
#firewall-cmd –permanent –add-rich-rule=’rule family=”ipv4″ source address=”192.168.24.0/24″ service name=”telnet” log prefix=”telnet” level=”info” limit value=”1/m” accept’
※Firewallの設定を反映させます
#firewall-cmd –reload

nslookupの概要

DNSを調査する時に利用するnslookupについて説明します。

nslookupの概要
nslookupはDNSを利用してFQDNからIPアドレスに変換出来るか等を確認出来るコマンドです。Windowsではコマンドプロンプトで実行出来ます。
 nslookup FQDNと入力する事で、IPアドレスを確認する事が出来ます。

http://beginners-network.com/nslookup.html

CentOSにSSH、Telnet、FTPをインストールする方法のまとめ。

■Telnetのインストール
Telnetのインストールはyumを使う。
[root@localhost ~]# yum install telnet-server
途中で以下のように聞かれるが、そのときは[y]を入力する
Is this ok [y/N]:
 
■Telnetサービスを自動で起動させる方法。
chkconfigを使う。
chkconfigはサービスの自動起動を制御するプログラムのこと。
オプション--listは現在のすべての設定を出力する。

[root@localhost ~]# chkconfig --list
NetworkManager  0:off 1:off 2:on 3:on 4:on 5:on 6:off
abrtd           0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid           0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd             0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd          0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon    0:off 1:off 2:off 3:on 4:on 5:on 6:off
bluetooth       0:off 1:off 2:off 3:on 4:on 5:on 6:off
cgconfig        0:off 1:off 2:off 3:off 4:off 5:off 6:off
サービスを追加するための書式。

# chkconfig --add telnet
# chkconfig --list telnet
telnet          off
 
chkconfigの設定を切り替える書式
chkconfig --level <levels> <service> on|off|reset
上記の書式にしたがって、Telnetの設定をonにする。
[root@localhost ~]# chkconfig --level 35 telnet on
[root@localhost ~]# chkconfig --list telnet
telnet          on
 
ランレベル3,5でtelnetがonになった。
SSHのインストール
SSH(Secure SHell)はリモートコンピュータとの通信を暗号化や認証を用いて安全に行うためのプロトコルのこと。

openssh-serverをインストールする方法は以下の通り。

[root@localhost ~]# yum install openssh-server.x86_64 
パケットフィルタリングの設定が行われている場合、SSHの接続を許可するには、
外部からのSSHに関連する通信を許可する必要がある。

そのためにはiptablesを設定する必要がある。

# vi /etc/sysconfig/iptables
で、以下を追記する。(ついでにtelnetも追記)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUt -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
 
公開鍵認証を行うためには、秘密鍵と公開鍵のペアである鍵セットを作成し、SSHサーバに公開鍵を登録する必要がある。

鍵セットの作成にはssh-keygenコマンドを使う必要があり、このコマンドはopensshパッケージとopenssh-clientsパッケージをインストールすることで使用可能になる。

鍵セットを作成する。

[sysmgr@localhost ~]$ ssh-keygen -t rsa
デフォルトだと、.sshディレクトリに鍵セットが作成される。
作成した公開鍵をauthrized_keysとして手元に持ってくる。

まず配布用公開鍵の作成。
[sysmgr@localhost .ssh]$ cat id_rsa.pub >> authorized_keys
[sysmgr@localhost .ssh]$ chmod 600 authorized_keys
 
まずはサーバ上で接続の確認
[sysmgr@localhost .ssh]$ ssh localhost
ローカルのホストのユーザ名と接続先のホストのユーザ名が異なる場合は、-lオプションを利用するか、@という形でユーザ名を指定する。

また、
SSHv2を使用した通信を指定する場合は-2、
SSHv1を使用した通信を指定する場合は-1
をオプションに指定する。

手元に公開鍵を持ってくる方法で、1番いいのは直接USBなどを指して物理媒体で移行する方法だ。

しかし、今回はFTPをインストールして、FTPで取得してみる。
まずはFTPのインストールから。

[root@localhost ~]# yum install vsftpd
vsftpdの自動起動をonにする。

[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost ~]# chkconfig --level 35 vsftpd on
[root@localhost ~]# 
[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off 1:off 2:off 3:on 4:off 5:on 6:off
 
また、vsftpdサービスを開始する。

[root@localhost ~]# /etc/init.d/vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]
 
SELinuxの設定で、匿名ユーザがファイルの読み書きができるようにする設定を行う。

[root@localhost log]# setsebool -P ftp_home_dir 1
[root@localhost log]# getsebool ftp_home_dir
ftp_home_dir --> on
 
これでFTPができるようになるので、手元に[authorized_keys]をダウンロードする。
あとはPuFFYを使ってsshで対象のサーバに接続すると、ssh通信ができた!!
参考にした本はこちら。

2017년 3월 7일 화요일

ファーエンドテクノロジー株式会社

https://www.farend.co.jp/

ファーエンドテクノロジー株式会社
インターネット上の技術・知識を活用してよりよい社会の実現を目指すインターネットサービス企業です。
 
 

Redmine 3.2をCentOS 7.1にインストールする手順

Redmine 3.2をCentOS 7.1にインストールする手順

2015-12-07 13:19  •  分類: ,
より新しいバージョンのRedmineのインストール記事があります。下記をご覧ください。
最小構成でインストールしたCentOS 7.1にRedmine 3.2をインストールする手順です。
このページに記載した手順を自動的に実行するAnsibleのplaybookを公開しています。ぜひご利用ください。インストール直後のCentOS 7でコマンドを数個入力するだけでRedmineが構築できます。

https://github.com/farend/redmine-centos-ansible
※Ubuntu版の記事もあります ▶ RedmineをUbuntuにインストールする手順

本手順で作成される環境

本手順で作成される環境は以下のとおりです。
ソフトウェア バージョン
Redmine Redmine 3.2.0
OS CentOS 7.1
データベース PostgreSQL 9.2.14
webサーバ Apache 2.4.6 (Railsの実行にはPassengerを使用)
Ruby 2.2.3

CentOSの設定

SELinuxを無効にする

エディタで /etc/sysconfig/selinux を開き、 SELINUX= の値を disabled に変更してください。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
変更後、CentOSを再起動して下さい。
reboot
再起動後、 getenforce コマンドを実行してSELinuxが無効になったことを確認してください。 Disabled と表示されればSELinuxは無効になっています。
getenforce
Disabled

firewalldでHTTPを許可

CentOS 7.1の初期状態ではFirewalld(ファイアウォール)が有効になっており、外部からサーバ上の80/tcpポート(HTTP)に接続することができません。クライアントのwebブラウザからアクセスできるようFirewalldの設定を変更します。
デフォルトzoneにhttpを追加する:
firewall-cmd --zone=public --add-service=http --permanent
success
追加した設定を反映:
firewall-cmd --reload
success
httpでのアクセスが許可されたか確認:
firewall-cmd --zone=public --list-services
dhcpv6-client http ssh

必要なパッケージのインストール

Redmineを使用するにあたり、必要なパッケージのインストールを行います。

開発ツール(Cコンパイラ等)のインストール

yum -y groupinstall "Development Tools"

RubyとPassengerのビルドに必要なヘッダファイルなどのインストール

yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel

PostgreSQLとヘッダファイルのインストール

yum -y install postgresql-server postgresql-devel

Apacheとヘッダファイルのインストール

yum -y install httpd httpd-devel

ImageMagickとヘッダファイル・日本語フォントのインストール

yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts
ImageMagickと日本語フォントはガントチャートをPNG形式の画像にエクスポートする機能、添付ファイルのサムネイル画像を作成するのに使われます。これらのインストールを行わなくてもRedmineの実行は可能です。

Rubyのインストール

ソースコードのダウンロード

RubyのオフィシャルサイトのダウンロードページからRuby2.2の最新のソースコードをダウンロードしてください。
http://www.ruby-lang.org/ja/downloads/
curl -O https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.3.tar.gz

Rubyのビルド

ダウンロードしたRubyのtarballを展開し、Rubyのビルドとインストールを行ってください。
tar xvf ruby-2.2.3.tar.gz
cd ruby-2.2.3
./configure --disable-install-doc
make
make install
cd ..
configure実行時に--disable-install-doc を指定することでRubyのドキュメントのインストールを回避でき作業時間を短縮できます。
作業後、 ruby -v を実行してRubyのバージョンを表示させ、Rubyがインストールできたことを確認してください。
ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

bundlerのインストール

Ruby用のパッケージ管理ツールであるbundlerをインストールします。Redmineが使用するgemパッケージをインストールするのに使用します。
gem install bundler --no-rdoc --no-ri
--no-rdoc --no-ri はドキュメントのインストールを省略するためのオプションです。

PostgreSQLの設定

データベースクラスタの新規作成

postgresql-setup initdb

RedmineからPostgreSQLに接続するための設定を追加

エディタで /var/lib/pgsql/data/pg_hba.conf を開き、 "Put your actual configuration here" と書かれている箇所を探して以下のように設定を2行追加してください。
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
host    redmine         redmine         127.0.0.1/32            md5
host    redmine         redmine         ::1/128                 md5

PostgreSQLの起動および自動起動の設定

service postgresql start
systemctl enable postgresql

PostgreSQLのディレクトリに移動

cd /var/lib/pgsql

Redmine用ユーザーの作成

sudo -u postgres createuser -P redmine
Enter password for new role: (PostgreSQLの redmine用ユーザーに設定するパスワードを入力)
Enter it again: (パスワード再入力)
※ PostgreSQLのユーザー redmine には任意のパスワードを設定してください。このパスワードは後述のdatabase.ymlの設定で使用します。

Redmine用データベースの作成

sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine

PostgreSQLのディレクトリから元のディレクトリに戻る

cd -

Redmineのインストール

Redmineのダウンロード

svn コマンドを使ってRedmine 3.2.xの最新ソースコード一式をRedmineのデプロイ先のディレクトリにダウンロードしてください。以下の実行例では /var/lib/ 直下のディレクトリ redmine にソースコード一式をダウンロードします。
svn co http://svn.redmine.org/redmine/branches/3.2-stable /var/lib/redmine
svnコマンドを使うのではなくtarballを下記URLからダウンロードすることもできますが、svnコマンドを使う方が手間が少なく簡単です。
http://www.redmine.org/projects/redmine/wiki/Download

データベースへの接続設定

Redmineからデータベースへ接続するための設定を記述したファイルを作成します。
以下の内容でRedmineのインストールディレクトリ(例: /var/lib/redmine)以下に config/database.yml を作成してください。
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "********"
  encoding: utf8
※ ******** 部分は、PostgreSQL上に作成したredmine用ユーザーのパスワードです。
config/database.yml.example に設定例が記載されているので参考にしてください。

設定ファイル config/configuration.yml の作成

Redmineからメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成します。
以下の内容でRedmineのインストールディレクトリ以下に config/configuration.yml ファイルを作成してください。
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: "example.com"

  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
example.com の部分は、Redmineを実行するサーバのFQDNとしてください。
config/configuration.yml.example に設定例が記載されているので参考にしてください。 ※ メールが送信されるようにするためには別途MTAのセットアップが必要です。
configuration.yml ではアップロードされたファイルの保管場所や、データベースの暗号化なども設定できます。詳しくは configuration.yml の設定項目 をご覧ください。

Redmineのインストールディレクトリへ移動

cd /var/lib/redmine

gemパッケージのインストール

Rubyのパッケージ管理ツール「bundler」を使用してRedmineが依存するgemパッケージをインストールします。Redmineのインストールディレクトリで以下のコマンドを実行してください。
bundle install --without development test --path vendor/bundle

Redmineの初期設定と初期データ登録

Redmine動作に関する初期設定と初期データの登録を行います。下記のコマンドはRedmineのインストールディレクトリで実行してください。

セッション改ざん防止用秘密鍵の作成

下記コマンドを実行してください。
bundle exec rake generate_secret_token
/var/lib/redmine/vendor/bundle/ruby/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"

データベースのテーブル作成

config/database.yml で指定したデータベースにテーブルを作成します。
RAILS_ENV=production bundle exec rake db:migrate

デフォルトデータの登録

作成したテーブルにデフォルトデータのロードを行います。この操作によりトラッカー、優先度、ステータス、ロール、ワークフローなどの初期値が登録されます。
RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
/var/lib/redmine/vendor/bundle/ruby/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"
Default configuration data loaded.
デフォルトデータの登録は、コマンドラインではなくRedmine起動後に管理画面から実行することもできます。
参考: デフォルトデータのロード

Passengerのインストール

Apache上でRedmineなどのRailsアプリケーションの実行するために使われるPhusion Passengerをインストールします。
gem install passenger --no-rdoc --no-ri

PassengerのApache用モジュールのインストール

下記コマンドを実行してApache用のモジュールのビルドとインストールを行ってください。
passenger-install-apache2-module --auto

Apache用設定内容の確認

下記コマンドを実行するとApacheに追加すべき設定が表示されます。この情報はこの後Apacheの設定を行うときに使用します。
passenger-install-apache2-module --snippet

Apacheの設定

以下の内容で /etc/httpd/conf.d/redmine.conf を作成してください。

# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
# Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の3行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
#
LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

# Passengerが追加するHTTPヘッダを削除するための設定(任意)。
#
Header always unset "X-Powered-By"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
# 詳しくはPhusion Passenger users guide(https://www.phusionpassenger.com/library/config/apache/reference/)参照。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
PassengerFriendlyErrorPages off
CentOSではApache起動時に /etc/httpd/conf.d/*.conf が自動的に読み込まれます。

 

 

Apacheの起動および自動起動の設定

下記コマンドを実行し、Apacheを起動するとともにシステム起動時に自動起動されるよう設定してください。
service httpd start
systemctl enable httpd

Apache上のPassengerでRedmineを実行するための設定

Redmineを配置したディレクトリ以下のファイルを、Apacheを実行するユーザー・グループ(CentOSの場合はいずれも"apache")で読み書きできるよう、オーナーを変更します。
chown -R apache:apache /var/lib/redmine
どのような形態(URL)でRedmineを利用するかによって設定が異なります。三つのパターンを例に挙げます。

パターン1: webサーバをRedmine専用として使用

webサーバのルートディレクトリでRedmineを実行するための設定です。「http://サーバIPアドレスまたはホスト名/」でRedmineにアクセスできます。
エディタで /etc/httpd/conf/httpd.conf を開き DocumentRoot をRedmineのpublicディレクトリ(例: /var/lib/redmine/public)に変更してください。
DocumentRoot "/var/www/html"
↓
DocumentRoot "/var/lib/redmine/public"
設定変更後、Apacheを再起動してください。
service httpd configtest
service httpd restart

パターン2: サブディレクトリでRedmineを実行

URLのサブディレクトリでURLにアクセスできるように設定します。同じサーバでRedmine以外のアプリケーションを実行する場合や、複数のRedmineを実行する場合に便利な設定です。

シンボリックリンクの作成

Apacheの DocumentRoot に指定されているディレクトリ(デフォルトは /var/www/html)に、Redmineのpublicディレクトリ(例: /var/lib/redmine/public)に対するシンボリックリンクを作成します。シンボリックリンクの名称は、URLのディレクトリ名部分で使いたい名前(例:redmine)にしてください。
ln -s /var/lib/redmine/public /var/www/html/redmine

Apacheへの設定追加

前述の手順で作成したRedmine関係のApacheの設定ファイル /etc/httpd/conf.d/redmine.conf に以下の設定を追加します。
RackBaseURI /redmine
設定後、下記コマンドを実行してApacheを再起動してください。
service httpd configtest
service httpd restart

インストール完了後の初期設定

インストールが完了しwebブラウザ経由でRedmineにアクセスできる状態になったら、日本語環境で使うための設定変更やユーザーの追加・プロジェクトの追加などを行います。
インストール後の初期設定手順については以下をご覧ください。
作成: 2015-12-07 13:19  •  分類: ,

2017년 3월 4일 토요일

Subversionのインストールと設定 - centOS

Subversionのインストールと設定

社内のソースコードの管理に使おうかということになり、サーバにインストールしてみることになりました。とりあえずお勉強になったので、備忘録をまとめてみました。
最初はソースコードからコンパイルしてインストールすることを考えていたのですが、これがまた思ったよりめんどくさい感じだったので、やっぱりyumをインストールしてから作業することに...。
作業にあたり下記URLが大変参考になりました。
http://blog.fkoji.com/2010/04081036.html
基本的にそのまんま作業です。CentOSのバージョンが同じだったもんで、問題なくyumインストール完了。インストール後、yumのアップデートを行ないました。ネットは便利ですね。知りたいことが大抵見つかります。情報を公開していただいた方に感謝!
◆◆◆まずはyumのインストール◆◆◆
→OSのバージョン調査
cat /etc/redhat-release
CentOS release 5.4 (Final)
→unameでシステム情報を参照
uname -a
Linux xxxxxx.xx 2.6.18-028stab068.5 #1 SMP Fri Mar 12 13:55:49 MSK 2010 i686 i686 i386 GNU/Linux
i386とあるので http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/ からyumのrpmを取得。
cd /usr/local/src
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/yum-3.2.22-20.el5.centos.noarch.rpm
→ダウンロード後、インストール。
rpm -ivh yum-3.2.22-20.el5.centos.noarch.rpm
warning: yum-3.2.22-20.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
python-elementtree is needed by yum-3.2.22-20.el5.centos.noarch
python-iniparse is needed by yum-3.2.22-20.el5.centos.noarch
python-sqlite is needed by yum-3.2.22-20.el5.centos.noarch
rpm-python is needed by yum-3.2.22-20.el5.centos.noarch
urlgrabber >= 3.1.0 is needed by yum-3.2.22-20.el5.centos.noarch
yum-fastestmirror is needed by yum-3.2.22-20.el5.centos.noarch
yum-metadata-parser >= 1.1.0 is needed by yum-3.2.22-20.el5.centos.noarch
お、やっぱりエラーだ。リストアップされてる各パッケージをダウンロードして...
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-elementtree-1.2.6-5.i386.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-sqlite-1.1.7-1.2.1.i386.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/rpm-python-4.4.2.3-18.el5.i386.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/python-urlgrabber-3.1.0-5.el5.noarch.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/yum-fastestmirror-1.1.16-13.el5.centos.noarch.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/m2crypto-0.16-6.el5.6.i386.rpm
wget http://mirror.centos.org/centos-5/5.4/os/i386/CentOS/libxml2-2.6.26-2.1.2.8.i386.rpm
→再度、インストール。
rpm -ivh *
→インストール後、一応アップデートしてみました。
yum update
これでyumはインストール完了。

◆◆◆今度は本命のSubversionのインストール◆◆◆
作業にあたり、このサイトが設定に役立ちました。こちらも情報ありがとうございます!
http://d.hatena.ne.jp/foldrr/20090717/p2

→では、インストール。楽だぁ~全自動ですよ。
yum install subversion
yum install mod_dav_svn

◆◆◆Subversionの設定◆◆◆
→では、設定ファイルの編集を。
vi /etc/httpd/conf.d/subversion.conf
まずは公開設定を試してみました。以下のようにしてみました。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn". Each repository
# must be readable and writable by the 'apache' user. Note that if
# SELinux is enabled, the repositories must be labelled with a context
# which httpd can write to; this will happen by default for
# directories created in /var/www. Use "restorecon -R /var/www/svn"
# to label the repositories if upgrading from a previous release.
#
#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
#
<Location /repos>
 DAV svn
 SVNParentPath /var/www/svn
</Location>
→次いで、リポジトリを作ってみました。
cd /var/www/svn
svnadmin create hogehoge
chown -R apache:apache hogehoge
chmod -R o+w hogehoge
→最後にapacheの再起動。
service httpd restart
これで最低限の設定はいいはずなのですが...
なんと「Could not open the requested SVN filesystem」のエラーに翻弄されることに...。
いろいろ試行錯誤する羽目になったのですが、結果的にsvnディレクトリのオーナー権限、グループ権限に問題があったことが分かりました。
svnディレクトリのオーナー、グループはsvnではなく、apacheじゃないとダメなんですね...。ふぅ。
chown -R apache:apache svn
実は、このsvnディレクトリ、svnのインストールの際に、自動的に「/home/svn/」に自動で生成されたものをcp -aしてきたものなんです。当然自動で生成されたディレクトリだから、オーナー権限、グループ権限は変更せずにsvnのままコピーしたのですが、それでハマってしまったわけです...。因みに「subversion.conf」内の設定例では「/var/www/svn」となっていて、今回はそのようにしてみたのですが、それは結果的にどっちでもいいらしいです。
それじゃ、今度は非公開(ベーシック認証)の設定をしてみるかということで、該当部分のコメントアウト外してみたのですが...
<Location /repos>
 DAV svn
 SVNParentPath /var/www/svn
 # Limit write permission to list of valid users.
 <LimitExcept GET PROPFIND OPTIONS REPORT>
  # Require SSL connection for password protection.
  # SSLRequireSSL
  AuthType Basic
  AuthName "Authorization Realm"
  AuthUserFile /var/www/svn/.htpasswd
  Require valid-user
 </LimitExcept>
</Location>
htpasswd -c /var/www/svn/.htpasswd hogehoge
New password: hogehoge
Re-type new password: hogehoge
service httpd restart
以上で、設定完了ですが、なぜかIDとパスワードを聞かずにスルっと通してしまうのです。ワケが分からない...。ネットで見つけたとある情報に基づき、httpd.confで設定されているDocumentRoot下にリポジトリを変更してみたりしたのですがそれでもダメでした。
とりあえず、セキュリティ面はIPで制限を掛けることとして、今回は妥協してみました。なんでダメなんだろ。
<Location /repos>
 DAV svn
 SVNParentPath /var/www/svn
 order deny,allow
 deny from all
 allow from 127.0.0.1 
 allow from xxx.xxx.xxx.xxx ←通すIPにします。
</Location>
service httpd restart
修行は続く。

CentOS7のhttpd設定で詰まった点

初めてCentOS7を触ったのですが、いくつか詰まったところがあったのでまとめます。

serviceではなくsystemctlを使う

今までhttpdなどのサービスはserviceコマンドを使っていましたが、CentOS7からはsystemctlコマンドを使うことになります。
# sudo service httpd start の代わり
sudo systemctl start httpd.service

# sudo chkconfig httpd on の代わり
sudo systemctl enable httpd.service
末尾の.serivceは省略してもよいみたいです。

ファイアウォール設定を要確認

Firewall-cmdというファイアウォールが自動的に有効になっている場合があり、見落としがちです。
ポート80 (http) と 443 (https)を開けるには、下記のようにします。
firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

CentOSにApache HTTP Server(httpd)をインストールしてテストページを表示する

CentOSにApache HTTP Server(httpd)をインストールしてテストページを表示する

 

httpdのインストール

yumコマンドで httpd をインストールします。root で実行してください。

 

# yum -y install httpd
...
インストール:
  httpd.x86_64 0:2.2.15-39.el6.centos

依存性関連をインストールしました:
  apr.x86_64 0:1.3.9-5.el6_2     apr-util.x86_64 0:1.3.9-3.el6_0.1 
apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1  httpd-tools.x86_64 0:2.2.15-39.el6.centos
  mailcap.noarch 0:2.1.31-2.el6
...
# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Oct 16 2014 14:48:21
 
以下のようなディレクトリやファイルが作成されています。

/etc/httpd/
/etc/sysconfig/httpd
/etc/logrotate.d/httpd
/usr/lib64/httpd/
/var/www/
/var/run/httpd/
/var/log/httpd/
 
インストールが出来たら起動してみましょう。以下どちらのコマンドでも同じです。
# service httpd start
httpd を起動中: httpd: Could not reliably determine the server's fully 
qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
---
# /etc/init.d/httpd start
httpd を起動中: httpd: Could not reliably determine the server's fully 
qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
 
停止はstop、再起動はrestart、状態を確認するにはstatusを使用します。
起動した時にhttpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerNameというメッセージが表示されていますが、これは httpd.conf の ServerName を設定することで消えます。

# vi /etc/httpd/conf/httpd.conf
...
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work.  See also the UseCanonicalName directive.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#
ServerName www.example.com:80
...
# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]
 
起動後にブラウザで確認すると以下の画面が表示されます。
httpdをインストールしたマシンのブラウザならlocalhostやホスト名、
仮想マシンやサーバーにインストールした場合はIPアドレスを入力するだけでOKです。

ウェルカムページについて

先程ブラウザで確認した画面ですが、これは/etc/httpd/conf.d/welcome.confという設定ファイルによって、デフォルト状態でアクセスした時に表示されるようになっています。ファイルの中身は以下の通りです。

# cat /etc/httpd/conf.d/welcome.conf
<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /error/noindex.html
</LocationMatch>
 
 

httpdの自動起動

インストールした段階では自動起動がONになっていないため、再起動する度に手動で httpd を起動する必要があります。

# chkconfig --list | grep httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
 
自動起動をONにしておくことで起動する手間がいらなくなるのでしておきましょう。
# chkconfig httpd on
# chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

TeraPad Ver.1.09

□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

  TeraPad Ver.1.09                                          2012/11/12
                                                                   寺尾 進
                                 http://www5f.biglobe.ne.jp/~t-susumu/
                                            t-susumu@mvh.biglobe.ne.jp
                                       http://www.facebook.com/terapad
                                            http://twitter.com/terapad

□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

Apacheのhttpdプロセスの起動, 停止, 再起動 について説明します。このドキュメントは、3分程度で読めます。

インストールsudo apt install apache2

apachectl による制御
起動sudo apachectl start

停止sudo apachectl stop

優雅な停止(graceful-stop)

ただの停止(stop)との違いは、現在オープンしているコネクションをアボートしません。
現在のコネクションの処理が終わるまで、httpdは停止しません。
sudo apachectl graceful-stop

再起動sudo apachectl restart

優雅な起動(graceful)

ただの再起動(restart)との違いは、現在オープンしているコネクションをアボートしません。
restartは、接続中のコネクションを切ってしまうので、サービスを利用しているユーザからは
サービスがおかしくなったように見えるかもしれません。gracefulは、コネクションが
切れる状態になるまで、restartが始まりません。 sudo apachectl graceful

ステータスの確認$ sudo apachectl status Apache Server Status for localhost (via 127.0.0.1) Server Version: Apache/2.4.10 (Ubuntu) Server MPM: prefork Server Built: Jul 24 2015 17:25:18 __________________________________________________________________ Current Time: Tuesday, 03-Nov-2015 19:10:18 JST Restart Time: Tuesday, 03-Nov-2015 19:04:47 JST Parent Server Config. Generation: 1 Parent Server MPM Generation: 0 Server uptime: 5 minutes 30 seconds Server load: 1.57 1.76 1.74 Total accesses: 0 - Total Traffic: 0 kB CPU Usage: u0 s0 cu0 cs0 0 requests/sec - 0 B/second - 1 requests currently being processed, 4 idle workers W____........................................................... ................................................................ ...................... Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of worker, "." Open slot with no current process

Linux-UbuntuでのSubversionのインストールと使い方


最近GitHubの方に現を抜かしていたせいで、Subversionの使い方を忘れていた自分が居たので使い方をまとめておきます。
環境はLinux-Ubuntuです。
まずはSubversionのインストールから

Subversion:インストール

1
$ sudo apt-get install subversion subversion-tools libapache2-svn
subversion-toolsはリポジトリのバックアップやファイルのマージ等を行うツール群がパッケージされています。
libapache2-svnはリポジトリをApache2を利用して公開するためのパッケージという事です。

Subversion:設定

インストールが終わったら、Subversionリポジトリをウェブサーバーで公開できるようにApache2の設定をしましょう。
1
$ sudo vim /etc/apache2/mods-enabled/dav_svn.conf
開いてみるとほぼ全文コメントアウトみたいな状態だと思います。
該当箇所だけコメントアウトを外すのは面倒くさいので、ファイルの一番下に
1
2
3
4
<Location /svn>
  DAV svn
  SVNParentPath /home/svn
</Location>
を追記してあげるといいと思います。
終わったら設定反映の為にApacheの再起動
1
$ sudo apache2ctl restart

Subversion:リポジトリの作成

さて設定が終わったので早速リポジトリを作成しましょう。
リポジトリの場所は本来好きな場所に設定する事ができますが、
上の方でApache2のSVN用公開ディレクトリを
SVNParentPath /home/svn
に設定していますのでココにディレクトリを作成し、リポジトリを作ります。
1
2
3
$ sudo mkdir /home/svn/
$ cd /home/svn/
$ sudo svnadmin create test
svnadmin create リポジトリ名
を実行すると自動的にSubversionを使うにあたって必要なファイル郡が作成されます。

Subversionファイル郡のユーザーグループ設定

このままではsudoによりroot権限でリポジトリ「test」を作成してしまった手前、
Apache2の権限ではSubversionファイル郡に触れる事ができません。ので
ユーザーを変更してあげる必要があります。
ちなみにApache2はwww-dataというユーザーで動いていますので~
1
$ sudo chown -R www-data:www-data test
chown -Rの-Rでディレクトリの中のすべてのディレクトリ、ファイルを一度にユーザー:www-data,グループ:www-dataに変更してしまう事ができます。
後はsvnコマンドのimportやcheckoutオプションを使ってファイルのインポートやチェックアウトが可能になります。

Subversion:運用の参考

参考:インポート

1
2
3
4
5
6
7
8
9
10
11
$ cd
$ mkdir test
$ cd test
$ cat > test
aaa
bb
ccc
^D
$ cd ../
$ svn import test/  http://localhost/svn/test/ -m "import test"
追加しています              test/test

参考:チェックアウト

1
2
3
$ svn checkout http://localhost/svn/test
A    test/test
リビジョン 1 をチェックアウトしました。
また、Apache2によってwebserver上にリポジトリが公開されていますので
ブラウザ等を開き、アドレス欄にdomain/svn/リポジトリ名/と入力
(先ほどの例ではdomain/svn/test/になりますね。)
する事でインポートしたファイルの一覧を見ることができるようになっています。
Linux自体から参照する場合は当然、http://localhost/svn/test/に
またIPで示すならばlocalhostを表わす http://127.0.0.1/svn/test/で
リポジトリを参照する事ができます。
Windowsからチェックアウトする時にはTortoiseSVNなどを使ってチェックアウトしてあげるとはかどります。
以上
尚、この記事を書くにあたり
すらすら はてなさんのサイト
を参考にさせていただきました。ありがとうございます。

UbuntuにApache2でSubversionサーバーを構築する

Ubuntu Apache2 Subversion
間違ってVirtualBoxのvdiファイルを削除してしまったためにやり直し・・・トホホ。

Apache2のインストール

$ sudo apt-get install apache2

Subversionのインストール

$ sudo apt-get install subversion subversion-tools libapache2-svn
subversion-toolsはレポジトリのバックアップやファイルのマージなどのツール群。
libapache2-svnレポジトリをApache2を利用して公開するためのModule。

Subversionの設定

/etc/apache2/mods-enabled/dav_svn.confを編集する。
$ sudo gedit /etc/apache2/mods-enabled/dav_svn.conf
中身はほとんどコメントアウトされてる(#で始まる行がコメント)なので下のように書き換える。
<Location /svn>
  DAV svn
  SVNParentPath /home/svn
</Location>
この設定は 「http://localhost/svn/testにアクセスすると/home/svn/testのレポジトリを参照するよー」という設定(たぶん)
設定を反映させるためにApacheの再起動
$ sudo apache2ctl restart

Subversionのテスト

testという名前でレポジトリを作成する。
$ sudo mkdir /home/svn/
$ cd /home/svn/
$ sudo svnadmin create test
レポジトリを作るとフォルダができて、その中にいろんなファイルができる。
Subversionを使う上で、この辺のファイルを直接いじることはまずない。
$ ls
test
$ cd test
$ ls
README.txt  conf  dav  db  format  hooks  locks
ローカルで使う場合はこのままでも良いが、Apacheを通じてレポジトリを公開するときはApache側からアクセスできるようにファイルの所有者・グループを変更しておく。
apacheはwww-dataというユーザーで動いているらしい
$ ps aux | grep apache2
root      5685  0.0  1.0  10164  2600 ?        Ss   22:33   0:00 /usr/sbin/apache2 -k start
www-data  5686  0.0  0.7   9936  1848 ?        S    22:33   0:00 /usr/sbin/apache2 -k start
www-data  5687  0.0  1.1 231500  2904 ?        Sl   22:33   0:00 /usr/sbin/apache2 -k start
www-data  5689  0.0  1.1 231500  2820 ?        Sl   22:33   0:00 /usr/sbin/apache2 -k start
というわけでtestディレクトリに対して以下のような操作をすればOK
$ sudo chown -R www-data.www-data test
確認
$ ls -al
合計 12
drwxr-xr-x 3 root     root     4096 2007-11-22 22:53 .
drwxr-xr-x 4 root     root     4096 2007-11-22 22:51 ..
drwxr-xr-x 7 www-data www-data 4096 2007-11-22 22:53 test
$ cd test
$ ls -al
合計 36
drwxr-xr-x 7 www-data www-data 4096 2007-11-22 22:53 .
drwxr-xr-x 3 root     root     4096 2007-11-22 22:53 ..
-rw-r--r-- 1 www-data www-data  229 2007-11-22 22:53 README.txt
drwxr-xr-x 2 www-data www-data 4096 2007-11-22 22:53 conf
drwxr-xr-x 2 www-data www-data 4096 2007-11-22 22:53 dav
drwxr-sr-x 5 www-data www-data 4096 2007-11-22 22:53 db
-r--r--r-- 1 www-data www-data    2 2007-11-22 22:53 format
drwxr-xr-x 2 www-data www-data 4096 2007-11-22 22:53 hooks
drwxr-xr-x 2 www-data www-data 4096 2007-11-22 22:53 locks

testディレクトリとtestファイルを作成し、testレポジトリにインポートする。
$ cd
$ mkdir test
$ cd test
$ cat > test
aaa
bb
ccc
^D
$ cd ../
$ svn import test/  http://localhost/svn/test/ -m "import test"
追加しています              test/test

リビジョン 1 をコミットしました。
チェックアウトしてみる
$ svn checkout http://localhost/svn/test
A    test/test
リビジョン 1 をチェックアウトしました。
http://localhost/svn/test/にアクセスして 「Revision 1: /」とか表示されてればOK

2017년 3월 3일 금요일

Backspace in insert mode in vi doesn't erase the character and vi command

$ set nocompatible
$ set backspace=2


You need to change to the "insert" mode by moving the cursor with i. There are other ways to delete characters directly. You can download a powerpoint that I use when teaching a class on VI here.

It sounds like you are in the "Command" mode. To move your cursor:
H = Left, J = Up, K = Down, L = Right

Once you have your cursor positioned you can delete text as follows:
x Deletes the character under the cursor
X Deletes the character before the cursor
dw Deletes from the cursor to the next word
dd Deletes the line the cursor is on.
To enter text, you can use one of the text entry modes.
a Adds text to the right of the cursor
A Adds text to the end of the current line
i Adds text to the left of the cursor
I Adds test to the beginin of the current line
o Opens a new line below the current line and places you in text entry mode
O Opens a new line Above the current line and places you in text entry mode
To exit Text entry mode, and return to the Command mode, use Esc.
To Undo changes: (A student favorite)
u Undo the last command entered
U Undo all changes to the ** current line**
To Save/Quit: :w Writes (Saves) the file and remains open
:wq Writes (Saves) the file and exits VI
:q Quits (Exits) if you've made no changes
:q! Quits (Exits) without saving changes
ZZ Writes (Saves) the file and exits VI (same as :wq)

viで矢印キーを押すとABCDが入ってしまう

■viで矢印キーを押すとABCDが入ってしまう

vi で、矢印キーを押すとABCDなんて文字が入ってしまうのに困っていたのですが、解決方法をみつけました。

ポイント
vi 起動直後にコマンドで :set nocompatible と入力する。
毎回コマンドを入力するのは面倒なので、~/.vimrc にこれを記述しておく。

参考にさせていただいたサイト Vimで方向キーを押すとABCDが出る問題を直す
ありがとうございます。

簡単!UbuntuにApache2をインストールする方法

簡単!UbuntuにApache2をインストールする方法

sudo apt-get install apache2 
http://localhost/
 

index.htmlを編集

なお、このとき表示されているファイルは、/var/www/index.htmlファイルです。
編集するには、
 
chown -hR 自分のユーザ名 /var/www
 
とやって、あとは/var/www/ の中の index.htmlファイルをエディターで編集すればOK!
楽しくなってきた〜