当前位置:首页 > 程序开发 > 正文内容

【从零开始搭建Yii2后台管理系统】二、实现网站的初步访问

佳航网络工作室2年前 (2024-01-12)程序开发574

上一篇文章中,已经准备好了开发所需的工具和程序,这一篇将实现网站的初步访问。


1.初始化Yii2。打开Yii2安装目录,执行初始化命令./init,此处初始化时我们选择 Development 模式,初始化后会产生以下文件:


generate backend/config/main-local.php
generate backend/config/params-local.php
generate backend/config/test-local.php
generate backend/web/index-test.php
generate backend/web/index.php
generate common/config/main-local.php
generate common/config/params-local.php
generate common/config/test-local.php
generate console/config/main-local.php
generate console/config/params-local.php
generate frontend/config/main-local.php
generate frontend/config/params-local.php
generate frontend/config/test-local.php
generate frontend/web/index-test.php
generate frontend/web/index.php
generate yii
generate yii_test
generate yii_test.bat
generate cookie validation key in backend/config/main-local.php
generate cookie validation key in frontend/config/main-local.php
  chmod 0777 backend/runtime
  chmod 0777 backend/web/assets
  chmod 0777 frontend/runtime
  chmod 0777 frontend/web/assets
  chmod 0755 yii
  chmod 0755 yii_test

Yii2 advanced版本目录结构如下:

Common                     公共文件模块(配置,类)    config/              包含共享配置    mail/                包含电子邮件的视图文件    models/              包含后端和前端中使用的模型类    tests/               包含公共类的测试   console                控制台文件模块 config/              包含控制台配置 controllers/        包含控制台控制器(命令) migrations/         包含数据库迁移 models/              包含控制台特定的模型类 runtime/             包含运行时生成的文件 runtime                缓存文件模块(linux部署需要这个模块可写) backend               后端独立应用模块    assets/              包含应用程序资产,如JavaScript和CSS JavaScript and CSS    config/              包含后端配置    controllers/        包含Web控制器类    models/              包含后端特定的模型类 classes    runtime/             包含运行时生成的文件    tests/               包含后端应用程序的测试      views/               包含Web应用程序的视图文件    web/                 包含条目脚本和web资源 frontend               前端独立应用模块 assets/              包含应用程序资产,如JavaScript和CSS   config/              包含前端配置    controllers/          包含Web控制器类    models/              包含前端特定的模型类    runtime/             包含运行时生成的文件 tests/               包含前端应用程序的测试 views/               包含Web应用程序的视图文件 web/                 包含条目脚本和web资源 widgets/         包含前端小部件 vendor/          包含依赖第三方软件包 environments/    包含基于环境的覆盖

2.修改Yii2入口文件。Yii2 advanced版本frontend、backend前后端分离,有各自的入口文件,可以配置独立的域名。这里我们将二者整合到同一个目录下,使用同一个域名进行访问,方便开发。

在Yii2根目录新建文件夹,命名为web,将 frontend/web 下所有文件(assets、css、index.php、index-test.php)复制到 根目录/web,修改index.php、index-test.php。

index.php

<?php

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../common/config/bootstrap.php');
require(__DIR__ . '/../frontend/config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
   require(__DIR__ . '/../common/config/main.php'),
   require(__DIR__ . '/../common/config/main-local.php'),
   require(__DIR__ . '/../frontend/config/main.php'),
   require(__DIR__ . '/../frontend/config/main-local.php')
);

(new yii\web\Application($config))->run();

index-test.php

<?php

// NOTE: Make sure this file is not accessible when deployed to production
if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
   die('You are not allowed to access this file.');
}

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');

require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/../common/config/bootstrap.php';
require __DIR__ . '/../frontend/config/bootstrap.php';


$config = yii\helpers\ArrayHelper::merge(
   require __DIR__ . '/../common/config/main.php',
   require __DIR__ . '/../common/config/main-local.php',
   require __DIR__ . '/../common/config/test.php',
   require __DIR__ . '/../common/config/test-local.php',
   require __DIR__ . '/../frontend/config/main.php',
   require __DIR__ . '/../frontend/config/main-local.php',
   require __DIR__ . '/../frontend/config/test.php',
   require __DIR__ . '/../frontend/config/test-local.php'
);

(new yii\web\Application($config))->run();

在 根目录/web 文件夹下新建文件夹,命名为backend,将 backend/web 下所有文件(assets、css、index.php、index-test.php)复制到 根目录/web/backend,修改index.php、index-test.php。

index.php

<?php

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require __DIR__ . '/../../vendor/autoload.php';
require __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/../../common/config/bootstrap.php';
require __DIR__ . '/../../backend/config/bootstrap.php';

$config = yii\helpers\ArrayHelper::merge(
   require __DIR__ . '/../../common/config/main.php',
   require __DIR__ . '/../../common/config/main-local.php',
   require __DIR__ . '/../../backend/config/main.php',
   require __DIR__ . '/../../backend/config/main-local.php'
);

(new yii\web\Application($config))->run();

index-test.php

<?php

// NOTE: Make sure this file is not accessible when deployed to production
if (!in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'])) {
   die('You are not allowed to access this file.');
}

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');

require __DIR__ . '/../../vendor/autoload.php';
require __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/../../common/config/bootstrap.php';
require __DIR__ . '/../../backend/config/bootstrap.php';

$config = yii\helpers\ArrayHelper::merge(
   require __DIR__ . '/../../common/config/main.php',
   require __DIR__ . '/../../common/config/main-local.php',
   require __DIR__ . '/../../common/config/test.php',
   require __DIR__ . '/../../common/config/test-local.php',
   require __DIR__ . '/../../backend/config/main.php',
   require __DIR__ . '/../../backend/config/main-local.php',
   require __DIR__ . '/../../backend/config/test.php',
   require __DIR__ . '/../../backend/config/test-local.php'
);

(new yii\web\Application($config))->run();

3.自定义本地域名,配置Apache/Nginx实现域名指向。

以本文为例,使用自定义本地域名moonadmin.dev,实现方法:

①首先修改 C:\Windows\System32\drivers\etc 目录下的hosts文件,添加moonadmin.dev的记录

127.0.0.1 moonadmin.dev

②在apache/nginx中添加域名解析,域名入口指向位置为 Yii2项目目录\web

Windows环境 Apache配置(请将D:\phpStudy\WWW\moonadmin\web 改为你自己的项目地址目录)

<VirtualHost *:80>

    DocumentRoot "D:\phpStudy\WWW\moonadmin\web"

    ServerName moonadmin.dev

    ServerAlias moonadmin.dev

  <Directory "D:\phpStudy\WWW\moonadmin\web">

      Options FollowSymLinks ExecCGI

      AllowOverride All

      Order allow,deny

      Allow from all

      Require all granted

  </Directory>

</VirtualHost>


Linux环境 Nginx配置(请将/www/wwwroot/moonadmin/web 改为你自己的项目地址目录)

server

{

    listen 80;

    server_name moonadmin.dev;

    index index.php index.html index.htm default.php default.htm default.html;

    root /www/wwwroot/moonadmin/web;


    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改

    #error_page 404 /404.html;

    #error_page 502 /502.html;

    #ERROR-PAGE-END


    #PHP-INFO-START  PHP引用配置,可以注释或修改

    include enable-php-81.conf;

    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效

    include /www/server/panel/vhost/rewrite/moonadmin.dev.conf;

    #REWRITE-END


    #禁止访问的文件或目录

    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)

    {

        return 404;

    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

    {

        expires      30d;

        error_log /dev/null;

        access_log /dev/null;

    }

    location ~ .*\.(js|css)?$

    {

        expires      12h;

        error_log /dev/null;

        access_log /dev/null;

    }

    access_log  /www/wwwlogs/moonadmin.dev.log;

    error_log  /www/wwwlogs/moonadmin.dev.error.log;

}

以上配置可通过phpstudy或宝塔面板完成,操作更加方便。


配置完成后,重启相关服务,即可实现本地自定义域名访问。

前台 http://moonadmin.dev

Snipaste_2024-01-13_14-40-25.jpg


后台 http://moonadmin.dev/backend

Snipaste_2024-01-13_14-41-13.jpg

扫描二维码推送至手机访问。

版权声明:本文由佳航网络发布,如需转载请注明出处。

本文链接:https://jiahang.work/?id=12

分享给朋友:
返回列表

没有更早的文章了...

没有最新的文章了...

“【从零开始搭建Yii2后台管理系统】二、实现网站的初步访问” 的相关文章

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。