文档章节

mac 升级 php7 的一系列问题和解决

罗培海
 罗培海
发布于 2017/04/16 22:29
字数 691
阅读 238
收藏 0

起因:

由于电脑自带php 5.3 ,试着运行了一个php项目,数据库的导入,和配置文件的修改都没问题,但是最后报错:

Message: Cannot modify header information - headers already sent by  …

查资料:按照下面这个博客 尝试在过n个办法http://www.dabu.info/warning_can_not_modify_header_information_-_headers_already_sent_b_.html

最后还是不行,折腾到后来 应该是php版本过低,直接按照项目说明升级到php 7.0 

$ curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0

$ php --version  // php 5.3 没有替换掉

$ sudo apachectl stop

$ export PATH=/usr/local/php5/bin:$PATH

$ php --version  // php 7.0.13 

$ sudo apachectl restart

 

Error: Your Xcode (7.3.1) is too outdated.
Please update to Xcode 8.3 (or delete it).

支持php7 要更新Xcode

开心的在浏览器输入localhost 没有成功,(后来写这篇文章的时候想起,应该是apache 的httpd.conf 没有做相应的修改),看到没成功,第一反应是完蛋,现在php环境运行不了了 自己还有一个php项目前端需要开发......

通过brew 管理php apache

考虑到后期php版本经常要切换问题,为方便php版本切换管理用了brew,brew的安装和介绍

http://www.jianshu.com/p/4e80b42823d5

废话不说 添加php的仓库

$ brew tap homebrew/apache

由于homebrew/apache已经被废弃,所以这里只创建php仓库


$ brew tap homebrew/php

安装php apache

$ brew install httpd24

$ brew install php70

首先先关闭apache

sudo apachectl stop

修改apache 配置文件  打开 /usr/local/etc/httpd/httpd.conf 文本最后添加

# ====php module====
LoadModule php7_module /usr/local/Cellar/php70/7.0.17_9/libexec/apache2/libphp7.so
<IfModule mod_php7.c>
 
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
 
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>

监听端口 8080 改为80

listen 80

启动apache

$ sudo apachectl start

报错:

httpd: Syntax error on line 192 of /usr/local/etc/apache2/2.4/httpd.conf: Cannot load /usr/local/Cellar/php70/7.0.17_9/libexec/apache2/libphp7.so into server: dlopen(/usr/local/Cellar/php70/7.0.17_9/libexec/apache2/libphp7.so, 10): image not found

继续查问题google: brew Cannot load libphp7.so 报错,搜到的结果需要加参数,原因就不说了.

$ brew install php70 --with-apxs2  --with-apache --with-gmp --with-imap --with-tidy --with-debug,()

$ brew update
$ brew reinstall php70 --with-apxs2  --with-apache --with-gmp --with-imap --with-tidy --with-debug

继续错误 解决问题的相应连接: https://github.com/Homebrew/homebrew-php/issues/3736,解决方法:(8分钟左右)

$ xcode-select --install

完成后继续安装php7

$ brew update
$ brew reinstall php70 --with-apxs2  --with-apache --with-gmp --with-imap --with-tidy --with-debug

等待10分钟左右,安装完成

$ brew list
apr		httpd24		libxml2		readline
apr-util	icu4c		maven		unixodbc
freetype	imap-uw		mongodb		zlib
gettext		jpeg		openssl
git		libevent	pcre
gmp		libpng		php70

php70 顺利安装完成!

安装了40几分钟,太漫长的等待,建议换镜像,这里换成coding 的源

$ cd /usr/local && git remote set-url origin https://git.coding.net/homebrew/homebrew.git

$ cd $home && brew update

继续修改 apache 配置文件   /usr/local/etc/apache2/2.4/httpd.conf 

DocumentRoot "/Users/lph/Sites"
<Directory "/Users/lph/Sites">

路劲自定义.

接下来浏览器输入验证:localhost/项目名/

 

© 著作权归作者所有

共有 人打赏支持
罗培海
粉丝 5
博文 41
码字总数 20620
作品 0
嘉兴
私信 提问
日请求亿级的QQ会员AMS平台PHP7升级实践

版权声明:本文由PHP7升级项目组原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/74 来源:腾云阁 https://www.qcloud.com/community QQ会员活动运营平台...

偶素浅小浅
2016/11/01
8
0
php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,

升级到php7后,发现旧的web系统有些问题,查看后才发现原来是php7不再支持HTTPRAWPOST_DATA 原来系统一些地方,使用$GLOBALS[‘HTTP_RAW_POST_DATA’]来获取数据,在php7里无法获取了 解决的...

15834278076
2018/10/17
0
1
php7采坑记:浮点型数据比较

今天在项目中遇到一个奇怪的问题,经过计算后的double类型的变量的值相等的两个变量进行比较,结果却是不相等。

hgditren
2017/07/13
0
0
我的PHP升级之路 -- 两个凡是

一直对语言的升级非常反感, 但是PHP却是一路升级过来 PHP5.2 --> PHP5.3.8 : 因为PHP5.3开始内置了fpm, 并且有dynamic的能力。 另外构造函数一致化了, 所以非常有吸引力 5.3.8 --> PHP5.6...

宏哥
2016/12/17
436
5
内容管理框架 ThinkCMFX 2.0.0 发布,支持 PHP7

ThinkCMF是一款基于ThinkPHP+MYSQL开发的中文内容管理框架。ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据自身的需求以应用的形式进行扩展。每个应用都能独立的...

ThinkCMF
2015/12/09
4.5K
21

没有更多内容

加载失败,请刷新页面

加载更多

租房软件隐私保护如同虚设

近日,苏州市民赵先生向江苏新闻广播新闻热线025-84658888反映,他在“安居客”手机应用软件上浏览二手房信息,并且使用该软件自动生成的虚拟号码向当地一家中介公司进行咨询。可电话刚挂不久...

linux-tao
今天
1
0
分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
4
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
2
0
cocoapods 用法

cocoapods install pod install 更新本地已经install的仓库 更新所有的仓库 pod update --verbose --no-repo-update 更新制定的仓库 pod update ** --verbose --no-repo-update...

HOrange
今天
3
0
linux下socket编程实现一个服务器连接多个客户端

使用socekt通信一般步骤 1)服务器端:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接。 2)客户端:socker()建立套接字,连接(connect)服务器,连接上后...

shzwork
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部