Web开发、测试环境搭建(LAMP、SVN服务器、Laravel项目创建)

来源:互联网 发布:怎样注册中文.手机域名 编辑:程序博客网 时间:2024/06/11 02:26

 

Web开发、测试环境搭建(LAMPSVN服务器、Laravel项目创建)

 

 

这是一篇在Ubuntu下搭建Web开发、测试环境的总结文档。主要涵盖如下主题:

  1.LAMP安装及数据盘配置;

  2.安装SVN服务器,并结合apache提供svn服务器的http方式的访问接口;

  3.Laravel的安装及项目创建;

 

目录

安装apahcemysqlphp1

挂载数据盘2

搭建SVN服务器2

搭建测试开发环境5

新建Laravel项目6

 

 

所用操作系统为:Ubuntu 14.04 64

文中假设机器ip为:192.168.1.1

 

 

安装apahcemysqlphp

 

更新安装包

apt-get update

apt-get upgrade

 

安装apache

apt-get install apache2

# apache2安装在/etc/apache2,命令使用为/etc/init.d/apache2 start/stop/restart

安装完后apache的根目录在/var/www

 

安装mysql

apt-get install mysql-server

 

安装php5

apt-get install php5

 

 

挂载数据盘

先建立/data目录

查看未挂载的数据盘(在没有分区和格式化数据盘之前,使用 “df h”命令,是无法看到数据盘的)

fdisk -l

 

对数据盘进行分区

fdisk -S 56 /dev/xvdb

根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成

 

格式化新分区

mkfs.ext4 /dev/xvdb1

 

添加分区信息,开机自动挂载/dev/xvdb1/data

echo  '/dev/xvdb1  /data ext4  barrier=0  0  0' >> /etc/fstab

 

挂载新分区

mount -a

 

(然后就可以用df -h来查看了)

 

 

搭建SVN服务器

# SVN服务器

apt-get install subversion

sudo apt-get install libapache2-svn (因为想支持用http方式对SVN服务器进行访问,所以需要安装这个扩展)

 

开启svn服务器

svnserve -d

 

查看当前是否已经开启SVN服务,命令执行后应该有两行内容

ps aux | grep svnserve

 

建立仓库

svnadmin create /data/borogadi

(对应的SVN链接为:svn://192.168.1.1/borogadi/,可以理解为对应ip192.168.1.1这台机器上的名为borogadi的项目,注意这里未使用到data目录,在配置SVN服务器的过程中,仓库目录和最终给出的项目链接需要格外留意)

 

修改配置文件

vi /data/borogadi/conf/svnserve.conf

anon-access=read改为none,并去掉注释

auth_access=write

password-db = passwd  

authz-db = authz 

的注释去掉

还有[general]的注释也要去掉(假如有注释的话)

 

修改帐户文件

vi  /data/borogadi/conf/passwd

添加一个明文形式的账户名和密码信息:

user1 = 123456

 

修改授权文件

vi /data/borogadi/conf/authz

输入(其中borogadi为之前新建的版本库名称,rw代表赋予读写权限):

[borogadi:/]

user1 = rw

 

启动SVN服务

sudo svnserve -d -r /data

上一步命令如果失败,提示地址已被占用,则执行ps -aux | grep svn,然后kill掉得到的pid

 

至此就可以使用svn://协议来check代码了。

客户端连接

svn co svn://192.168.1.1/borogadi

 

 

接下来结合apache来实现SVN服务器的http访问,以及权限管理。这一步是很重要的,实现了http方式的访问后,当网络环境不可直达时(比如公司内网),可以通过http代理来访问到项目。

当前apache的访问用户名和组为www-data:www-data

 

 

修改目录执行权限和归属,注意以下都是对/data目录进行的操作,而不是/data/borogadi目录

sudo chown -R root:subversion /data

sudo chown -R www-data:www-data /data

sudo chmod -R g+rws /data

 

创建用户(注意,第一次创建需要使用-c参数,以后不需要,否则会覆盖)

# svn://方式和http://方式的权限验证是分开的,这里是新建http访问方式的用户

htpasswd -c /data/borogadi/conf/pwdfile user2

 

添加dav模块,这里文件名不重要,关键是要放在mods-enabled目录下(也可以直接修改apahce配置文件,但是不够好)

vi /etc/apache2/mods-enabled/dav_svn.conf

输入如下内容(注意路径):

<Location /svn>

DAV svn

SVNPath /data

AuthType Basic

AuthName "SVN auth"

AuthUserFile /data/borogadi/conf/pwdfile

#<LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

#</LimitExcept>

</Location>

 

#重启apahceSVN

sudo /etc/init.d/apache2 restart

sudo svnserve -d -r /data

 

至此就可以使用http方式进行check操作了

http://192.168.1.1/svn/

注意这里路径为svn,是因为上面在apache中指定的<Location /svn>

 

接下来指定用户访问策略

方式是定义用户组,开放根目录所有用户权限,然后子目录限制权限

先描述:

公分为2个组,一个开发者组,一个观察者组

开发者组拥有整个项目的读写权限,但是观察者组只拥有/data/borogadi/wendang这个目录的只读权限

先创建用户:(g_dev为开发组,有一个名为wujian的用户,g_viewer为观察者组,有一个名为viewer的用户)

 

vi /data/borogadi/conf/authz

[groups]

g_dev = wujian

g_viewer = viewer

 

[borogadi:/] 

@g_dev = rw

 

[borogadi:/wendang]

@g_viewer = r

 

sudo /etc/init.d/apache2 restart

sudo svnserve -d -r /data

 

项目初始化

Check项目到本地后,添加如下几个目录并提交:

  /borogadi

/trunk  # 主开发目录

/branchs  # 分支开发目录

/tags  # 旧版本存档

/wendang  # 项目文档

 

 

搭建测试开发环境

策略:

1)在测试环境进行开发,验证

2)测试环境验证通过后,commit代码到trunk

3)生产环境更新trunk的代码

测试环境需要独立的虚拟机配置和数据库。

 

192.168.1.1  test.borogadi.com  # 测试环境

192.168.1.1  www.borogadi.com # 正式环境

 

目录规划

/data目录下新建onlinetest这两个目录,分别用于存放生产环境、测试环境的代码。

cd /data/test

svn checkout http://192.168.1.1/svn/trunk/borogadi --username wujian --password xxxxxx

最终测试环境根目录:/data/test/borogadi

 

配置虚拟主机

cd /var/www

ln -s /data/test test

这样,目录指向/var/www/test,但实际位置是/data/test

同时,新建/data/log目录,用于存放log

 

vi /etc/apache2/sites-enabled/test.conf

输入以下虚拟机配置:

<VirtualHost *:80>

    DocumentRoot "/var/www/test"

    ServerName test.borogadi.com

    ErrorLog "/data/log/test.log"

    CustomLog "/data/log/custom.log" common

</VirtualHost>

重启apache

sudo /etc/init.d/apache2 restart

 

本地绑定host

192.168.1.1  test.borogadi.com  # 测试环境

vi /etc/hosts

/data/test目录上传一个测试文件:index.html

 

然后浏览器访问:test.borogadi.com

 

新建Laravel项目

开启apache重写模块

sudo a2enmod rewrite

 

(因为GFW的原因,ComposerComposer的库都不使用原始链接,而是使用国内镜像,见http://packagist.cn/

全局安装composer

curl -sS http://packagist.cn/composer/installer | php

mv composer.phar /usr/local/bin/composer

 

使用Composer安装Laravel

vi  ~/.composer/composer.json

输入:

{

    "require": {

        "laravel/installer": "~1.1"

    },

    "repositories": [

        {

            "packagist": false

        },

        {

            "type": "composer",

            "url": "http://packagist.cn"

        }

    ]

}

cd  ~/.composer

composer install

 

新建Laravel项目(在test目录下新建名为borogadi的项目)

cd /data/test/

~/.composer/vendor/bin/laravel new borogadi

 

修改虚拟机配置(网站未通过备案,先用ip访问):

vi /etc/apache2/sites-enabled/000-default.conf

输入:

<VirtualHost *:80>

    DocumentRoot "/var/www/test/borogadi/public"

    SetEnv APPLICATION_ENV development

    <Directory "/var/www/test/borogadi/public">

        Options Indexes MultiViews FollowSymLinks

        AllowOverride All

        Order allow,deny

        Allow from all

    </Directory>

    ErrorLog "/data/log/test.log"

    CustomLog "/data/log/custom.log" common

</VirtualHost>

 

修改storagevendor目录权限(很重要)

sudo chmod -R 777  /data/test/borogadi/storage

sudo chmod -R 777  /data/test/borogadi/vendor

 

sudo /etc/init.d/apache2 restart

 

访问:http://192.168.1.1/

 

提交新项目文件到trunk

cd /data/test/borogadi

svn add *

svn ci -m "description document" * --username wujian --password xxxxxx

 

#

备案通过后,搭建测试环境:

修改虚拟机配置:

vi /etc/apache2/sites-enabled/test.conf

<VirtualHost *:80>

    DocumentRoot "/var/www/test/borogadi/public"

ServerName test.borogadi.com

<Directory "/var/www/test/borogadi/public">

Options Indexes MultiViews FollowSymLinks

 AllowOverride All 

Order allow,deny

    Allow from all

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule !\.(css|js|jpg|gif|png|swf|flv)$ index.php

</Directory>

    ErrorLog "/data/log/test.log"

    CustomLog "/data/log/custom.log" common

</VirtualHost>

 

 

至此,完整的Laravel Web项目开发、测试环境搭建完毕,添加新的SVN账号,就可以实现多人协同开发。

 

 

0 0
原创粉丝点击