您的位置:首页 > 编程语言 > PHP开发

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

2015-07-27 17:14 1156 查看
 
Web开发、测试环境搭建(LAMP、SVN服务器、Laravel项目创建)
 
 
这是一篇在Ubuntu下搭建Web开发、测试环境的总结文档。主要涵盖如下主题:
  1.LAMP安装及数据盘配置;
  2.安装SVN服务器,并结合apache提供svn服务器的http方式的访问接口;
  3.Laravel的安装及项目创建;
 
目录
安装apahce、mysql、php
1
挂载数据盘
2
搭建SVN服务器
2
搭建测试开发环境
5
新建Laravel项目
6
 
 
所用操作系统为:Ubuntu 14.04 64位
文中假设机器ip为:192.168.1.1
 
 

安装apahce、mysql、php

 
# 更新安装包
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/,可以理解为对应ip为192.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>
 
#重启apahce和SVN
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目录下新建online和test这两个目录,分别用于存放生产环境、测试环境的代码。
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的原因,Composer及Composer的库都不使用原始链接,而是使用国内镜像,见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>
 
# 修改storage、vendor目录权限(很重要)
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账号,就可以实现多人协同开发。
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php svn laravel