【老姐学PHP】PHP框架lavarel之环境搭建

目录

1.下载PhpStudy

2.下载lavarel

3.下载composer

4.下载SQLyog

5.编写数据接口api

6.配置https

6.1 生成服务器证书

6.2 设置openssl环境变量 

6.3 生成密钥文件

6.4 生成证书请求文件 

6.5 签署服务器证书文件

6.6 配置Apache

后续


Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的 Web App,而且每行代码都可以简洁、富于表达力。

1.下载PhpStudy

官网地址:

https://www.xp.cn/

启用Apache和mysql。

注意:项目代码一定要放在WWW目录下,也就是安装phpStudy的目录下。我的是phpStudy/WWW。

2.下载lavarel

官网地址:Laravel - The PHP Framework For Web Artisanshttps://laravel.com/

github地址:GitHub - laravel/laravel: A PHP framework for web artisans.A PHP framework for web artisans. Contribute to laravel/laravel development by creating an account on GitHub.https://github.com/laravel/laravel

将解压后的文件夹的文件放在上面提到的“D:\Microsoft\phpstudy_pro\WWW”里面,如下图所示:

重启运行Apache,在浏览器里输入localhost,会得到错误提示信息如下:

 这时需要修改网站的设置参数,如下图:

 再重启Apache服务器,在浏览器打开localhost网址,提示如下错误:

3.下载composer

官网地址:
ComposerA Dependency Manager for PHPhttps://getcomposer.org/download/

 https://getcomposer.org/Composer-Setup.exe

运行Composer-Setup.exe

运行命令行,转到laravel目录“D:\Microsoft\phpstudy_pro\WWW\laravel”,输入

curl error 28 while downloading https://repo.packagist.org/packages.json: Timeout was reached 

由于下载源下载不了,更改镜像位置,于是输入如下命令:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

composer install

于是composer一般能安装成功。WWW目录里会自动生成它的安装目录vendor,

 重启运行Apache,在浏览器里输入localhost,提示如下的错误。

 这时需要改一些设置。

查找“D:\Microsoft\phpstudy_pro\WWW\laravel”文件夹的文件.env,如果没有,则将.env.example改名为.env。

 重启运行Apache,在浏览器里输入localhost,提示如下的错误。

 php.exe的路径如下:

将php.exe的路径添加到操作系统的环境变量里面,方便后面调用php.exe。

安装 Laravel 之后下一件应该做的事就是将应用程序的密钥设置为随机字符串。如果你是通过 Composer 或 Laravel 安装器安装的 Laravel,那这个密钥已经为你通过 php artisan key:generate 命令设置好了。

 php artisan key:generate

通常来说,这个字符串长度为 32 个字符。密钥可以在 .env 环境文件中设置。前提是你要将 .env.example 文件重命名为 .env。如果应用程序密钥没有被设置,就不能确保你的用户会话和其他加密数据的安全!

 重启运行Apache,在浏览器里输入localhost,laravel框架终于部署成功。

4.下载SQLyog

官网地址:

https://github.com/webyog/sqlyog-community

https://www.webyog.com/community

SQLyog是RDBMS MySQL的GUI工具。SQLyog是免费提供的,但是具有封闭的源代码,直到v3.0成为完全商业软件为止。如今,SQLyog既作为免费软件发行,也作为若干付费专有版本发行。免费软件版本 在GitHub上称为Community Edition 。付费版本以专业版,企业版和终极版出售。

下载地址:

https://github.com/webyog/sqlyog-community/wiki/Downloadshttps://github.com/webyog/sqlyog-community/wiki/Downloads

5.编写数据接口api

写API接口,与传统的渲染前端模板页面有什么区别?少了视图,只需要准备好数据, 并按照规则格式化,返回就可以了。

打开文件“.env”,进行修改,以方便和数据库进行连接。

然后在里面修改一些配置。比如DB_CONNECTION=mysql;DB_HOST=localhost;DB_PORT=3306;即连接的数据库类型、域名和端口号,这个一般都是默认的。DB_DATABASE=test;这个是链接的数据库名称。DB_USERNAME=root
DB_PASSWORD=root。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dianzi_ls
DB_USERNAME=root
DB_PASSWORD=123456

在app目录下新建一个Question.php文件,用于访问px_question数据表。

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;

class Question extends Model{
    protected $table = 'px_question';
    protected $primaryKey = 'id';
 
    public function getDateFormat()
    {
        return time();
    }
}

 在app/Http/Controllers目录下新建一个QuestionController.php文件:

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\MLCommonUtil;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Question;

class QuestionController extends Controller{
    public function getQuestion(Request $request){
        $response = array('status'=>'0','msg'=>'failed','data'=>'');
        $data = array();
        // 获取请求参数值
        $questionId = $request->input("questionId");
        // 根据参数值去向表里查找对应的数据
        $question = Question::find($questionId);
        // 查找完毕之后,把查找到的数据赋值给response下的data字段
        $response['data'] = $question;
        $response['status'] = '2';
        $response['msg'] = 'success';
        return json_encode($response);
    }
}

 最后是通过路由进行网络请求的,在routes目录下的web.php文件里写下

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\QuestionController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

//Route::any('getQuestion', "QuestionController@getQuestion");
Route::get('getQuestion',[QuestionController::class,'getQuestion']);

 最后一个步骤就是测试自己写的接口是否可用。

http://localhost/getQuestion?questionId=72

 可能报错如下:

 public目录下新建一个.htaccess文件

文件内容修改如下:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
 
    RewriteEngine On
 
    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]
 
    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

 再访问网址:http://localhost/getQuestion?questionId=72

6.配置https

  • HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 默认工作在 TCP 协议 80 端口,用户访问网站 http:// 打头的都是标准 HTTP 服务。
  • HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 默认工作在 TCP 协议443端口。

6.1 生成服务器证书

命令行进入phpstudy安装目录里面的Apache的bin目录:

D:\Microsoft\phpstudy_pro\Extensions\Apache2.4.39\bin

6.2 设置openssl环境变量 

set OPENSSL_CONF=../conf/openssl.cnf

6.3 生成密钥文件

openssl genrsa 1024 >ssl.key

6.4 生成证书请求文件 

(1)执行生成文件命令

openssl req -new -key ssl.key > ssl.csr

(2)根据提示填写各项参数

Country Name (2 letter code) [AU]:CN ISO国家代码
State or Province Name (full name) [Some-State]:SD所在省份
Locality Name (eg, city) []:YT所在城市
Organization Name (eg, company):test1公司名称
Organizational Unit Name (eg, section) []:test2组织名称
Common Name (eg, YOUR name) []:mywww.com申请证书的域名
Email Address []:[email protected] 管理员邮箱
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456

 注意:company name与上面的Common Name一定要保持一致。

6.5 签署服务器证书文件

openssl req -x509 -days 5000 -key ssl.key -in ssl.csr > ssl.crt

  把前几步生成的密钥ssl.key和证书ssl.csr请求生成证书 ssl.crt,-days参数指明证书有效期,单位为天。

6.6 配置Apache

将生成的三个文件移动到ssl.crt,ssl.csr,ssl.key移动到Apache\conf目录下面。

(1)修改httpd.conf

取消下面两行的注释#

Include conf/extra/httpd-ssl.conf
LoadModule ssl_module modules/mod_ssl.so

(2)修改httpd-ssl.conf

DocumentRoot "D:/Microsoft/phpstudy_pro/WWW3/blog/public"
SSLCertificateFile "${SRVROOT}/conf/ssl.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl.key"

重启浏览器测试如下:

终于成功了!

相关文件和代码见如下地址:

https://download.csdn.net/download/hhy321/24837657

后续

如果你觉得该方法或代码有一点点用处,可以给作者点个赞;╮( ̄▽ ̄)╭
如果你感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进。o_O???
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ ` )っ!!!

猜你喜欢

转载自blog.csdn.net/hhy321/article/details/120479766
今日推荐