■ PHP(Laravel框架)从入门到入土(杨定远老师)
https://www.bilibili.com/video/BV1Wt411Q72f?p=1
PHP是一种开源脚本语言,主要适用于Web开发领域.
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率高。
▲简介
https://www.bilibili.com/video/BV1Wt411Q72f?p=3(目录结构)
简洁,优雅,PHPWeb开发框架
LTS ->LongTimeSupport长期支持 eg. Beni2.2
其他PHP框架:Think PHP,CI,Yll... etc.
官网:https://laravel.com
框架公共特点:单入口,MVC思想,ORM操作数据库(Object Relations Model):AR模式
Laravel特点:所有URL访问都必须事先定义好路由规则
▲开发环境配置与要求
Laravel对运行环境严格要求:
·Php版本大于等于5.6.4---phpStudy(建议php7+)
·Php扩展(php.ini文件)Open SSL,PDO,Mbstring,Tokenizer
(httpd.conf文件)modules/mod_deflate.so,mod_rewrite.so
Notes:①php.exe的目录加入环境变量中,②php -v 版本号与实际运行的版本号一致
▲Composer工具介绍
为PHP提供的管理依赖工具(软件管家类似)
官网:https://getcomposer.org/download
安装时指定你php.exe的路径(尤其注意版本的一致性)
必须指定为所有用户安装,不能仅仅指定当前用户安装!!←经验教训
Tips:
安装过程中会修改php.ini文件,将[;extension=curl]取消注释
▲使用composer部署laravel项目
创建:composer create-project --prefer-dist laravel/laravel myproject ←eg.
composer create-project laravel/laravel=5.4.* --prefer-dist ./
遇到问题:Laravel安装后没有vendor文件夹
解决办法:https://www.cnblogs.com/php08049/p/9378149.html
▲框架的启动方式:
·方法一:#php artisan serve(这种启动框架的方式和apache启动无关,并且不启动数据库)
·方法二:搭建一个wamp或者lamp环境(本质就是一个虚拟主机的配置,虚拟主机≠虚拟机)
·Windows/Linux+Apache+MySQL+PHP
○第一步:
Apache 側:看httpd.conf文件中引入的是哪一个(任意一个都可以)
→Include conf/vhosts.conf
→#Include conf/extra/httpd-vhosts.conf
当前引入的是Include conf/vhosts.conf文件,在这里配置如下内容:
<VirtualHost *:80>
#站点管理员的邮箱,500的时候显示在页面上 Internal Server Error
#ServerAdmin webmaster@1234.com
#站点根目录 入口文件在哪里就是哪里,这里laravel是public
DocumentRoot "C:\tei_home\php\webdoc\laravel_prj_01\public"
#站点需要绑定的域名
ServerName www.1234.com
#站点的别名(其实和域名一样一样的)
ServerAlias 123.com
#针对站点的详细配置:
<Directory "C:\tei_home\php\webdoc\laravel_prj_01\public">
allow from all #允许全部访问
AllowOverride All #允许分布式配置文件
Options +indexes #+/-表示是否显示索引(我们的目录结构)
</Directory>
</VirtualHost>
○第二步:
Windows側:hosts文件(C:\Windows\System32\drivers\etc\)加入如下内容:
# Laravel
127.0.0.1 www.1234.com 1234.com
○第三步:启动测试。。。
输入www.1234.com或者1234.com显示内容和http://127.0.0.1:8000/显示一样→则OK,我测试失败NG。
测试失败?待解决!->已解决(解决方案如下:)
-
手动下载PHP7.0.x版本(废弃之前的PhpStudy)
-
手动下载MySql(只安装MySQL8.0.x的server)
-
手动下载Apache2.4
-
重新安装composer(因为之前安装时候要指定php.exe文件位置)
-
重新下载/安装Laravel项目框架
上述问题解决详细:
下载apache参考视频1“https://www.youtube.com/watch?v=TDpllMVuoeE”;←方法1
apache官网:https://httpd.apache.org/ 从官网下载的细节:
【Files for Microsoft Windows】→【Apache Lounge】→
【确保您安装了Visual Studio 2015-2019的最新14.25.28508.3 Visual C ++可再发行组件:vc_redist_x64】//没有安装的话可以从这里下载并安装。
参考视频2“如何在Windows 10上安装Apache,MySql和PHP”//https://www.youtube.com/watch?v=kuMTZowwjus
下载【VC_redist.x64.exe】
//https://aka.ms/vs/16/release/VC_redist.x64.exe
下载【Apache24】←方法2
//https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.43-win64-VS16.zip
官网下载【PHP】//https://windows.php.net/download
下载【PHP 7.2 (7.2.30)】//https://windows.php.net/downloads/releases/php-7.2.30-Win32-VC15-x64.zip
至此,下载完成了。进行下面的配置设定:
将下载好的文件解压到C:/apps/ → 分别放在 apache 和 php文件夹下(这个不是必须,只因我安装的程序都放在这里)
然后修改【httpd.conf】文件:(注意要用返斜杠【 / 】)
1. 在【httpd.conf】文件末尾加入如下内容:(参考视频中是这么讲的,但我发现最后没有生效!!知道原因的请留言告诉一声)
LoadModule php7_module "C:/app/php-7.2.30-Win32-VC15-x64/php7apache2_4.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/app/php-7.2.30-Win32-VC15-x64"
2.1 修改前: | 2.2 修改后:
<IfModule dir_module> | <IfModule dir_module>
DirectoryIndex index.html | DirectoryIndex index.php
</IfModule> | </IfModule>
3.1 修改前: | 3.2 修改后:
#ServerName www.example.com:80 | ServerName localhost
4.1 修改前: 4.2 修改后:
Define SRVROOT "c:/Apache24" | Define SRVROOT "C:/app/Apache24"
5. 在系统环境变量中添加如下信息(注意顺序不能错,因为存在依赖关系)
·① C:\app\php-7.2.30-Win32-VC15-x64
·② C:\app\Apache24
·③ C:\app\Apache24\bin
6. 在开始菜单输入【cmd】然后按【Ctrl+Shift+Enter】→ 以管理者身份打开命令行,
移动到apache安装的bin目录下执行以下命令,安装apache服务并启动该服务
· 输入【httpd -k install】命令安装apache服务
· 输入【httpd -k start】启动已安装的Apache服务
· 输入【httpd -k uninstall】命令移除apache服务
· 输入【httpd -k install -n "MyServiceName"】指定要安装的服务的名称(适用于电脑上有几个不同的Apache服务设施)
· 输入【httpd -k install -n "MyServiceName" -f "c:\folderName\my.conf"】指定服务配置文件的路径和名称
注:若不使用特殊参数(如httpd.exe -k install),服务名称为Apache2.X,配置文件为conf\httpd.conf
· 输入【httpd -k start -n "MyServiceName"】启动指定已安装的Apache服务
· 输入【httpd -k uninstall -n "MyServiceName"】命令移除特定的Apache服务
· 输入【httpd -k stop || httpd -k shutdown】停止已安装的Apache服务
· 输入【httpd -k restart】重启已安装的Apache服务(迫使服务重读配置文件,适用于修改配置文件后)
命令样式参照来源:https://blog.csdn.net/weixin_37909363/article/details/80332733
Tips:
安装Apache服务器时出现下面这句话,这里并不是错误,而是一个提示:如果这行下边出现错误则解决错误后再启动!
Errors reported here must be corrected before the service can be started.
7. 修改C:\app\php-7.2.30-Win32-VC15-x64\php.ini-development文件名→【php.ini】
在php.ini文件中【取消注释】:
· extension_dir = "ext"
· extension=pdo_mysql
· extension=mysqli
可以用【php -m】命令查看设定列表
至此,启动apache2.4,启动laravel框架,输入www.1234.com或1234.com可以看到laravel项目的默认开始页面→OK结束!
官网下载MySQL: //https://dev.mysql.com/downloads/
MySQL安装器下载: //https://dev.mysql.com/downloads/file/?id=495321
我安装的版本:version:MySQL8.0.20
我设置的密码:root password:root123
使用的服务名:Windwos Service Name:MySQL80
(如果以前安装过mysql建议,完全删除旧版本,在进行安装)
完全删除MySQL://https://www.youtube.com/watch?v=E883reY4sac
①开始→设定→アプリと機能→选中Mysql相关软件→アンインストール
②删除 C:\Program Files (x86)\MySQL
③删除 C:\ProgramData\MySQL
④删除 C:\Users\鄭\AppData\Roaming\MySQL
▲项目的目录结构
laravel_prj_01
│
├─app //存放项目的核心代码。-控制器,模型。
│ │ User.php //默认模型文件
│ │
│ ├─Console
│ │ Kernel.php
│ │
│ ├─Exceptions
│ │ Handler.php
│ │
│ ├─Http
│ │ │ Kernel.php
│ │ │
│ │ ├─Controllers //控制器,可以进行分目录管理
│ │ │ │ Controller.php //父类控制器
│ │ │ │
│ │ │ └─Auth //子类控制器
│ │ │ ForgotPasswordController.php
│ │ │ LoginController.php
│ │ │ RegisterController.php
│ │ │ ResetPasswordController.php
│ │ │
│ │ └─Middleware
│ │ EncryptCookies.php
│ │ RedirectIfAuthenticated.php
│ │ TrimStrings.php
│ │ VerifyCsrfToken.php
│ │
│ └─Providers
│ AppServiceProvider.php
│ AuthServiceProvider.php
│ BroadcastServiceProvider.php
│ EventServiceProvider.php
│ RouteServiceProvider.php
│
├─bootstrap //laravel框架启动目录(一般不用动)
│ │ app.php
│ │ autoload.php
│ │
│ └─cache
│ .gitignore
│
├─config //针对框架的配置文件
│ app.php //项目的主配置文件(频繁使用,修改)
│ auth.php //定义用户认证
│ broadcasting.php
│ cache.php
│ database.php //针对数据库的配置
│ filesystems.php //针对上传文件,文件存储
│ mail.php //邮件相关
│ queue.php
│ services.php
│ session.php
│ view.php
│
├─database //数据迁移目录
│ │ .gitignore //这个是github生成的,不用管它
│ │
│ ├─factories //也是存放和数据库相关的文件,一般我们不用
│ │ ModelFactory.php
│ │
│ ├─migrations //和数据表相关的文件 迁移文件
│ │ 2014_10_12_000000_create_users_table.php
│ │ 2014_10_12_100000_create_password_resets_table.php
│ │
│ └─seeds //中文意思@撒种 种子文件 存放数据表的数据填充文件
│ DatabaseSeeder.php
│
├─public //项目的入口文件和一些静态文件(安全的单一入口)
│ │ //因此,站点位置要指定到这里
│ │ .htaccess
│ │ favicon.ico
│ │ index.php
│ │ robots.txt
│ │ web.config
│ │
│ ├─css
│ │ app.css
│ │
│ └─js
│ app.js
│
├─resources
│ ├─assets
│ │ ├─js
│ │ │ │ app.js
│ │ │ │ bootstrap.js
│ │ │ │
│ │ │ └─components
│ │ │ Example.vue
│ │ │
│ │ └─sass
│ │ app.scss
│ │ _variables.scss
│ │
│ ├─lang //语言包
│ │ └─en
│ │ auth.php
│ │ pagination.php
│ │ passwords.php
│ │ validation.php
│ │
│ └─views //视图文件
│ welcome.blade.php
│
├─routes //路由
│ api.php
│ channels.php
│ console.php
│ web.php //路由文件,频繁使用
│
├─storage //存放日志,缓存,上传文件。注意Linux下保证写权限
│ ├─app //存用户上传的文件
│ │ │ .gitignore
│ │ │
│ │ └─public
│ │ .gitignore
│ │
│ ├─framework //存放框架运行时候的缓存文件
│ │ │ .gitignore
│ │ │
│ │ ├─cache
│ │ │ .gitignore
│ │ │
│ │ ├─sessions
│ │ │ .gitignore
│ │ │
│ │ ├─testing
│ │ │ .gitignore
│ │ │
│ │ └─views
│ │ .gitignore
│ │
│ └─logs //日志文件
│ .gitignore
│
└─tests
│ CreatesApplication.php
│ TestCase.php
│
├─Feature
│ ExampleTest.php
│
└─Unit
ExampleTest.php
Vender //第三方的代码依赖文件夹—缺少??·未解决
.env //环境配置文件 config配置的很对读取都是从这里读取的
.env.example //环境配置例子文件
artisan //脚手架文件–生成代码(自动生成)比如:生成控制器,模型文件等。
composer.json //依赖包的配置文件–声明当前项目需要的依赖,不可以删除,composer需要使用
│ .env.example
│ .gitattributes
│ .gitignore
│ artisan
│ composer.json
│ package.json
│ phpunit.xml
│ readme.md
│ server.php
│ webpack.mix.js