Laravel框架学习笔记——Laravel环境配置及安装(Ubuntu20.04为例)

news2024/10/2 8:39:48

目录

  • 引言
  • 1、安装Nginx
  • 2、安装PHP
  • 3、安装Composer
  • 4、搭建Laravel框架项目
  • 5、修改Nginx映射
  • 6、安装MySQL

引言

好久没写博客了,因为个人需要, 所以要涉及到Laravel框架的学习,所以会出一系列的关于PHP的Laravel框架学习笔记,希望能够帮助到有需要的人。本系列所有的内容,都以官网中文文档为准进行学习,我使用的系统是Ubuntu20的虚拟系统。

1、安装Nginx

因为我个人是喜欢Nginx作为代理服务器,所以选择Nginx进行安装。如果要选用Apache的可以自行安装,先安装代理再执行其他的步骤。

sudo apt-get update #更新应用源
sudo apt-get upgrade #对系统安装程序进行更新
sudo apt-get nginx #安装nginx

nginx的版本不用追求高,选择稳定版本即可。

2、安装PHP

我服务器使用Nginx,所以安装php-fpm,但是因为框架版本选择的是Laravel9,Laravel9的先决前提是PHP版本>=8.0,如果你是阿里云Ubuntu 20 LTS,就不用升级服务器了,不然需要升级一下才有PHP8;

sudo apt install software-properties-common 
sudo apt-add-repository ppa:ondrej/php # 添加php源地址
sudo apt-get update

然后进行php的安装,以及所需的插件安装,如下

sudo apt-get install php8.0-fpm php8.0-mysql php8.0-gd php8.0-mbstring php8.0-bcmath php8.0-xml php8.0-curl php8.0-redis php8.0-opcache php8.0-odbc

在这里我遇到了一个问题

Cannot initiate the connection to ppa.launchpad.net:80 (2620:2d:4000:1::3e). - connect (101: Network is unreachable) [IP: 185.125.190.52 80]
Fetched 4,965 kB in 3min 27s (24.0 kB/s)

在这里插入图片描述
这是用使用sudo apt-get update也没用,也是超时
在这里插入图片描述
可以通过增加超时和重试来使其工作:

sudo apt-get update --option Acquire::Retries=100 --option Acquire::http::Timeout="120"

然后再执行安装命令就可以安装成功了php -v检查是否安装成功
在这里插入图片描述

设置开机自启以及查看状态

systemctl status php8.0-fpm
systemctl enable php8.0-fpm

3、安装Composer

Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
这里我们安装composer就完全参照官方文档
安装前一定要先安装好php
下载安装脚本 - composer-setup.php - 到当前目录。

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

执行安装过程。

php composer-setup.php

在这里插入图片描述
上述所示就是安装成功了

删除安装脚本。

php -r "unlink('composer-setup.php');"

接下来直接进行全局安装,这样使得在命令窗口中可以直接使用composer

sudo mv composer.phar /usr/local/bin/composer

上述步骤执行完毕后,键入composer -V查看是否已经安装配置成功。

yby@ubuntu:~$ composer -V
Composer version 2.5.4 2023-02-15 13:10:06

最后,因为composer的源默认是国外的,使用国外源安装插件都可能比较慢,参照官方文档,可以换源,但是我换完源后下面安装Laravel安装器失败了,这个,大家慎重吧。如果大家换成国内源安装东西失败了,可以换回来,或者换成阿里云镜像源(真好用,推荐阿里云)。步骤都在下面了。

composer config -g repo.packagist composer https://packagist.phpcomposer.com #国内源
composer config -g repo.packagist composer https://packagist.org #官方国外源
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ #阿里云镜像

至此composer安装完成,最后不要忘了经常执行 composer selfupdate 以保持 Composer 一直是最新版本。

4、搭建Laravel框架项目

参照官网给出的文档,我们可以直接使用composer进行搭建,但是每次都要输入一长串指令有些麻烦,所以我们可以先安装Laravel安装器,然后通过Laravel安装器安装。

通过Composer安装laravel安装器

composer global require laravel/installer

在这里插入图片描述
安装成功。
但是呢,执行laravel -v时提示laravel not found
看了一下官方文档
在这里插入图片描述
晕死,还要自己设置一下环境变量,执行下述命令

export PATH="$HOME/.config/composer/vendor/bin:$PATH";

然后再执行laravel -v可以看到如下提示则成功
在这里插入图片描述
OK。接下来进入/var/www/目录下,该目录是安装nginx时自动创建的目录,在该目录下创建新的Laravel项目。

laravel new example-app

产生了如下问题,权限不够,于是该给/var/www/文件夹更改权限
在这里插入图片描述

sudo usermod -aG www-data $USER #创建一个www-data用户组,将自己加入用户组中
sudo chown -R www-data:www-data /var/www #给文件夹用户组权限
sudo chown -R $USER:$USER /var/www #给自己操作文件夹的权限

这两句执行完后,再执行下载命令即可laravel new example-app,等待安装即可
在这里插入图片描述
然后进入example-app,测试执行即可

cd example-app
php artisan serve

在这里插入图片描述浏览器打开8000端口就行
在这里插入图片描述
这样一个Laravel环境就搭建完成了,可以安装mysql数据库等,进行开发。

5、修改Nginx映射

这里配置映射为了让前端页面能够访问到接口,或者让别人能够访问网页,需要修改Nginx配置,我是Ubuntu20.04的系统,所以Nginx的配置位置在/etc/nginx/sites-available/default,键入命令打开配置文件
没有vim的可以先安装vim,这是一个文件编辑软件

sudo apt-get install vim #安装vim
vim /etc/nginx/sites-available/default #编辑配置文件

键入i,然后删除文件内所有内容,复制官网的配置即可。
在这里插入图片描述
直接整个复制到刚才打开的文件里
然后修改 server_name后的内容改成下划线,这样不管是IP还是域名都能访问。root后改成刚才我们在/var/www文件夹下新安装的laravel项目的public位置,public文件内存的就是项目编译后产生的php文件。
在这里插入图片描述
按下Esc键,输入:wq保存退出,改了配置后重启nginx服务

service nginx restart

然后进入example-app目录执行上面的启动命令,浏览去输入localhost查看,但是我这里,如果输入:8000也就是laravel默认运行端口,则可以正常打开,但是我用localhost,即80端口映射访问时就不行,报错权限问题如下
在这里插入图片描述
发现这里还需要给刚生成的example-app项目文件设置权限,下面操作都用一下,问题不大

sudo chown -R www-data:www-data /var/www/example-app/
sudo chmod -R 775 /var/www/example-app/storage/
sudo chmod -R 775 /var/www/example-app/bootstrap/cache

然后运行,我们在localhost就可以正常打开了
在这里插入图片描述

6、安装MySQL

因为我们装的是Laravel9,所以按照官方文档,需要安装的MySQL版本需要在5.7以上
在这里插入图片描述
直接安装8.0好了,因为MySQL在Ubuntu20.04操作系统上不再发布MySQL5.7版本的,换源下载麻烦,直接安装8.0版本

sudo apt update
sudo apt-get install mysql-server

安装完后键入mysql -V查看版本,出现版本号就是安装成功
在这里插入图片描述
狗屎啊,真的是依托答辩,居然不提示我设置密码,据说是默认密码123456,然是也进不去,就必须要前面键入sudo命令才能进入,如下所示
在这里插入图片描述
在这里插入图片描述
简直依托答辩,治理直接超级管理员权限进去,键入命令,设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';

然后ctrl+z推出,重新试一下
在这里插入图片描述
哎嗨,进来了,搞定搞定,设置一下开机自启就可以了,环境差不多结束。

systemctl enable mysql

搞定,下期再见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【平台数仓设计——2023】

平台数仓设计——2023前言一、选取大数据平台1、CDH大数据平台2、HDP大数据平台3、CDP大数据平台4、各种云数据中台二、选取调度平台1、DolphinScheduler(海豚调度)2、AzKaban3、Oozie4、Airflow5、corntab命令三、选取数仓设计方案1、离线数仓2、实时数仓3、离线实时一体化数仓…

尚医通 (二十二)预约下单

目录一、预约下单功能(一)1、需求2、搭建订单模块3、封装Feign调用获取就诊人接口4、封装Feign调用获取排班下单信息接口二、预约下单功能(二)1、实现生成订单接口三、预约下单功能(三)四、预约下单功能(四)1、生成订单后处理逻辑-封装短信接口2、生成订单后处理逻辑-更新排班数…

cracklib与libpwquality 评估密码的安全性

一、cracklib 检测密码强弱linux中采用pam pam_cracklib module来实现对密码强度的检测,可以通过配置让linux系统自动检测用户的密码是否为弱密码。yuminstall cracklib # centos apt-get install libcrack2 # ubuntu # 如果需要依赖此库做开发的话需要安装这个 y…

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源

墨者——内部文件上传系统漏洞分析溯源 内部文件上传系统漏洞分析溯源 1.选择合适的文件上传 2.可以看到为*.asp文件 3.可以推测出此站点为IIS 4.上传shell.asp试试 5.上传报错,将其改名为shell.asp.txt上传,发现上传成功 6.有个问题就是服务器将我们所…

Node 10.0.8.6:9003 is unknown to cluster

解决方案解决方案一解决方案一 ① 概念介绍 公网ip:就是任意两台连接了互联网的电脑可以互相ping ip,能够通的ip 内网ip:只是在内网中使用无法与外网连接的ip ②问题背景 在腾讯云上搭建的一个redis集群,集群启动后 可以看到启动节点…

腾讯企微、泛微、契约锁举办的这场大会,超1000人共商数字化转型

全程数字化运营平台体验大会 2月23日下午,腾讯企业微信、泛微、契约锁在上海联合举办了全程数字化运营平台体验大会,旨在推动政企客户的数字化转型。 活动以“智能、协同、高效”为主题,吸引了上千位政府及企事单位的信息化负责人参与。 在…

Tapdata 和 Databend 数仓数据同步实战

作者:韩山杰https://github.com/hantmacDatabend Cloud 研发工程师基础架构在云计算时代也发生着翻天地覆的变化,对于业务的支持变成了如何能利用好云资源实现降本增效,同时更好的支撑业务也成为新时代技术人员的挑战。 本篇文章通过&#xf…

含泪推荐5款小体积,超实用的工具

大家好,我又来啦,今天给大家带来的5款软件,共同特点都是体积小、无广告、超实用,大家观看完可以自行搜索下载哦。 1.文字自动验证工具——LanguageTool LanguageTool是一款文字自动验证工具,不仅支持中英文&#xff…

如何将虚拟机ubuntu设置网路连接为桥接模式

当将虚拟机的网络适配器设置为NAT模式时,一切正常,可以ping通所有ip, 但是当设置为桥接模式时,ping命令会提示ubuntu connect: Network is unreachable 这是因为桥接模式没有设置正确,通过下面的步骤可以将桥接模式配置正确。 1…

iOS 生命周期 (最新最完整)

要知道APP的生命周期,首先要了解一下生命周期的5种状态,结合状态理解生命周期的使用。 一、应用的状态 应用的状态包括: 1.1 未运行(Not running) 程序没启动 1.2 未激活(Inactive) 程序在…

尚医通 (二十一)预约挂号功能

目录一、预约挂号详情1、需求2、预约挂号详情接口3、预约挂号详情前端二、预约确认1、需求2、预约确认接口3、预约确认前端一、预约挂号详情 1、需求 接口分析 (1)根据预约周期,展示可预约日期数据,按分页展示 (2&…

JAVA设计模式之工厂模式讲解

目录 前言 开始表演 前言 Java中使用工厂模式的主要原因是为了实现代码的灵活性和可维护性。工厂模式是一种创建型设计模式,它提供了一种将对象的创建和使用进行分离的方式。具体来说,工厂模式可以将对象的创建过程封装在一个独立的工厂类中&#xff…

自动微分记录

计算图(数据流图):AI系统化问题 - 计算图的提出 计算图和自动微分 单算子切分、图的切分和调度 前端->统一表示->优化层->运行时态->底层库 语言 计算网络模型中间表示 计算图 自动微分 计算图优化 内存管理、计算图调度和执行 内核代码优化与编译 多硬件支持…

ip-guard如何在控制台上判断策略是否下发成功?

方法1.看控制台策略设置是否带*号,一般带*,然后刷新控制台依旧带*,说明策略没下发。可以点击刷新按钮进行刷新。 方法2.运行cmd,将控制台程序拖入命令行中,加参数-ad,回车运行。 然后,选中指定客户端,在维护-命令行,输入policy,

骨传导耳机是怎么发声的,骨传导耳机值得入手嘛

现在市面上除了我们平时比较常见的有线耳机、头戴耳机、真无线耳机,近两年还涌现出了一种有着黑科技之称的特别耳机——骨传导耳机,并且因其在运动场景下的优势过于明显而得到了众多运动爱好者的大力追捧。那么今天我们就来聊聊这款所谓的黑科技骨传导耳…

webform如何升级mvc

1.创建项目 给项目起名字然后指定存储位置 选择asp.net 空项目 2.新建model namespace WebFormToMvc {/// <summary>/// 用户模型/// </summary>public class UserModel{/// <summary>/// id/// </summary>public int Id { get; set; }/// <sum…

解决Chrome浏览器内置翻译无法使用的问题

hosts文件 hosts是一个没有扩展名的系统文件&#xff0c;可以用记事本等工具打开&#xff0c;主要作用是定义IP地址和主机名的映射关系&#xff0c;是一个映射IP地址和主机名的规定。当用户在浏览器中输入一个需要登录的网址时&#xff0c;系统会首先自动从hosts文件中寻找对应…

上海亚商投顾:沪指收跌0.62% 东数西算板块逆势领涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。市场情绪三大指数今日震荡调整&#xff0c;盘中集体跌超1%&#xff0c;随后沪指跌幅有所收窄。东数西算概念午后走强&#xf…

【FLASH存储器系列二十一】如何评估固态硬盘的性能?

我们以三星消费级SSD 990 PRO为例进行介绍&#xff0c;下图为其产品配置&#xff1a; 简单说明一下产品配置&#xff1a;990 pro容量有1T和2T两种规格&#xff0c;固态硬盘容量计算一般是1T1000GB1000000MB&#xff0c;与操作系统容量计算1T1024GB不一样&#xff0c;使用M.2外形…

Editor工具开发基础三:自定义组件菜单拓展 CustomEditor

一.创建脚本路径 创建脚本路径不再限制 一般写在自定义组件类的下边二.特性CustomEditor 定义主设计图面由自定义代码实现数组的编辑器。两个构造函数1.public CustomEditor(Type inspectedType);2.public CustomEditor(Type inspectedType, bool editorForChildClasses);参数意…