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

最近因为工作开始接触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 nginxdeb-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    重启nginxps -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是否已经安装成功

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

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

  3. 进入/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;    # }}
  1. 进入浏览器,输入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.phpphp -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 plugincomposer 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错误日志。

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

关键字:php, yii, vagrant

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部