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