3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows 7のPCでhhvm(CentOS7)開発環境を立ち上げるまでの話① 基礎環境整備

Last updated at Posted at 2015-06-06

実行環境(CentOS)上にいらないパッケージを色々投入するのも・・・とおもい
※コード記述時:Windows7 上からファイル共有(samba)でCentOS上のファイルを操作
※実行環境(HHVM):CentOS 7(VMでエミュレート)
という環境を構築しきるまでの道のりの記録です。

###必要ソフトを入手
・CentOS 7のディスクイメージ
 (実際にDVDに焼くか仮想ドライブでマウントするかは好みです)
 https://www.centos.org/
・Oracle VM VirtualBox(CentOS7の起動環境用VM)
 https://www.virtualbox.org/

###VirtualBOXにCentOS7をインストール
・メニュー:仮想マシン>新規 を選択して 下記を入力して「次へ」
 名前:任意(自分でわかる名前を好きにつけて大丈夫)
 タイプ:Linux
 バージョン:Red Hat(64 bit)
・メモリーサイズは任意(自分のPCの搭載メモリ量と相談で)
・ハードドライブは「仮想ドライブを作成する(C)」をチェックし「作成」
 仮想ドライブの作成ウィザードが起動するのでファイルタイプ(任意)をチェックし
 「次へ」(私はVDI形式にしています)
・サイズ選択は可変でも固定任意で大丈夫
 (「固定」のほうがパフォーマンスはあがるそうですが制約もあります)
・ファイルの場所とサイズはフォルダアイコンで保存先を選び、
 作りたい仮想ドライブの大きさにサイズをセット
・「作成」ボタンで仮想ドライブが作成されます。

###nginxのインストール
・nginx をインストール

bash
[user@centos7 ~]$ vi /etc/yum.repos.d/nginx.repo
/etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
#baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=0
bash
[user@centos7 ~]$ yum -y --nogpgcheck insatall nginx

・nginx.conf をバックアップ

bash
[user@cetnso7 ~]# sudo cp /etc/nginx/nginx.conf /etc/nginx/.nginx.conf.org
[user@centos7 ~]$ sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org

・ファイルを編集

/etc/nginx/nginx.conf
user  nginx;
worker_processes  1; # マシンのCPU数に合わせる

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;

    keepalive_timeout  65;

    include /etc/nginx/conf.d/*.conf;
}
/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;

    charset uft-8;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

・起動確認

bash
[user@centos7 ~]$ sudo systemctl start nginx
[user@centos7 ~]$ sudo systemctl enable nginx

##HHVMをインストール

bash
[user@centos7 ~]$ cd /etc/yum.repos.d/
[user@centos7 ~]$ sudo wget http:/www.hop5.in/yum/el6/hop5.repo
[user@centos7 ~]$ sudo yum -y --nogpgcheck install hhvm
[user@centos7 ~]$ hhvm --version
Compiler: tags/HHVM-3.1.0-0-
g71ecbd8fb5e94b2a008387a2b5e9a8df5c6f5c7b
Repo schema: 88ae0db264d72ec2e2eb22ab25d717214aee568b
(インストール成功すればこんなのが出力される)

##sambaのインストール
sambaのユーザーはcentos としています。

・sambaアクセス用ユーザー作成

bash
[user@centos7 ~]$ sudo yum -y install samba
[user@centos7 ~]$ sudo useradd centos
[user@centos7 ~]$ sudo passwd centos
Changing password for user centos.
New password: <- パスワード応答
Retype new password: <- パスワード応答(確認)
passwd: all authentucation tokens update successfully.

[user@centos7 ~]$ sudo pdbedit -a centos
new password: <- パスワード応答
retype new password: <- パスワード応答(確認)
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Unix username:        centos
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-1397570601-503051572-2212552623-2000
Primary Group SID:    S-1-5-21-1397570601-503051572-2212552623-2001
Full Name:
Home Directory:       \\linux\centos
HomeDir Drive:
Logon Script:
Profile Path:         \\linux\centos\profile
Domain:               LINUX
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          土, 14 12月 1901 05:45:51 GMT
Kickoff time:         土, 14 12月 1901 05:45:51 GMT
Password last set:    月, 13 12月 2004 16:06:00 GMT
Password can change:  月, 13 12月 2004 16:06:00 GMT
Password must change: 土, 14 12月 1901 05:45:51 GMT
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

・ホームディレクトリ設定

bash
[user@centos7 ~]$ mkdir /etc/skel/samba
[user@centos7 ~]$ vi mkhomedir.sh
#!/bin/bash

for user in `ls /home`
do
    id $user > /dev/null 2>&1
    [ $? -eq 0 ] && \
    [ ! -d /home/$user/samba ] && \
    mkdir /home/$user/samba && \
    chown $user:$user /home/$user/samba && \
    echo "/home/$user/samba create"
done
[user@centos7 ~]$ sh mkhomedir.sh
[user@centos7 ~]$ rm -f mkhomedir.sh

[user@centos7 ~]$ sudo mkdir /home/samba
[user@centos7 ~]$ sudo chown nobody:nobody /home/samba

・smb.conf 編集

bash
[user@centos7 ~]$ sudo vi /etc/samba/smb.conf
[global]
   unix charset = UTF-8 <- 追加(Linux側日本語文字コード)
   dos charset = CP932 <- 追加(Windows側日本語文字コード)

# workgroup = NT-Domain-Name or Workgroup-Name
   workgroup = MYGROUP
   ↓
   workgroup = WORKGROUP <- 変更(Windowsのワークグループ名を指定)

;   hosts allow = 192.168.1. 192.168.2. 127.
   hosts allow = 192.168.1. 127. <- 追加(内部からのみアクセスできるようにする)

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
;   load printers = yes <- 行頭に;を追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合
   load printers = no <- 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合
   disable spoolss = yes <- 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合

[homes]
   comment = Home Directories
   path = %H/samba <- 追加(/home/ユーザー名/sambaをホームディレクトリにする)
   browseable = no
   writable = yes
   各ユーザ専用のごみ箱機能追加(ここから)
   ※ファイル削除時に自動的にごみ箱へ移動されるようにする
   vfs objects = recycle <- ごみ箱の有効化
   recycle:repository = .recycle <- ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
   recycle:keeptree = no <- ごみ箱へ移動時にディレクトリ構造を維持しない
   recycle:versions = yes <- 同名のファイルがごみ箱にある場合に別名で移動
   recycle:touch = no <- ごみ箱へ移動時にタイムスタンプを更新しない
   recycle:maxsize = 0 <- ごみ箱へ移動するファイルのサイズ上限(0:無制限)
   recycle:exclude = *.tmp ~$* <- ここで指定したファイルはごみ箱へ移動せずに即削除する

[public]
   comment = Public Stuff
   path = /home/samba
   public = yes
   writable = yes
   only guest = yes

   vfs objects = recycle <- ごみ箱の有効化
   recycle:repository = .recycle <- ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
   recycle:keeptree = no <- ごみ箱へ移動時にディレクトリ構造を維持しない
   recycle:versions = yes <- 同名のファイルがごみ箱にある場合に別名で移動
   recycle:touch = no <- ごみ箱へ移動時にタイムスタンプを更新しない
   recycle:maxsize = 0 <- ごみ箱へ移動するファイルのサイズ上限(0:無制限)
   recycle:exclude = *.tmp ~$* <- ここで指定したファイルはごみ箱へ移動せずに即削除する

・samba 起動

bash
[user@centos7 ~]$ sudo systemctl start smb
[user@centos7 ~]$ sudo systemctl enable smb
[user@centos7 ~]$ sudo systemctl start nmb
[user@centos7 ~]$ sudo systemctl enable nmb

・SELinux が有効な場合ディフォルトのままでは、
 クライアント(Windows)側からアクセスできないのでSELinux の設定を変更する

bash
[user@centos7 ~]$ sudo setsebool -P allow_smbd_anon_write=on <- smbdデーモンによる書き込みを許可
[user@centos7 ~]$ sudo setsebool -P samba_enable_home_dirs=on <- ユーザー毎のホームディレクトリの共有を許可
[user@centos7 ~]$ sudo setsebool -P samba_share_nfs=on <- NFSで共有している場合設定が必要

[user@centos7 ~]$ sudo setsebool samba_export_all_rw=on <- smbdにてすべてのファイルの書き込み / 読み出しを許可する。
! セキュリティが低下するので、個別にディレクトリにラベルをつける方法
[user@centos7 ~]$ chcon -R -t public_content_rw_t /home/samba
[user@centos7 ~]$ chcon -R -t public_content_rw_t /home/centos/samba
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?