在Windows 7电脑上配置hhvm(CentOS7)开发环境的步骤① 基础环境准备

这是记录在执行环境(CentOS)上放置不需要的软件包的过程…
※编写代码时:通过Samba在Windows7上共享文件来操作CentOS上的文件
※执行环境(HHVM):CentOS 7(通过虚拟机仿真)
这是关于建立这个环境的记录。

获取必要的软件・CentOS 7的镜像文件
(可选择将其烧录至DVD或者使用虚拟驱动器进行挂载)
https://www.centos.org/
・Oracle VM VirtualBox(用于CentOS 7的启动环境虚拟机)
https://www.virtualbox.org/

使用VirtualBOX安装CentOS7・菜单:选择虚拟机>新建,然后输入以下内容,并点击“下一步”
名称:任意(可以自己喜欢的名称,能够理解即可)
类型:Linux
版本:Red Hat(64位)
・内存大小可以任意选择(根据个人电脑的内存容量来决定)
・硬盘选择“创建虚拟磁盘(C)”,并点击“创建”
虚拟磁盘创建向导将启动,选择文件类型(任意),然后点击“下一步”(我选择的是VDI格式)
・选择大小可以选择可变或固定,任意即可
(选择“固定”会提高性能,但也有一些限制)
・文件位置和大小通过文件夹图标选择保存位置,
根据所需创建虚拟磁盘的大小进行设置
・点击“创建”按钮即可创建虚拟磁盘。

安装nginx安装nginx

[user@centos7 ~]$ vi /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
[user@centos7 ~]$ yum -y --nogpgcheck insatall nginx

备份nginx.conf文件。

[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

编辑文件

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;
}

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;
    }
}

・确认启动

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

安装HHVM

[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访问的用户

[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

・主目录设定

[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文件。

[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

[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的配置。

[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

bannerAds