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 ...
随机推荐
- windows 下git 的配置安装与使用
一.安装GIT(过于简单略过) 二.配置git 二(一).配置git的user name和email 打开 git bash,输入 $ git config --global user.name &q ...
- ping命令知识 Ping命令工作原理详解
在网络应用中,ping网速与IP地址等都是非常常用的命令,但大家知道ping命令的工作原理吗?要知道这其中的奥秘,我们有必要来看看Ping命令的工作过程到底是怎么样的.下面介绍下ping命令的详细知识 ...
- _routing字段介绍
一个document通过以下公式被路由到该索引下一个特定的分片: shard_num = hash(_routing) % num_primary_shards _routing的默认值是文档的_id ...
- va_start、va_arg、va_end、va_copy 可变参函数
1.应用与原理 在C语言中,有时我们无法给出一个函数参数的列表,比如: int printf(const char *format, ...); int fprintf(FILE *s ...
- 20165202 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:贾海粟 学号:20165202 指导教师:娄嘉鹏 实验日期:2018年4月16日 实验时间:15:3 ...
- Linux:col命令详解
col 经常用于将说明文件转存为纯文本以方便阅读 语法 col(选项) 选项 -b:过滤掉所有的控制字符,包括RLF和HRLF: -f:滤掉RLF字符,但允许将HRLF字符呈现出来: -x:以多个空格 ...
- 解决WIFI驱动RTL8188无法在rk3168平板Android4.2启动wifi的问题
http://blog.csdn.net/morixinguan/article/details/75228335 上一篇博文能把ko编译出来,非常兴奋的想,这一定是没问题了,结果删除原先的ko后,加 ...
- 01-名字管理系统.py
#-*- coding:utf-8 -*- #1.打印功能提示 print("-"*50) print("名字管理系统 V8.6") print("1 ...
- C# parser JSON get Key and value
/*********************************************************************** * C# parser JSON get Key an ...
- 【javascript】如何延迟加载JavaScript(Google推荐的代码)
下面是Google推荐的代码.这些代码应被放置在</body>标签前(接近HTML文件底部)<script type="text/javascript">f ...