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 ...
随机推荐
- 不用storyboard,用xib开发
1. 新建一个Single View Application项目, 删除自动生成的.storyboard文件和ViewController文件 2. 新建一个UIViewController的子类,命 ...
- mifi随身wifi选购
一款优秀的随身wifi不光要信号好,更要电量足 ,网速快.影响这个三个问题的主要因素就是cpu.so咱们从cpu的角度来分析下mifi 机器型号(cpu型号) TP 961 52000 (MDM962 ...
- resizable可调整尺寸组件
Resizable 可调整尺寸不依赖于其他组件 1.用法:通过标记创建可调整尺寸(resizable)对象 <div class="easyui-resizable" sty ...
- 《Effective Java》读书笔记(二)之对于所有对象都通用的方法
第八条 在改写equals的时候请遵守通用约定 一般以下几种情况,不适宜覆盖equals方法 1.类的每个实例本质上都是唯一的,对于代表活动实体而不是值的类确实如此,例如Thread. 2.不关心类是 ...
- 关于windows完成端口(IOCP)的一些理解
本人很多年前接触完成端口以来,期间学习和练习了很多次,本以为自己真正地理解了其原理,最近在看网狐的服务器端源码时又再一次拾起完成端口的知识,结果发现以前理解的其实很多偏差,有些理解的甚至都是错误的.网 ...
- Jenkins自动构建VS的代码20150607
1. 安装Jenkins Ø 双击安装即可,如果需要,可以配置环境变量(一般没设置) Ø 在浏览器中输入:http://localhost:8080/打开jekins,及完成jenkins安装 Ø 如 ...
- 利用层序遍历(含空节点)和中序遍历重建二叉树 python
给定一颗二叉树的层序遍历(不含None的形式)和中序遍历序列,利用两个序列完成对二叉树的重建. 还是通过一个例子来说明整个过程,下图所示的二叉树,层序遍历结果为[a,b,c,d,e],中序遍历结果为[ ...
- js之验证码倒计时功能
<!DOCTYPE html> <html > <head> <meta http-equiv="Content-Type" conten ...
- MPI 学习
一.编译MPI mpic++ test.cc -o test 二.启动MPI mpiexec -np 10 ./test 三.几个例子 第一个进程向第二个发一个数,第二个进程向第三个进程发送一个数.. ...
- 命令“"xxx.exe" xxx”已退出,代码为 n。这些错误是什么意思?(3 / 123 / 9009)
命令“”xxx.exe” xxx”已退出,代码为 n. 我们在 cmd 中输入常见命令的时候,如果命令输入错误或使用错误,cmd 中会提示错误原因,帮助我们定位并解决问题.然而如果相同的命令放到了 V ...