vagrant的学习 之 Laravel
vagrant的学习 之 Laravel
本文根据慕课网的视频教程练习,感谢慕课网!
慕课视频学习地址:https://www.imooc.com/video/14218。
慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/va
Laravel的官网地址:https://www.golaravel.com/
第一步,下载Laravel框架:
laravel对php的版本有要求,
本环境的php版本是5.5.9,所以只能选择laravel版本为5.2和之前的版本。
查看laravel的安装教程:https://docs.golaravel.com/docs/5.0/installation/
环境要求:
- PHP 版本 >= 5.4
- Mcrypt PHP 扩展
- OpenSSL PHP 扩展
- Mbstring PHP 扩展
- Tokenizer PHP 扩展
- php5-json 扩展
检查各项是否已安装,如果php5-json没有安装:sudo apt-get install php5-json。
然后按照文档安装:
方式一,通过 Laravel 安装工具:
首先,使用 Composer 下载 Laravel 安装包:
composer global require "laravel/installer=~1.1"
然后创建项目:
laravel new 项目名字
注意如果laravel不是全局的命令,则可以执行使用全路径:
~/.composer/vendor/bin/laravel new 项目名字
结果虽然框架创建下来了,但是报了很多错误问题,显示环境不符合要求,
这样默认下载的是最新的laravel框架,需要php版本为7以上,框架中还缺少vender目录,所以尝试第二种方式下载框架。
方式二,通过 Composer Create-Project:
composer create-project laravel/laravel 路径/项目名字 5.0 --prefer-dist
结果显示:
Problem
- laravel/framework v5.0.9 requires ext-mcrypt * -> the requested PHP extension mcrypt is missing from your system. To enable extensions, verify that they are enabled in your .ini files:
- /etc/php5/cli/conf.d/-opcache.ini
- /etc/php5/cli/conf.d/-pdo.ini
- /etc/php5/cli/conf.d/-gd.ini
- /etc/php5/cli/conf.d/-json.ini
- /etc/php5/cli/conf.d/-mysql.ini
- /etc/php5/cli/conf.d/-mysqli.ini
- /etc/php5/cli/conf.d/-pdo_mysql.ini
- /etc/php5/cli/conf.d/-readline.ini
提示没有这个mcrypt扩展,框架中依然没有vender目录。
至于提示中的那些.ini文件在/etc/php5/cli/conf.d/下都已经存在。
搜索mcrypt官方文档,http://php.net/manual/zh/mcrypt.installation.php。
提示:
Note, for Ubuntu, simply installing php5-mcrypt did not get mcrypt to work. You need to execute the following commands as root to enable it:
//安装php5-mcrypt ,这一步已经安装过,跳过。
sudo apt-get install php5-mcrypt
//移动到指定目录下,发现文件已经在指定的目录里,也跳过。
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
//开启扩展,执行一下
sudo php5enmod mcrypt
//重启apache
sudo service apache2 restart
然后重新创建项目,结果又有错误,显示如下:
proc_open(): fork failed - Cannot allocate memory
The archive may contain identical file names with different capitalization (which fails on case insensitive filesystems)
Unzip with unzip command failed, falling back to ZipArchive class
The following exception is caused by a lack of memory or swap, or not having swap configured
Check https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors for details PHP Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Application.php on line 959 Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/local/bin/composer/vendor/symfony/console/Application.php on line 959 [ErrorException]
proc_open(): fork failed - Cannot allocate memory
搜索到的结论是可能交换空间不足,需要建立交换空间:
sudo /bin/dd if=/dev/zero of=/var/swap. bs=1M count=
sudo /sbin/mkswap /var/swap.
sudo /sbin/swapon /var/swap.
再次创建项目,框架下载成功。
第二步,修改配置文件:
nginx配置:
创建配置文件:
cd /etc/nginx/conf.d/
touch laravel.conf
编辑内容:
sudo vim laravel.conf
server{
server_name study.laravel.com;
root /home/www/laravel/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
} location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:;
try_files $uri = ;
}
}
然后在host文件中增加
IP地址 study.laravel.com
重启nginx,然后在本地电脑上的host里也增加配置
IP地址 study.laravel.com
配置apache:
进入apache的配置目录:
cd /etc/apache2/sites-enabled/
创建配置文件:
touch laravel.conf
编辑配置文件:
sudo vim laravel.conf
<VirtualHost *:>
ServerName study.laravel.com
DocumentRoot /home/www/laravel/public/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
然后重启apache,完成。
第三步,访问项目,study.laravel.com:
有错误:
[error] #: * FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/home/www/laravel/storage/logs/laravel---.log" could not be opened: failed to open stream: Permission denied' in /home/www/laravel/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107
Stack trace:
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(): Monolog\Handler\StreamHandler->write(Array)
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(): Monolog\Handler\RotatingFileHandler->write(Array)
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Logger.php(): Monolog\Handler\AbstractProcessingHandler->handle(Array)
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Logger.php(): Monolog\Logger->addRecord(, 'exception 'Unex...', Array)
# /home/www/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(): Monolog\Logger->error('exception 'Unex...'...
PHP message: PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/home/www/laravel/storage/logs/laravel-2018-08-31.log" could not be opened: failed to open stream: Permission denied' in /home/www/laravel/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:
Stack trace:
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(): Monolog\Handler\StreamHandler->write(Array)
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(): Monolog\Handler\RotatingFileHandler->write(Array)
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Logger.php(): Monolog\Handler\AbstractProcessingHandler->handle(Array)
# /home/www/laravel/vendor/monolog/monolog/src/Monolog/Logger.php(): Monolog\Logger->addRecord(, 'exception 'Symf...', Array)
# /home/www/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions
还有错误,然后给文件增加权限:
chmod -R storage/
chmod -R bootstrap/cache/
再次访问,错误消失,访问项目成功。
总结:
(1)安装laravel框架时总是出问题,需要一点点分析解决,有时很耗时间,需要耐心。
(2)发现错误日志的时间不对,设置时区为上海的命令为:
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
vagrant的学习 之 Laravel的更多相关文章
- (学习笔记)laravel 中间件
(学习笔记)laravel 中间件 laravel的请求在进入逻辑处理之前会通过http中间件进行处理. 也就是说http请求的逻辑是这样的: 建立中间件 首先,通过Artisan命令建立一个中间件. ...
- vagrant的学习之Git学习
vagrant的学习之Git学习 参考学习网址: http://www.runoob.com/git/git-install-setup.html. http://www.bootcss.com/p/ ...
- vagrant的学习 之 打包分发
vagrant的学习 之 打包分发 一.打包Box: (1)关闭虚拟机. vagrant halt (2)打包: vagrant package 这样打包出来的文件叫package.box. 指定生成 ...
- vagrant的学习 之 优化
vagrant的学习 之 优化 一.修改虚拟机名字: 默认的虚拟机的名字很长:study_default_1535505004652_97747. (1)打开Vagrantfile文件:(2)找到: ...
- vagrant的学习 之 Yii2
vagrant的学习 之 Yii2 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址:https: ...
- vagrant的学习 之 ThinkPHP3.2
vagrant的学习 之 ThinkPHP3.2 (1)在web目录下新建tp32目录: cd /home/www/ mkdir tp32 (2)下载框架 我从ThinkPHP官网下载了ThinkPH ...
- vagrant的学习 之 ThinkPHP5.1
vagrant的学习 之 ThinkPHP5.1 本文根据慕课网的视频教程练习,感谢慕课网! 慕课视频学习地址:https://www.imooc.com/video/14218. 慕课的参考文档地址 ...
- vagrant的学习 之 LNMP和LAMP
vagrant的学习 之 LNMP和LAMP 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/va ...
- vagrant的学习 之 基础学习
vagrant的学习 之 基础学习 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/vagrant ...
随机推荐
- iOS 应用程序内部国际化,不跟随系统语言
前言:网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0 – 今天要讲的是不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案. 一.总则: 应用内部语言 ...
- Redis为什么这么快
Redis为什么这么快 1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速.数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1): 2.数据结构简单, ...
- java比较日期大小及日期与字符串的转换【SimpleDateFormat操作实例】
java比较日期大小及日期与字符串的转换[SimpleDateFormat操作实例] package com.ywx.test; import java.text.ParseException; im ...
- 诊断Java代码中常见的数据库性能热点问题应该这么做!
“你的Java应用程序的性能是怎样诊断和优化的?不妨看看这两位西医的方子.如果你有更好疗效的药方,也欢迎在评论区告诉我们. 当我在帮助一些开发者或架构师分析及优化Java应用程序的性能时,关键往往不在 ...
- 登录脚本重构by封装
package com.gubai.selenium; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; imp ...
- 怎么用eclipse生成jar文件?eclipse导出jar介绍
1 .我们先要增加jar需要的配置文件,选中项目的src目录,鼠标右键,选择 [New] -选择 [Folder] . 2. 输入META-INF 作为目录名称,点击[Finish] . 3. 选中刚 ...
- uva12433 Rent a Car
init 一开始搞成2*n+2了...囧 所以初始化很重要! 然后提交的时候忘了删调试的数据了..囧 技巧:设立虚拟节点 建图比较麻烦(非常). 要考虑到保养完了的车可以免费再用 设立S,T ,1 ...
- uva10366 Faucet Flow
每次找到两边离中心最高的板,如果等,再找外围的最高版...画图便于理解两边先找到距离(-1,1)最近的最大值L和R,因为可能存在多个最高的挡板.接着比较两个L和R的大小,相等的话分别分析两边,取最小值 ...
- Robot Framework(十四) 扩展RobotFramework框架——创建测试库
4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...
- Bug的定义和分类
什么是BUG 使用人工或自动手段,来运行或测试某个系统的过程.其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别 BUG分类 完全没有实现的功能 基本实现了用户需要的功能,但是运行时 ...