yii2实战之初见端倪PHP框架大PK安装yii2项目初始化配置服务小结

PHP框架大PK

php框架有很多种,在国内应用较多的有:Thinkphp, Yii, Laravel, Codeigniter等。关于这些框架,孰优孰劣,是一个极具争议性的话题。各方支持者总能拿出自己的理由,把自己喜欢的框架捧上天,将其他框架喷成翔。

因此,冒昧地给这些框架作排名是不明智的,很容易成为众矢之的。诚如黑格尔所说:“存在即合理”,流行的PHP框架必然有其存在的市场基础,要么是简单易学,撸起袖子直接开干,学习成本低,公司易招人;要么是高效强大,代码优雅,安全健壮,但学习门槛高,公司招人成本大。

其实,完全没必要纠结于要学习哪种框架,选框架又不是选老婆,只能选一个。我们完全可以多掌握几个框架,而且是必须要这么做,不然思路会很狭隘。

本系列文章之所以选用yii2构建一个完整的应用,基于我最近在深入了解yii2,便将自己对于yii2的理解表达出来,希望能帮助那些想了解yii2的同学。如果你对yii2感兴趣,欢迎入坑。如果你对yii2不感兴趣,更希望你能抽空了解下,给yii2一个机会,让她展现魅力,我相信,不喜欢用yii2的人,绝大部分是使用的姿势不对。好比普通人拿屠龙宝刀,只能用于切西瓜,还嫌其笨重。yii2享誉盛久,绝非浪得虚名。

那么,现在开始我们的yii2之旅吧, 少年...

加油,少年

安装yii2

现代化的php框架都支持用composer安装,yii2自然也不例外。如果你对composer不了解,到composer中文网补课。

很悲剧的是,由于众所周之的原因,国内访问国外网络很慢,虽然composer为大多数PHP项目作了中国镜像,可对于yii2的有些插件并没有作镜像。因此,在没有梯子的情况下,用composer安装yii2很大可能是失败...

composer安装失败

我尝试了好几次,都没成功...

看了composer中文社区的说明,我也很无奈啊...

yii2使用composer安装失败的原因

我也很绝望啊

于是,我放弃挣扎了,直接下载文档包

归档文件下载地址

下载yii2归档文件

项目初始化

将归档文件解压,重命名为yii, 进入目录,执行 php init

初始化yii

查看yii版本

项目建立后的第一件事,就是将项目推送到远程git仓库,相信我,使用git是你写任何代码之前最明智的选择。由于github的速度较慢,建议用国内的gitee作为个人代码仓库。

以下是我的项目仓库链接, 关于yii2的实战系列教程代码都会提交到此项目,欢迎star

配置服务

yii2有两套模板,一个是基本模板,一个是高级模板。我们下载的是高级模板,自带了前台与后台目录,因此需要设置两个域名,host配置如下:

127.0.0.1   frontend.test # 前台
127.0.0.1   backend.test # 后台

web服务器,我选用nginx,以下是nginx的配置:

server {
        charset utf-8;
        client_max_body_size 128M;

        listen 80; ## listen for ipv4
        #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

        server_name frontend.test;
        root        /path/to/yii-application/frontend/web/; # 你的项目路径
        index       index.php;

        access_log  /path/to/yii-application/log/frontend-access.log; # nginx日志存放在项目目录下
        error_log   /path/to/yii-application/log/frontend-error.log;

        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ ^/assets/.*\.php$ {
            deny all;
        }

        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass 127.0.0.1:9000;
            try_files $uri =404;
        }
    
        location ~* /\. {
            deny all;
        }
    }
     
    server {
        charset utf-8;
        client_max_body_size 128M;
    
        listen 80; ## listen for ipv4
        
        server_name backend.test;
        root        /path/to/yii-application/backend/web/; # 你的项目路径
        index       index.php;
    
        access_log  /path/to/yii-application/log/backend-access.log;
        error_log   /path/to/yii-application/log/backend-error.log;
    
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
    
        location ~ ^/assets/.*\.php$ {
            deny all;
        }

        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass 127.0.0.1:9000;
            try_files $uri =404;
        }
    
        location ~* /\. {
            deny all;
        }
    }

注意:将/path/to/yii-application/修改为你的本地项目路径; 在项目根目录新建log目录存放nginx日志, 不然会报错!

重启nginx服务 浏览器访问:http://frontend.test

前台界面

后台:http://backend.test

浏览器访问:http://backend.test

后台界面

将log目录添加到.gitignore,提交代码到远程仓库。

小结

本小节讲了如何安装配置yii2。下节将讲解yii2的控制器和视图是如何交互数据的。敬请关注...

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏翻译

Universe入门

Universe是一个用于衡量和训练AI的软件平台,适合世界上的所有游戏,网站和应用程序。本项目是一个universe开源库,它为 每个Universe环境提供...

7436
来自专栏农夫安全

Linux下Arp欺骗攻击的另类应用之屌丝泡妞记

本文为小编在新东文章整理中阅读后发现不错,如有侵权联系作者删除 EveryNote 真是个好动西,跨平台的笔记本工具。好到,平时记录一些自己的东西,都懒得在写东...

4128
来自专栏FreeBuf

最新XSS 0day漏洞来袭,影响最新版本IE浏览器(含POC)

安全研究人员近日发现了一个严重的XSS 0day漏洞,该漏洞可影响最新版本的IE浏览器,将用户暴露在被攻击和身份盗窃的危险之中。 漏洞信息 该漏洞能够影响完全修...

2086
来自专栏Android群英传

Siri 帮我开灯

1112
来自专栏张戈的专栏

重置多说配置后的问题,这是不让我从良的节奏啊(附禁用谷歌在线字体的方法)!

本想今天发文从良,金盆洗手,从此不再折腾博客,安心写文章的。结果,发现多说又不能同步服务器评论到本地了!特么真是怕什么来什么啊!想来这金盆暂时用不着了。。。 想...

4175
来自专栏Python中文社区

QQ空间爬虫最新分享,一天 400 万条数据

前言 本文为作者对其开源项目QQSpider的说明文档。主要替换了程序里一些不可用的链接,对登录时的验证码作了处理,对去重队列作了优化。并且可以非常简单地实现爬...

4947
来自专栏FreeBuf

更适合作为主系统使用的Parrot Security简介

Parrot 是一个基于Debian的专注于渗透测试和隐私保护的Linux发行版,但是更加方便日常使用,有贴心的使用体验,丰富的工具,更注重隐私保护。 The...

8865
来自专栏农夫安全

运维的福利,黑客的噩梦

CYWL_Team服务器防御工具1.0 0x01开发前言 很多小黑都希望搭建自己的博客,论坛,来记录自己在安全之路上面的点点滴滴,不过总是被一些大牛来进行恶搞,...

3908
来自专栏BeJavaGod

分布式系统的那些事儿(四) - MQ时代的通信

之前在讲RPC通信的各种好处,特别好用,但是RPC并不是万能的,也并不是适用于各种场景的,因为他是同步的;现如今很多场景下的调用都是异步的,系统A调用B后,并不...

3664
来自专栏HaHack

comment.js:一个纯JS实现的静态站点评论系统

2554

扫码关注云+社区

领取腾讯云代金券