资讯专栏INFORMATION COLUMN

Yii系列(1)打造虚拟开发环境及Yii的安装配置

shleyZ / 3555人阅读

摘要:我下载到了本机上与打通的文件夹中,再进入,执行以下命令用代号取代的发行版本代号,本系统是所以代号为通过执行,在文件尾部中添加,以下代码保存,相关编辑操作请谷歌。安装的前提是,已经安装成功。

最近因为工作开始接触Yii,之前开发使用laravel习惯用vagrant。所以,这次尝试着打造一个box,专门用来写Yii框架的项目。

在这次打造box,收获了很多:
1)更加熟悉了nginx的配置;
2)学会了看nginx的错误日志;
3)提高了解决问题的能力等等。
希望大家也能通过,玩玩如何打造一个自己的box学到很多东西。

我的box配置是:
ubuntu+PHP7.1.0alpha2+ginx/1.10.1+MySQL5.5.49+Composer1.1.3.

在开始之前,我的电脑已经装好了Vagrant和Virtual Box。windows安装这两个软件时,请记住通过BIOS来开启系统的硬件虚拟化(VT-x)。
这里再推荐一个Mac下用的终端iTerm2,超好用。

添加box

我需要一个ubuntu系统,所以我通过vagrant添加目前已经有只ubuntu系统的空box。

1、参考资料:官方文档添加box

2、添加box:vagrant box add puphpet/ubuntu1404-x64

3、创建一个文件夹,用来初始化box:mkdir complex

4、进入complex文件夹:cd complex

5、查看目前有几个box:vagrant box list

dev                    (virtualbox, 0)
laravel/homestead      (virtualbox, 0.4.4)
puphpet/ubuntu1404-x64 (virtualbox, 20151201)

6、初始化box:vagrant init puphpet/ubuntu1404-x64

7、你会发现当前complex目录下,有一个文件名为Vagrantfile,这个文件为puphpet/ubuntu1404-x64这个盒子的初始化文件

8、Vagrantfile文件配置,文件修改两个地方就好:

设置config.vm.network这个参数,IP可以随意配;

config.vm.synced_folder中,第一个参数是我mac下的工作目录,第二个参数是我box中的工作目录。通过这个设置,将本机和box中的文件打通,两个文件夹内容将会相同,如果有一个文件夹内容有什么变化,另一个文件夹也会有相同的变化。大家根据自己的目录配置即可,最好采用绝对路径

  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.22.55"
  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  config.vm.synced_folder "~/PhpstormProjects", "/www"

9、执行vagrant up,即可开启box。

10、执行vagrant ssh,即可进入box中。

11、如过修改了Vagrantfile,请记住重启boxvagrant reload

安装nginx

1、参考资料:官方文档nginx安装
2、安装nginx前需要添加nginx_signing.key,下载地址,官方文档里也有下载地址。我下载到了本机上与box打通的文件夹中,再进入box,执行以下命令:sudo apt-key add nginx_signing.key
3、用代号取代ubuntu的发行版本代号,本系统是ubuntu1404-x64,所以代号为trusty;通过执行sudo vi /etc/apt/sources.list,在/etc/apt/sources.list文件尾部中添加,以下代码:

deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx

wq保存,相关vi编辑操作请谷歌。

4、安装nginx,执行以下命令
apt-get update
apt-get install nginx

5、进入/etc/nginx文件夹中,修改nginx.conf文件,将 sendfile on;修改为sendfile off;因为 VirtualBox关于sendfile有一个bug,这个bug可能会导致文件损坏或者不更新文件,所以设置为off

6、nginx常用命令:

sudo service nginx restart    重启nginx
ps -ax | grep nginx           查看nginx所有开启的进程
安装PHP7

1、参考文章,其实这篇文章已经说了很详细了,下面再简单的重复下

2、执行以下命令,可以根据apt-cache search php7的执行结果选择你们想要安装的版本和模块即可:

$ sudo apt-get install -y language-pack-en-base
$ sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ apt-cache search php7
$ sudo apt-get install php7.1 php7.1-cli php7.1-fpm php7.1-gd php7.1-json php7.1-mysql php7.1-readline

3、测试php7是否已经安装成功

添加域名,在本机 /etc/hosts文件中添加192.168.22.55 test.yuan.com

在box中,进入/www目录,执行touch index.php创建index.php文件,并在文件中添加以下内容

进入/etc/nginx/conf.d文件夹,执行sudo cp default.conf test.yuan.com.conf,并修改内容为

server {
    listen       80;
    server_name  test.yuan.com;
    index  index.html index.htm index.php default.php;
    root /www;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
      try_files $uri $uri/ /index.php?$query_string;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
        fastcgi_pass   unix:/run/php/php7.1-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache"s document root
    # concurs with nginx"s one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}

进入浏览器,输入test.yuan.com即可

4、如果想更加了解nginx相关配置参数信息,可参阅:nginx基本配置与参数说明

注意:如果不成功,可能是nginx相关配置问题,请查看nginx错误日志,根据错误日志返回的信息谷歌。nginx错误日志文件一般是var/log/nginx中的error.log.也可通过nginx.conf查到错误日志文件存放目录.
安装MySQL

1、参考资料:官方文档

2、安装MySQL:sudo apt-get install mysql-server ,安装过程中会要求对root用户设置密码,输入你想要的密码即可。

3、MySQL常用命令:

mysql -u username -p  mysql登陆
exit  退出
sudo service mysql status   mysql运行状态
sudo service mysql stop     停止运行mysql 
sudo service mysql start    开启mysql
 

4、在本机,我使用Sequel Pro(mysql图形话界面管理工具)。连接box中mysql需要通过ssh连接,ssh key通过执行vagrant ssh-config命令即可知道。连接配置如图:

安装Composer

1、参考资料:官方文档Composer:Getting Started

2、执行以下命令即可获得最新版本的composer

php -r "copy("https://getcomposer.org/installer", "composer-setup.php");"
php -r "if (hash_file("SHA384", "composer-setup.php") === "e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae") { echo "Installer verified"; } else { echo "Installer corrupt"; unlink("composer-setup.php"); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink("composer-setup.php");"

3、全局安装,执行以下命令即可:
mv composer.phar /usr/local/bin/composer
composer

安装配置Yii1.1 安装配置Yii2

在安装时,按照官方文档提供的命令执行时,出了些错误。以下相关命令和配置都是在经过本机测试成功之后的结果。安装Yii2的前提是,已经安装成功Composer。

1、参考资料:Yii 2.0 权威指南 安装 Yii

2、通过执行composer self-update确保Composer已经为最新版本。

3、执行以下命令即可安装Yii2

composer global require fxp/composer-asset-plugin --no-plugins
#第一条命令,安装 Composer asset plugin

composer create-project --prefer-dist yiisoft/yii2-app-basic yii
#将Yii安装在名为yii的安装目录,你也可以其他目录名。

4、在本机etc/hosts 配置域名192.168.22.55 yii.yuan.com

5、nginx配置,在box中/etc/nginx/conf.d目录中创建yii.yuan.com.conf,其内容如下:

server {
    listen       80;
    server_name  yii.yuan.com;
    index  index.php;
    root /www/yii/web;
    charset utf-8;
    client_max_body_size 128M;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
      try_files $uri $uri/ /index.php?$query_string;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ .php$ {
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass   unix:/run/php/php7.1-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    # deny access to .htaccess files, if Apache"s document root
    # concurs with nginx"s one
    #
    location ~ /.(ht|svn|git) {
        deny  all;
    }
}

6、请在本机和box中都执行此命令:sudo chmod -R 777 yii赋予yii文件夹最高权限,以防在访问此项目时,出现权限错误。

7、如果出现502错误或者not input file specified错误一定跟nginx配置有关,请仔细看nginx错误日志。

注意:写的有点累了,有些还有一小节待续。这些是在本宝宝安装完之后的回忆,其实遇到挺多问题,这里可能并没有写到,因为我忘了,嘿嘿,欢迎大家在评论里交流。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21755.html

相关文章

  • YII2快速学习笔记

    摘要:高性能始终是的首要目标之一。版是上代的老版本,现在处于维护状态。版是一个完全重写的版本,采用了最新的技术和协议,包括依赖包管理器代码规范命名空间特质等等。所以,我们学习版本。启用本镜像服务系统全局配置即将配置信息添加到的全局配置文件中。 工作中需要用到YII框架,于是乎,系统的学习下这套框架,详细教程请看考该站完整系列:YII2教程 一、YII简介 1、什么是YII Yii 是一个高性...

    kbyyd24 评论0 收藏0
  • Yii2 起步 之创建项目

    摘要:目前还处于版本,相关文档也一直在变化,如有疏漏,还请及时反馈安装两种安装方式,或者下载包使用安装初始化项目推荐下,如果本机还没有安装,我的做法是是直接下载包假定你的工作目录是,将下载的放在下命令行进入执行如下命令,初始化一个基于的应用 yii2目前还处于beta版本,相关文档也一直在变化,如有疏漏,还请及时反馈 Yii2安装 两种安装方式,composer或者下载zip包 ...

    wuyangnju 评论0 收藏0
  • Yii2系列教程四:实现用户注册,验证,登录

    摘要:开始使用邮箱配置好了之后,我们就可以开始使用了,首先我们来修改一下我们的导航栏,因为我们想实现的就是我们常常看到的在导航栏的右侧的注册和登录按钮。 原文来自: https://jellybool.com/post/programming-with-yii2-integrating-user-regi... 本来打算昨晚写的这篇教程,但是忙着约会去了,所以现在补上吧。 上一篇...

    boredream 评论0 收藏0
  • Yii2系列教程六:集成编辑器

    摘要:而这些问题目前的最好解决方案就是集成一个编辑器,鉴于大家这里不是指程序员都是喜欢所见即所得,所以,这里我主要是演示怎么集成所见即所得的富文本编辑器。 原文来自: https://jellybool.com/post/programming-with-yii2-rich-text-input-with-redactor 首先,很惭愧的是,前几天都出去外面玩了,没有及时更新教程,...

    xiaochao 评论0 收藏0
  • Yii-Casbin:在 Yii 里使用 Casbin,支持 ACL、RBAC多种模型权限管理框架

    摘要:是一个用语言打造的轻量级开源访问控制框架,目前在开源。采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制基于属性的访问控制等。 PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架( https://github.com/php-casbin... ),目前在 GitHub 开源。PHP-Casbin 采用了元模型的设计思想,支持多种经典的访问...

    shusen 评论0 收藏0

发表评论

0条评论

shleyZ

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<