Laravel虚拟域名绑定和数据库建立

安装Laravel

直接可以敲指令,进入到相应目录下

创建一个项目名为”api”的Laravel项目

composer create-project –prefer-dist laravel/laravel api

1.虚拟主机域名绑定和端口修改

虚拟主机域名绑定

给项目配置的虚拟主机域名是 roast.com

打开rewrite模块:打开 apache 的 conf 文件夹,找到httpd.conf配置文件,在该文件中找到LoadModule rewrite_module modules/mod_rewrite.so,去掉它前面的#(即打开注释)。

找到Include conf/extra/httpd-vhosts.conf,打开注释。表示导入(也就是开启)虚拟主机的配置,虚拟主机的配置文件是conf/extra/httpd-vhosts.conf这文件。(1,2步可能不需要自己修改,看自己的配置来)

编辑文件:C:\Windows\System32\drivers\etc\hosts,新增一行: 127.0.0.1 roast.com。

编辑文件:\wamp\bin\apache\conf\extra\httpd-vhosts.conf,新增一段

<VirtualHost *:80>
  ServerName roast.com
  ServerAlias roast.com
  DocumentRoot "${INSTALL_DIR}/www/api/public"
  <Directory "${INSTALL_DIR}/www/api/public">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

代码具体解释:

//VirtualHost里面写的是hosts文件里面配置的域名
<VirtualHost *:80>
//ServerAdmin设置了在所有返回给客户端的错误信息中包含的管理员邮件地址
    ServerAdmin roast.com
    //DocumentRoot是指你项目所在的文件夹
    DocumentRoot "D:\wamp64\www\project"
    //ServerName是指自己配置的域名地址
    ServerName roast.com
    //错误日志存放位置  
    ErrorLog "logs/roast.com-error.log"  
    CustomLog "logs/roast.com-access.log" common
    //Directory和项目的文件地址一样
    <Directory "D:\wamp64\www\project"> 
//Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可。  
//MultiViews 使用"MultiViews "搜索,即服务器执行一个隐含的文件名模式匹配,并在其结果中选择。  
//设置后,在地址栏内输入index.php 可以显示页面。在地址栏内输入index同样可以显示index.php页面  
//【备注:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。】
        Options -Indexes FollowSymLinks MultiViews  
        //设置访问目录默认页面为index.php
        DirectoryIndex index.html index.php
        //是否允许覆盖,由于要使用框架的话就要开启rewrite,设置了允许覆盖 
        AllowOverride all
        //允许所有  
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

重启Apache服务器

端口修改

在写完虚拟主机域名之后:

5. 打开Apache目录下的conf,找到httpd.conf文件搜索 Listen

>修改Listen 0.0.0.0:80 为 Listen 0.0.0.0:8081

修改端口(如我修改端口为8081)

\wamp\bin\apache\conf\extra\httpd-vhosts.conf里

将<VirtualHost *:80>改成<VirtualHost *:8081>

修改访问地址

访问roast.com:8081

2.创建数据库

修改.env文件

修改DB_DATABASE为自己的数据库,在phpmyadmin里面新建一个相同名字的数据库,wamp默认的数据为

DB_USERNAME=root

DB_PASSWORD=

创建新的数据表

创建数据表迁移

php artisan make:migration create_users_table

创建新字段

在database/migrations里面的这个操作在 Schema::ceate 方法的第二个参数的闭包函数中完成

运行迁移

php artisan migrate 

错误提示

laravel运行带有group by的sql时提示

“SQLSTATE[42000]”

解决办法:

项目/app/Providers/AppServiceProvider.php 中的 Schema::defaultStringLength 方法来配置它:

use Illuminate\Support\Facades\Schema;
 
/**
 * 引导任何应用程序服务。
 *
 * @return void
 */
public function boot()
{
    Schema::defaultStringLength(191);
}

问题解决。这事是因为laravel在5.3之后的版本默认设置strict 的值为true。