laravel 环境自编译过程
【原创】
看到此文的朋友看完后也许会失望,但我尽最大努力不让搜友们失望,以下是自己操作的笔记用以整理提高
虽然 laravel 官方已给出了安装 laravel 框架所需的环境盒子 使用Vagrant安装 LaravelHomestead 但是那个也不好弄关键是体积比较大,所以就想自己尝试下手动编译安装 laravel 所需的官方标配的php扩展:
- PHP> = 7.0.0
- OpenSSL PHP扩展
- PDO PHP扩展
- Mbstring PHP扩展
- Tokenizer PHP扩展
- XML PHP扩展
这些都好装,一个一个下载并编译安装即可,安装的方式多样化,有的从PHP资源包重新源码编译,有的yum安装,有的下载tgz包编译安装,由于周期比较长所以我并没有记录所有的安装方式,以下记录 mbstring 扩展的安装过程及连带的一些扩展
正文如下:
一、安装mbstring扩展
php的mbstring扩展如果没有安装会导致一些问题:如登陆phpMyAdmin的时候会提示没字符串编码和字符串处理库 php_mbstring,有些程序中会用到mb_substr函数没有php的mbstring扩展当这些程序运行的时候通常会提示“Fatal error: Call to undefined function mb_substr()”。【摘自网络】
- yum -y install php-mbstring
- 配置php.ini支持该扩展,php.ini文件中添加 extension=mbstring.so
- 重启php-fpm即可
ps:编译安装php程序后 通过yum 安装的php扩展都会出现在/usr/local/php7-miao/lib/php/extensions/no-debug-non-zts-20160303录下,在这个目录下的扩展直接在php.ini文件中写入如 extension=mbstring.so即可(不用添加其他目录前缀)
二、尝试 laravel new [项目名称] 命令
由于我前期安装了laravel cli 工具(安装方式官网有介绍:composer global require "laravel/installer")所以这里直接用此cli工具创建基于laravel框架的项目,命令:laravel new travel 报错如下图所示
这里是说php没有安装zip扩展,所以接下来就开始安装zip扩展,又遇到报错:说是缺少libzip所以无法编译zip扩展,确实,安装zip扩展必须先安装libzip扩展,两个扩展安装如下:
安装libzip:
首先移除老版本的libzip:yum remove libzip。然后按如下步骤安装。
(1) wget https://libzip.org/download/libzip-1.3.2.tar.xz
(2) tar -zxvf libzip-1.3.2
(3) cd libzip-1.3.2
(4) ./configure
(5) make && make install
ps:libzip下载地址:https://libzip.org/download/ (当你使用时最好使用其最新版本,低版本的libzip无法使zip扩展编译通过)
安装zip:
(1) wget http://pecl.php.net/get/zip-1.15.1.tgz
(2) tar zxvf zip-1.15.1.tgz
(3) cd zip-1.15.1
(4) phpize
(5) ./configure --with-php-config=php-config
(6) make && make install
ps1:zip扩展下载官网:http://pecl.php.net/package/zip (当你使用时最好下载最新版本)
ps2:我这里第4步第5步直接使用php的两个命令 phpize 和 php-config 而没有像其他博文那样加着一大堆路径的原因很简单,因为加那么大串路径写起来麻烦,所以就把我编译安装的php的bin目录放到了 /etc/profile 中(即:将可执行命令添加到全局环境变量,并对所有用户生效,在/etc/profile文件末尾添加语句 export PATH="/usr/local/php7-miao/bin:$PATH" (PATH路径视自己的目录而定)添加完后保存退出并执行命令 source /etc/profile 立即使添加的可执行命令生效)
ps3:安装完成后该扩展同样会保存在/usr/local/php7-miao/lib/php/extensions/no-debug-non-zts-20160303目录中。
安装完zip扩展后修改php.ini文件:
(1) 添加扩展路径 extension = zip.so
(2) zlib.output_compression = On
至此完成安装。
在次尝试laravel new [项目名称] (在你的服务器生产环境目录下执行该命令,创建项目)如创建项目为 travel:
- laravel new travel
结果成功了,如下图:
成功会输出如下结果:
- 如果还有受laravel环境安装困扰的伙伴欢迎加Q:1456483934
laravel 环境自编译过程的更多相关文章
- [译]C++, Java和C#的编译过程解析
1.1.1 摘要 我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成机器语言,这样计算机才能执行高级语言编写的程序,在接下来的博文中,我们将介绍非托管和托管语音的编 ...
- C/C++, Java和C#的编译过程解析
原文地址:http://www.cnblogs.com/rush/p/3155665.html 1.1.1 摘要 我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成 ...
- C语言的编译过程、安装gcc编译器以及设置环境变量
以我对C语言编译过程的了解,我用了一点时间画了一个图,提供给大家参考一下,希望有些能对您的问题提上帮助. 前几天刚初步学习了C语言的编译过程,感触挺深的.在C语言中头文件其实起了一个很大的作用. 1. ...
- 搭建OpenWrt开发环境(包括编译过程)
OpenWrt是一个高度模块化.高度自动化的嵌入式linux发行版,其编译和安装过程比普通的linux发行版而言,要简单太多了.如果您是新手,您那恐惧的心大可放到肚子里,呵呵.对于新手来说最麻烦的恐怕 ...
- Android工程的编译过程
现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的每一步都做了什么,需要 ...
- Redhat环境下编译安装Google Bazel
Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
- android 编译过程
引用:http://www.cnblogs.com/devinzhang/archive/2011/12/20/2294686.html http://blog.sina.com.cn/s/blog_ ...
- TextMate2 最新版下载及源码编译过程
TextMate2 已经开源,我刚编译成功,如果有需要的同学可以点击下面百度网盘的链接下载.我系统版本是:Mac OS X 10.8.4. TextMate version 2.0-alpha.946 ...
随机推荐
- canvas 遮罩
上一篇介绍了CSS3可以实现mask的方式,本篇介绍canvas同样也可以实现遮罩的方法: 原理: canvas是在画布上绘图,可以绘制各种形状,同时可以在一个层上重复画图,默认情况下后面的会覆盖前面 ...
- 12.18 微信扫码获取openid与登陆
官方文档: https://open.weixin.qq.com/ 1.先获取code 1-1 配置项目配置文件 wechat: mpAppId: wxd898fcb01713c658 mpAppSe ...
- ES查询index对应的mapping信息
private void getMappingByIndex(String indices) throws IOException { GetMappingsRequest getMappingsRe ...
- Java语言基础-运算符
一丶逻辑运算符 1.&和&&的区别 (1).两个逻辑运算符的结果是一样的 (2).当第一个表达式为false时,&是会判断后边的表达式,而&&会产生短路 ...
- keepererrorcode = connectionloss for 错误处理
自己的环境在虚拟机上,于是使用同事的环境调试问题,发现无法初始化成功,提示keepererrorcode = connectionloss for,于是上网查了下资料整理如下: 1.对比代码中引用的j ...
- Python中基本的读文件和简单数据处理
Python中基本的读文件和简单数据处理 暂无评论 DataQuest上面的免费课程(本文是Python基础课程部分),里面有些很基础的东西(csv文件读,字符串预处理等),发在这里做记录.涉及下面六 ...
- 解决 src/MD2.c:31:20: fatal error: Python.h: No such file or directory安装包错误
在linux命令行安装包时报错 src/MD2.c:31:20: fatal error: Python.h: No such file or directory 原因:缺少了python的dev 解 ...
- linux系统编程-进程
进程 现实生活中 在很多的场景中的事情都是同时进行的,比如开车的时候 手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的: 如下是一段视频,迈克杰克逊的一段视频: http://v.youku.com ...
- caffe学习4——net
参考文献 1 The net jointly defines a function and its gradient by composition and auto-differentiation. ...
- SLIP 协议
SLIP 协议 SLIP 英文原义:Serial Line Internet Protocol 中文释义:串行线路网际协议 注解:该协议是Windows远程访问的一种旧工业标准,主要在Unix远程访问 ...