青森市出身の元八百屋エンジニアブログ

青森市出身の元八百屋エンジニアブログ

八百屋を辞め、エンジニアに転身したプログラミング日記

Amebaでブログを始めよう!
下記のように普通にアクセスすると、
クライアントのjavascript

$.getJSON("http://192.168.51.128/get_json.php",
function(data) {
console.log(data);
});

このようなエラーが発生する。

XMLHttpRequest cannot load http://192.168.51.128/get_json.php. Origin null is not allowed by Access-Control-Allow-Origin.


get_json.phpの中身はこんな感じ

$ary = array(
'a' => 123,
'b' => 456,
'c' => 789
);

echo json_encode($ary);


JSONPでアクセスするために、
Webサーバー(Apache)側で、別ドメインからアクセスを許すように設定
今回は、.htaccessを使用

vim httpd-vhosts.conf
--------------------------------------------------

~~~
<Directory "/usr/local/apache2/htdocs/">
# .htから始まるファイルは外部からアクセスできないように設定
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
</Directory>
</VirtualHost>



DocumentRootに.htaccess作成

Header append Access-Control-Allow-Origin *

※間違って下記のように書いて はまりました。 (コロン)
Header append Access-Control-Allow-Origin: *


無事、データが取れました。

{"a":123,"b":456,"c":789}
JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技/JSサポーターズ

¥3,129
Amazon.co.jp

まずは、VNC Serverインストール
yumで...


yum -y install vnc-server


X Windowインストール

yum -y groupinstall "X Window System" "GNOME Desktop Environment"
yum -y install fonts-japanese


日本語入力用のIMEインストール

yum -y install anthy scim scim-anthy


自動起動設定

chkconfig --add vncserver
chkconfig vncserver on


ユーザー設定

# ゲスト用ユーザー作成
useradd -d /home/guest -m guest

vim /etc/sysconfig/vncservers
----------------------------------------------------------
# (user_number:user_name)スペース区切りで指定
VNCSERVERS="1:root 2:guest"
# rootはlocalhostからのみアクセス化
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -nohttpd -localhost"
# guestは外部からアクセス化
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -nohttpd"


user_numberによって、アクセスポート番号が割り当てられる。
VNCSERVERARGS[1] -> 5901
VNCSERVERARGS[2] -> 5902

パスワードの設定
各ユーザーでログインする

su - guest
# パスワード設定
vncpasswd


GUI設定
各ユーザーホームディレクトリ上で、

vi ~/.vnc/xstartup

---------------------------------------
#!/bin/sh

# Uncomment the following two lines for normal desktop:
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
LANG=ja_JP.UTF8
export LANG
export XMODIFIERS="@im=scim"
export GTK_IM_MODULE="scim"
scim -d
exec gnome-session &


VNC Server起動

/etc/init.d/vncserver start





解像度指定

vim /usr/bin/vncserver
----------------------------------------------------------
#
# Global variables. You may want to configure some of these for your site.
#

$geometry = "1280x768"; ←ここの数値を解像度に変更
$depth = 16;


あとは、ポート開放するかPort転送でアクセス!

クライアントPCがウィンドウズの時は、TigerVNCを使CentOS徹底入門 第3版/翔泳社

¥4,494
Amazon.co.jp

はじめてのCentOS6 Linuxサーバ構築編 (TECHNICAL MASTER)/秀和システム

¥3,150
Amazon.co.jp

Redmineのリポジトリ管理と連携させるためにGitoliteをインストール

まずはgitをインストール

GITサーバー設定

useradd -d /home/gitolite -m gitolite


作業ディレクトリ作成

su - gitolite
cd /home/gitolite
mkdir /home/gitolite/src
mkdir /home/gitolite/bin


ダウンロード & インストール

cd /home/gitolite/src
git clone git://github.com/sitaramc/gitolite
gitolite/install -ln


gitolite/installでエラーが発生した場合

Can't locate Time/HiRes.pm in @INC (@INC contains: /home/gitolite/src/gitolite/src/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/gitolite/src/gitolite/src/lib/Gitolite/Common.pm line 76.
BEGIN failed--compilation aborted at /home/gitolite/src/gitolite/src/lib/Gitolite/Common.pm line 76.
Compilation failed in require at gitolite/install line 15.
BEGIN failed--compilation aborted at gitolite/install line 15.


HiRes Moduleがないため、インストール

# Cpanがない場合、インストール
yum install perl-CPAN
cpan> install Bundle::LWP Time::HiRes
# とりあえず、全部Yes!!
cpan> quit

# 入ったか確認
find `perl -e 'print "@INC"'` -name '*.pm' -print | grep HiRes
> /usr/local/lib64/perl5/Time/HiRes.pm

# 再度、install
gitolite/install -ln


エラーが出なければ完了

ssh-keygen -t rsa
------------------------------------
> Generating public/private rsa key pair.
> Enter file in which to save the key (/home/gitolite/.ssh/id_rsa): /home/gitolite/.ssh/admin
> Created directory '/home/gitolite/.ssh'.
> Enter passphrase (empty for no passphrase):
> Enter same passphrase again:
> Your identification has been saved in /home/gitolite/.ssh/admin.
> Your public key has been saved in /home/gitolite/.ssh/admin.pub.
> The key fingerprint is:
------------------------------------

# たまにログファイルがないと怒られるので作成
mkdir -p /home/gitolite/.gitolite/logs

# gitolite-admin用認証鍵作成
gitolite setup -pk admin.pub
> Initialized empty Git repository in /home/gitolite/repositories/gitolite-admin.git/
> Initialized empty Git repository in /home/gitolite/repositories/testing.git/
> WARNING: /home/gitolite/.ssh/authorized_keys missing; creating a new one


インストール後のディレクトリ構造

yum -y install tree
tree /home/gitolite/ -L 2
-----------------------------
/home/gitolite/
bin
gitolite -> /home/gitolite/src/gitolite/src/gitolite
projects.list
repositories
gitolite-admin.git
testing.git
src
gitolite




クライアントPC設定

サーバーの/home/gitolite/.ssh/admin秘密鍵をダウンロード


# とりあえず下記に配置
vim ~/.ssh/config
Host l_gitolite
HostName 192.168.51.132
Port 22
User gitolite
IdentityFile "/Users/chiba/.ssh/local2/admin"


Clone出来れば完了!

git clone ssh://l_gitolite/gitolite-admin.git


次回は、gitolite.confの書き方を調べてみます。

実用Git/Jon Loeliger

¥2,940
Amazon.co.jp