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 ...
随机推荐
- 单例类singleton自动释放
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- Mysql数据库的增删改查
在运行程序之前需要在mysql数据库中创建test数据库,如下图所示: 下面是具体是实现程序: package News; import java.sql.Connection; import jav ...
- 查看PHP以字母"E"开头的常量
1.E_ALL <?php echo E_ALL; ?> 32767 2.E_COMPILE_ERROR <?php echo E_COMPILE_ERROR; ?> 64 3 ...
- hdu6230 Palindrome(manacher+树状数组)
题目链接: Palindrome Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Other ...
- IOS开发 ARC和非ARC下使用Block属性的问题
1. Block的声明和线程安全 Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非AR ...
- iOS-----AVFoundation框架的功能详解
使用AVFoundation拍照和录制视频 需要开发自定义的拍照和录制视频功能,可借助于AVFoundation框架来实现,该框架提供了大量的类来完成拍照和录制视频.主要使用如下类: AVCaptur ...
- stack组件03
继昨天留下的问题 思路: 结果: 优化: from stark.service.site import site,ModelSatrk from .models import * from djang ...
- learn go error
package main // 参考文档: // https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/05.2.md im ...
- 【剑指offer】10矩阵覆盖
原创博文,转载请注明出处! 0.简介 # 本文是牛客网<剑指offer>刷题笔记,笔记索引链接 1.题目 # 用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地 ...
- 《DSP using MATLAB》示例Example 9.7
代码: %% ------------------------------------------------------------------------ %% Output Info about ...