hirokimuraの日記

2011-03-23

ニフティクラウド上のサーバーで新規ユーザを作成してSSHの鍵を作成する手順

ニフティクラウド上のサーバーでの、ユーザ新規作成SSHでのログイン設定手順です。

OSCentOS 5.3です。

ニフティクラウドサポート掲示板によると以下の通り。

サーバー内で新しく作成したユーザログインできません

  新規ユーザー作成後、ssh-keygenコマンドにて新規にSSHキー作成し所定のディレクトリへ格納してください。

  格納例: /home/ユーザー名/.ssh/authorized_keys

サーバー内で新しく作成したユーザログインできません | サーバー作成管理 | サーバー作成管理 | FAQ一覧 | サポート掲示板トップ:@nifty: http://cloud.kaiketsu.nifty.com/faqs/44709/thread


新規ユーザ作成

rootログインして、ユーザ newuser を作成します。

[root@localhost ~]# useradd newuser

newuser のパスワードを設定します。

[root@localhost ~]# passwd newuser
Changing password for user newuser.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#

鍵の作成

以下のページを参考に鍵を作成しました。

参考URL: http://kajuhome.com/openssh.shtml

ユーザーをrootからnewuserに切り替える。
[root@localhost ~]# su - newuser

鍵を作成する。
[newuser@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/newuser/.ssh/id_rsa): Enterキーを押す。
Created directory '/home/newuser/.ssh'.
Enter passphrase (empty for no passphrase): パスフレーズを入力。
Enter same passphrase again: パスフレーズを再入力。
Your identification has been saved in /home/newuser/.ssh/id_rsa.
Your public key has been saved in /home/newuser/.ssh/id_rsa.pub.
The key fingerprint is:
57:30:78:6e:86:91:cd:4e:5c:72:29:b6:13:94:61:53 newuser@localhost.localdomain
[newuser@localhost ~]$

作成されたファイルを確認する。
[newuser@localhost ~]$ ls -la /home/newuser/.ssh/
合計 16
drwx------ 2 newuser newuser 4096  3月 22 18:08 .
drwx------ 3 newuser newuser 4096  3月 22 18:09 ..
-rw------- 1 newuser newuser 1743  3月 22 18:08 id_rsa   ←秘密鍵
-rw-r--r-- 1 newuser newuser  407  3月 22 18:08 id_rsa.pub ←公開鍵
[newuser@localhost ~]$

公開鍵 id_rsa.pub を authorized_keys に追加する。
[newuser@localhost ~]$ cat /home/newuser/.ssh/id_rsa.pub >> /home/newuser/.ssh/authorized_keys

公開鍵へのアクセス権限を変更する。
[newuser@localhost ~]$ chmod 600 /home/newuser/.ssh/authorized_keys

公開鍵 id_rsa.pub を削除する。
[newuser@localhost ~]$ rm -f /home/newuser/.ssh/id_rsa.pub
[newuser@localhost ~]$ ls -la /home/newuser/.ssh/
合計 16
drwx------ 2 newuser newuser 4096  3月 22 18:15 .
drwx------ 3 newuser newuser 4096  3月 22 18:09 ..
-rw------- 1 newuser newuser  407  3月 22 18:14 authorized_keys
-rw------- 1 newuser newuser 1743  3月 22 18:08 id_rsa
[newuser@localhost ~]$

秘密鍵 id_rsa をローカルにコピーする。

サーバー上の秘密鍵を削除する。
[newuser@localhost ~]$ rm -f /home/newuser/.ssh/id_rsa
[newuser@localhost ~]$

以下のサイトの手順で、コピーした秘密鍵を使ってPuttyからサーバーアクセスできます。

参考URLhttp://kajuhome.com/putty.shtml


以上より、ニフティクラウド上のサーバーで新規ユーザ作成SSHの鍵作成ができます。

2011-02-20

Ubuntuにlimitlinkのグループウェアをインストールしてみた

limitlinkのオープンソースグループウェアUbuntuインストールしたときのまとめ。


グループウェアについての説明は以下の通り。

スケジュール管理、施設予約、ToDo管理ファイル共有、プロジェクト管理アドレス帳タイムカードなど多くの機能を備えつつ軽快に動作するWebグループウェアです。

PHPMySQLもしくはSQLiteが動作するサーバーで稼動します。

製品情報 株式会社リミットリンク: http://limitlink.jp/product.php


ダウンロード

以下のダウンロードページから利用規約に同意してgroup.zipダウンロード

http://l-groupware.com/download/


環境構築

環境は以下の通り。

インストールするもの。


ApacheMySQLPHPインストール

taskel で ApacheMySQLPHPをまとめてインストール

参考URL

$ sudo apt-get install tasksel
$ sudo tasksel

LAMP server」にスペースキーでチェックを入れて、Tab → 「了解」でエンタキーを押す。


Apache再起動
$ sudo /etc/init.d/apache2 restart

PHPの動作確認
$ vi /var/www/test.php

以下を記述する。

<?php phpinfo();?>

ブラウザで以下にアクセス

http://localhost/test.php


データベース作成
$ mysql -uroot -p
mysql> create database groupware;

セットアップ

以下のページを参考にセットアップを行う。

http://l-groupware.com/setup/


ダウンロードした group.zip解凍して /var/www に配置する。

$ unzip group.zip
$ sudo -s
# mv group /var/www
# cd /var/www

パーミッションを変更する。

# chmod 606 group/application/config.php 
# chmod 707 group/application/upload/forum/
# chmod 707 group/application/upload/message/
# chmod 707 group/application/upload/project/
# chmod 707 group/application/upload/storage/
# chmod 707 group/application/upload/temporary/

ブラウザで以下のURLアクセスして、入力項目を入力

http://localhost/group/setup.php

f:id:hirokimura:20110220233505p:image


実行をクリックして、セットアップが成功すると以下のような画面が表示される。

f:id:hirokimura:20110220233506p:image

config.phpパーミッションを変更して setup.php を削除。

# chmod 604 group/application/config.php
# rm group/setup.php

ブラウザhttp://localhost/groupアクセスするとログイン画面が表示される。

f:id:hirokimura:20110220233507p:image

ログイン後のトップページ画面はこちら。

f:id:hirokimura:20110220233508p:image

スケジュールタブはこちら。

f:id:hirokimura:20110220233509p:image

終わり。

2010-11-25

SugarCRMのインストール2

前回の記事の続きです。

今回はデータベース作成して、SugarCRMインストールします。

  1. CentOS環境設定
  2. Apache, PHP, MySQLインストール
  3. php.iniとmy.cnfの編集
  4. データベース作成(ここから)
  5. SugarCRMインストール

4. データベース作成

MySQLで以下のようなSugarCRM用のデータベースユーザを作ります。

[root@localhost ~]# service mysqld start
[root@localhost ~]# mysql -u root

mysql> CREATE DATABASE sugarcrm DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER crmuser IDENTIFIED BY 'crmuser';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON sugarcrm.* TO crmuser@localhost
    -> IDENTIFIED BY 'crmuser';
Query OK, 0 rows affected (0.00 sec)

mysql>

以上でデータベース作成は終わりです。


5. SugarCRMインストール

ここでやっとSugarCRMインストールです。

まずはSugarCRMを以下のURLからダウンロードします。

http://www.sugarforge.org/frs/?group_id=581

SugarCE-Full-5.5.1-Ja-dev.zip をダウンロード

次にzipファイル解凍し、リネームして /var/www/html に移動します。

[root@localhost Desktop]# unzip SugarCE-Full-5.5.1-Ja-dev.zip
〜略〜
[root@localhost Desktop]# mv SugarCE-Full-5.5.1-Ja-dev.zip sugarcrm
[root@localhost Desktop]# mv sugarcrm /var/www/html
[root@localhost Desktop]# cd /var/www/html/
[root@localhost html]# chown -R apache:apache sugarcrm

ここで、SELinuxの設定を変更します。

編集後に再起動する必要があります。

[root@localhost html]# vi /etc/sysconfig/selinux
変更前: SELINUX=enforcing
変更後: SELINUX=disabled
[root@localhost html]# reboot

次に、ブラウザから以下のURLアクセスします。

 http://localhost/sugarcrm

 *"sugarcrm"のところには、リネームしたディレクトリ名を入れてください。

以下のような画面が表示されます。

f:id:hirokimura:20101125144749p:image


次へを押して進みます。

以下のようなデータベースの設定画面では、データベース管理ユーザ名・データベース管理者のパスワード のところに、それぞれ crmuser と入力します(4. データベース作成 で作ったユーザのusernameとpassword)。

f:id:hirokimura:20101125144750p:image


すでにあるデータベースを削除して作り直すか聞かれるので「許可」を押します。

f:id:hirokimura:20101125144751p:image


サイト管理者(admin)のパスワードの設定を行います。

任意のパスワード入力してください。

f:id:hirokimura:20101125151855p:image


少し時間をおいてからインストール完了画面が表示されます。

f:id:hirokimura:20101125144752p:image


次へを押して進むと確認画面が表示されるので、インストールを押します。

少し時間を置いて、インストールの完了と表示されます。

f:id:hirokimura:20101125151856p:image


さらに次へを押して進むと、以下のようなログイン画面が表示されます。

f:id:hirokimura:20101125151857p:image

ユーザ名:admin、パスワード:設定したもの を入力するとログインできます。


以上でインストールは終了です。長かった。

SugarCRMのインストール

SugarCRMCentOS on VMWare Playerにインストールします。

環境は以下の通り。

以下の手順でインストールをします。

  1. CentOS環境設定
  2. Apache, PHP, MySQLインストール
  3. php.iniとmy.cnfの編集
  4. データベース作成
  5. SugarCRMインストール

1. CentOS環境設定

CentOSVMWare Playerに簡易インストールした場合、いろいろ足りていないものがあるため設定します。

[日本語フォント]

 参考URL: 日本語フォントの設定 on CentOS 5.3

 IPAフォントの設定で、

# fc-cache -fv

 を実行してエラーが出る場合は、failed が出るフォルダタイムスタンプを以下のように touch で更新する。

# touch /usr/share/fonts/bitmap-fonts/

[キーボードの変更]

 System -> Keyboard -> Layout で

 ・Keyboard model を Japanese 106-key

 ・Selected layouts に Japan を追加


[日本語入力]

参考URL: CentOS 日本語入力できるようにする。


2. Apache, PHP, MySQLインストール

参考URL1: SugarCRMのインストール: ペンギンの教科書

参考URL2: パソコンに関すること、特にcentosで試行錯誤 - sugarcrmインストール

CentOS5.5を簡易インストールした場合Apacheのみインストールされます。

[root@localhost ~]# rpm -qa http*
httpd-2.2.3-43.el5.centos.3
[root@localhost ~]# rpm -qa php*
[root@localhost ~]# rpm -qa mysql*
[root@localhost ~]#

[PHPMySQLインストール]

yumで必要なものをインストールします。

[root@localhost ~]# yum -y install php php-mysql php-ldap php-pdo
〜略〜
[root@localhost ~]# yum -y install mysql mysql-server mysql-connector-odbc mysql-devel mysql-bench
〜略〜
[root@localhost ~]#

参考URL1ではここでアップデートしていますが、最後にまとめてすることにします。


[php-mbstring, php-json, php-imapインストール]

php に必要なモジュールである php-mbstring, php-json, php-imapインストールします。

こちらは参考URL1の手順でそのままできます。

まずは、php-jsonから。

php-jsonrpmパッケージがないので、以下の手順でリビルドしてインストールします。

ビルドにはphp-develが必要なので、yumインストールします。

[root@localhost ~]# rpm -qa php-devel libtool gcc-c++
gcc-c++-4.1.2-48.el5
libtool-1.5.22-7.el5_4
[root@localhost ~]# yum -y install php-devel
〜略〜
[root@localhost ~]#

[root@localhost ~]# wget http://www.aurore.net/projects/php-json/php-json-4.3.2_1.2.1-1.aurore.src.rpm
[root@localhost ~]# rpmbuild --rebuild --target=i386 php-json-4.3.2_1.2.1-1.aurore.src.rpm
[root@localhost ~]# cd /usr/src/redhat/RPMS/i386/
[root@localhost i386]# rpm -ivh php-json-5.1.6_1.2.1-1.aurore.i386.rpm
〜略〜
[root@localhost i386]# rpm -ivh php-json-debuginfo-5.1.6_1.2.1-1.aurore.i386.rpm 
〜略〜
[root@localhost ~]#

次に、php-mbstring と php-imapインストール

[root@localhost i386]# yum -y install php-imap php-mbstring
〜略〜
[root@localhost ~]#

こんな感じになります。

[root@localhost ~]# rpm -qa php*
php-common-5.1.6-27.el5
php-json-debuginfo-5.1.6_1.2.1-1.aurore
php-ldap-5.1.6-27.el5
php-cli-5.1.6-27.el5
php-5.1.6-27.el5
php-devel-5.1.6-27.el5
php-mbstring-5.1.6-27.el5
php-mysql-5.1.6-27.el5
php-json-5.1.6_1.2.1-1.aurore
php-imap-5.1.6-27.el5
php-pdo-5.1.6-27.el5
[root@localhost ~]# rpm -qa mysql*
mysql-bench-5.0.77-4.el5_5.4
mysql-devel-5.0.77-4.el5_5.4
mysql-connector-odbc-3.51.26r1127-1.el5
mysql-server-5.0.77-4.el5_5.4
mysql-5.0.77-4.el5_5.4
[root@localhost ~]#

[アップデート]

以下の手順でパッケージアップデートをします。

1. リポジトリインストール

 * それぞれバージョンを確認して取得。

[root@localhost ~]# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@localhost ~]# wget http://rpms.famillecollet.com/el5.i386/remi-release-5-8.el5.remi.noarch.rpm
[root@localhost ~]# rpm -Uvh epel-release-5* remi-release-5*

[root@localhost ~]# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
[root@localhost ~]# rpm -Uvh rpmforge-release-0.5.2-2.el5.rf.i386.rpm

2. インストール

 [root@localhost ~]# yum -y --enablerepo=remi,epel,rpmforge update php* mysql*

[httpdの再起動]

 すべてのモジュールインストールアップデートを反映させるため再起動します。

[root@localhost ~]# service httpd restart

以上でPHPMySQLパッケージインストールは終わりです。


3. php.iniとmy.cnfの編集

SugarCRMのための設定をします。

まずはPHPの設定をするためphp.iniを編集します。

[root@localhost ~]# cp -p /etc/php.ini /etc/php.ini.org
[root@localhost ~]# vi /etc/php.ini

264行目
変更前: output_buffering = 4096
変更後: output_buffering = On

291行目
変更前: zlib.output_compression = Off
変更後: zlib.output_compression = On

878行目
変更前: upload_max_filesize = 2M
変更後: upload_max_filesize = 10M

1592行目[mbstring]以降
変更前: ;mbstring.language = Japanese
変更後: mbstring.language = Japanese

変更前: ;mbstring.internal_encoding = EUC-JP
変更後: mbstring.internal_encoding = UTF-8

変更前: ;mbstring.http_input = auto
変更後: mbstring.http_input = auto

変更前: ;mbstring.http_output = SJIS
変更後: mbstring.http_output = pass

変更前: ;mbstring.detect_order = auto
変更後: mbstring.detect_order = auto

変更前: ;mbstring.substitute_character = none
変更後: mbstring.substitute_character = none

追加
default_character = UTF-8

httpdの再起動

 [root@localhost ~]# service httpd restart

次に、my.cnfを編集します。

[root@localhost ~]# cp -p /etc/my.cnf /etc/my.cnf.org
[root@localhost ~]# vi /etc/my.cnf

[mysqld]の下に下記を追加して保存。

 skip-character-set-client-handshake

以上でphp.iniとmy.cnfの編集は終わりです。


つづく

2010-07-16

infoScoopでOAuthガジェットを試してみる

infoScoopOAuth対応

infoScoop OpenSource 2.1.0 RC2 がリリースされ、OAuth対応しました。(6月28日)

http://www.infoscoop.org/index.php/ja/news/107.html

そこで今回は、infoScoopOAuth ガジェットを試してみようと思います。


ガジェットの準備

ガジェット前回の記事で作ったものを使います。Google ドキュメントの一覧を表示するガジェットです。

iGoogle で動いたガジェットがそのまま infoScoop でも動きます。



infoScoop の準備

OAuth ガジェットinfoScoop で利用するためにはちょっとした設定が必要です。

1.infoScoop のホーム画面の右上の「管理画面」をクリックします。

f:id:hirokimura:20100716150902p:image


2.OAuthクリックします。

f:id:hirokimura:20100716150903p:image


3.「追加」ボタンクリックして、以下の例のように必要な情報入力します。

コンシューマーキーとコンシューマーシークレットについては、あらかじめ取得したものを入力してください。

今回はコンシューマーキーとコンシューマーシークレットを "anonymous" としているため、この設定でガジェットを追加すると許可画面で警告が出ます。


ガジェットの追加

コンテンツ追加にガジェットURL入力して、ガジェットを追加します。

認証のために Google の許可画面に遷移。黄色い警告が出ています。

f:id:hirokimura:20100716161432p:image


許可すると、以下のようにガジェットが使えるようになります。

f:id:hirokimura:20100716150904p:image


OAuth対応したことで twitter などの様々なサービスガジェットが作れますね。

 

2010-06-23

Google ドキュメントの一覧表示ガジェットの作成

OAuth 認証を使ったガジェットが作れそうなので、Google ドキュメントを一覧表示するガジェットを作ってみる。

前の記事でもお世話になった Google Code の Gadget API のページの連絡先を表示するサンプルガジェットを参考にする。


ガジェット作成 Memo
  • ベースはサンプルガジェット。
  • OAuth を使った認証プロセスはそのまま利用。
  • Google Documents List Data API のエンドポイントを指定。
  • 認証後のドキュメントリストの出力を showOneSection() に記述。
  • 見た目にはこだわらない。表示できればOK。

Google Documents List Data API

まずは、<ModulePrefs> の title と <Request> の scope を以下のように変更する。

<Module>
  <ModulePrefs title="Google Docs" scrolling="true">
    <Require feature="opensocial-0.8" />
    <Require feature="locked-domain"/>
    <OAuth>
      <Service name="google">
        <Access url="https://www.google.com/accounts/OAuthGetAccessToken" method="GET" /> 
        <Request url="https://www.google.com/accounts/OAuthGetRequestToken?scope=http://docs.google.com/feeds/" method="GET" /> 
        <Authorization url="https://www.google.com/accounts/OAuthAuthorizeToken?oauth_callback=http://oauth.gmodules.com/gadgets/oauthcallback" /> 
      </Service>
    </OAuth>
  </ModulePrefs>

次に fetchData() 関数の url を編集する。

   function fetchData() {
      var params = {};
      url = "http://docs.google.com/feeds/documents/private/full/?alt=json";
      params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
      params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.OAUTH;
      params[gadgets.io.RequestParameters.OAUTH_SERVICE_NAME] = "google";
      params[gadgets.io.RequestParameters.OAUTH_USE_TOKEN] = "always";
      params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;

ここで、Google Documents List Data API を参照すると、API のバージョンは3.0まで出ている。

しかし、3.0は "In Labs" となっていて OAuth に対応していなかった。

そのため、2.0 を選択して上記のようなエンドポイントを url に指定した。


取得したデータの出力

    function showResults(result) {
      showOneSection('main');
      
      list = result.feed.entry;
      for(var i = 0; i < list.length; i++) {
        entry = list[i];
	var divElement = document.createElement('div');
	var aElement = document.createElement('a');
	aElement.setAttribute('href', entry.link[0].href);
	aElement.setAttribute('target', '_blank');
	aElement.appendChild(document.createTextNode(entry.title.$t));
        divElement.appendChild(aElement);
        document.getElementById("main").appendChild(divElement);
      }
    }

取得したデータから、ドキュメントのタイトルを JavaScript を使って出力している。

また、タイトルにリンクを貼り、クリックで編集画面に飛べるようにした。


完成したガジェット

f:id:hirokimura:20100623115856p:image

今回は表示のみのシンプルなガジェットだけど、JavaScript で色々できそう。