在Mac上為自己手動編譯安裝一套PHP7的開發環境

首先你得去官網下載php7 beta1的版本

這里由于我是在mac上安裝,所以就去下載linux相關的版本,地址也直接附上了
php7 beta1
windows版的官方也有發布詳情猛戳:這里

解壓安裝包,進入源代碼目錄

tar -zxvf php-7.0.0beta1.tar.gz cd php-7.0.0beta1 

建立配置

./buildconf --force ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/sbin/apxs --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts 

這里列出以下我編譯過程遇到的錯誤和解決辦法:

  • configure: error: Cannot locate header file libintl.h

安裝 gettext

sudo brew install gettext

編輯 configure 文件,找到 $PHP_GETTEXT /usr/local /usr 在后面加上gettext的路徑 $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext

重新配置即可【后面參數和上面一樣,這里省略了】

  • configure: error: mcrypt.h not found. Please reinstall libmcrypt.

sudo brew install mcrypt libmcrypt

再次重新configure即可。。。

我這里可能是因為之前就裝過php7 alpha版本,所以錯誤會少一點,不過大家過程中有什么錯誤的話,直接貼出來大家一起研究了。

編譯

make#
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
clicommand.inc
directorygraphiterator.inc
directorytreeiterator.inc
invertedregexiterator.inc
pharcommand.inc
phar.incBuild complete.
Don't forget to run 'make test'. # 

這里會持續一段時間,一般是不會出現什么錯誤的,除非你人品的問題了。。。

安裝

sudo make install

上面的步驟都順利的話,這一步做起來就是那么的簡單了,但是安裝過程的信息要記得留意一下,后面配置會需要。。。

命令行測試

/usr/local/php7/bin7 -v#為了以后事業方便,直接替換系統默認的php命令
#當人你也可以備份一下,我這里直接覆蓋算求了。。。
sudo cp /usr/local/php7/bin/ph* /usr/bin/ 

毫無違和感,運行的如此流暢,哈哈!

配置apache

打開apache的配置文件httpd.conf,找到原來的LoadModule php5_module這里,直接注釋掉,下面加入LoadModule php7_module /usr/libexec/apache2/libphp7.so,最后如下:

sudo vim /etc/apache2/httpd.conf...
#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php7_module /usr/libexec/apache2/libphp7.so
...

重啟apache,然后測試一把看看

驚奇的發現,php文件直接輸出到瀏覽器了。。。
感覺是apache不知道要解析php文件了!!!
這里我排查了好久,發現切換成php5版本就沒問題,php7就無法解析???
最后才發現apache在解析php的適合是判斷了模塊的,例如ifModule php5_module這樣,在httpd.conf里面找到這一句:Include /private/etc/apache2/other/*.conf,進入到該目錄一看,你就明白了...
里面有一個php5.conf文件,那是不是php7的就該對應一個php7的文件呢,于是趕緊復制一份,打開這個文件,看到類似php5_module的字樣,直接替換成php7_module即可,相關內容如下:

#httpd.conf改動
...
<IfModule php5_module>
Include /private/etc/apache2/other/php5.conf
</IfModule><IfModule php7_module>
Include /private/etc/apache2/other/php7.conf
</IfModule> #Include /private/etc/apache2/other/*.conf ... #php7.conf內容 <IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> </IfModule> 

最后再次重啟apache,測試一下

sudo apachectl restart

久違的畫面出現了。。。

轉載于:https://www.cnblogs.com/xiaoleiel/p/8324338.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390319.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390319.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390319.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

卡特蘭數 HDU2067 HDU4165 HDU1134

題目鏈接&#xff1a;https://vjudge.net/problem/HDU-2067 小兔的棋盤 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11800 Accepted Submission(s): 5952 Problem Description小兔的叔叔從外面旅游回來給她…

Python的用途是什么? Python編程語言有10多種編碼用途。

&#x1f44b;歡迎 (&#x1f44b; Welcome) Hi! Please take a moment to think about this question: 嗨&#xff01; 請花一點時間考慮這個問題&#xff1a; How is Python applied in real-world scenarios? Python如何在實際場景中應用&#xff1f; If you are learnin…

Publish/Subscribe

Publish/Subscribe 我們將會投遞一個消息給多個消費者&#xff0c;這種模式被稱為“publish/subscribe” 通俗的講&#xff0c;前面的是點對點隊列模型&#xff0c;現在講的是發布訂閱模型。 Exchanges producer&#xff1a;一個發送消息的用戶應用程序 queue&#xff1a;一個存…

[轉]在ROS下使用zeroconf配置多機通信

原文地址&#xff1a;http://www.corvin.cn/635.html&#xff0c;轉載主要方便隨時查閱&#xff0c;如有版權要求&#xff0c;請及時聯系。 0x00 為何需要配置ROS多機通信 眾所周知ROS是分布式系統&#xff0c;因此可以將機器人需要處理的復雜、計算量大的任務分解在多臺機器上…

python中斐波那契數列_斐波那契數列–在Python,JavaScript,C ++,Java和Swift中進行了解釋...

python中斐波那契數列by Pau Pavn通過保羅帕文(PauPavn) The Fibonacci sequence is, by definition, the integer sequence in which every number after the first two is the sum of the two preceding numbers. To simplify:根據定義&#xff0c;斐波那契數列是整數序列&a…

1583. 統計不開心的朋友

1583. 統計不開心的朋友 給你一份 n 位朋友的親近程度列表&#xff0c;其中 n 總是 偶數 。 對每位朋友 i&#xff0c;preferences[i] 包含一份 按親近程度從高到低排列 的朋友列表。換句話說&#xff0c;排在列表前面的朋友與 i 的親近程度比排在列表后面的朋友更高。每個列…

uva 247(floyd傳遞閉包)

為什么&#xff0c;逗號后面&#xff0c;還有空格........ #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #include <vector> #include <map> using namespace std; const int maxn50; int d[maxn][max…

VS Code 的常用快捷鍵和插件

注:文章摘自 風行天下一萬號 - 博客園 vs code 的常用快捷鍵 1、注釋&#xff1a; 單行注釋&#xff1a;[ctrlk,ctrlc] 或 ctrl/取消單行注釋&#xff1a;[ctrlk,ctrlu] (按下ctrl不放&#xff0c;再按k u)多行注釋&#xff1a;[altshiftA]多行注釋&#xff1a;/**2、移動行&a…

python包numpy_NumPy Python科學計算軟件包的終極指南

python包numpyNumPy (pronounced "numb pie") is one of the most important packages to grasp when you’re starting to learn Python.NumPy(讀作“麻木派”)是您開始學習Python時要掌握的最重要的軟件包之一。 The package is known for a very useful data str…

NGINX原理 之 SLAB分配機制(轉)

1 引言 眾所周知&#xff0c;操作系統使用伙伴系統管理內存&#xff0c;不僅會造成大量的內存碎片&#xff0c;同時處理效率也較低下。SLAB是一種內存管理機制&#xff0c;其擁有較高的處理效率&#xff0c;同時也有效的避免內存碎片的產生&#xff0c;其核心思想是預分配。其按…

apk之間數據共享的方式

1、四大組件之ContentProvider大法2、shareUserId3、apk均去遠端獲取配置文件&#xff08;或接口&#xff09;4、AIDL&#xff08;bindService&#xff09;5、SharePreference設置為MODE_WORLD_READABLE|MODE_WORLD_WRITEABLE模式&#xff0c;由于存在安全問題&#xff0c;已被…

藍橋杯java 基礎練習 十六進制轉十進制

問題描述從鍵盤輸入一個不超過8位的正的十六進制數字符串&#xff0c;將它轉換為正的十進制數后輸出。注&#xff1a;十六進制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。樣例輸入FFFF樣例輸出65535import java.math.BigInteger; import java.util.Scanner;public …

dynamic web module消失不見

2019獨角獸企業重金招聘Python工程師標準>>> 方法1&#xff1a;在project Facets選項中勾選Dynamic Web Module即可 方法2&#xff1a; 我用eclipse對項目進行修改名稱&#xff0c;修改成功后。項目就沒有Deployment Descriptor&#xff08;如下圖紅色框中&#xff…

576. 出界的路徑數

576. 出界的路徑數 給你一個大小為 m x n 的網格和一個球。球的起始坐標為 [startRow, startColumn] 。你可以將球移到在四個方向上相鄰的單元格內&#xff08;可以穿過網格邊界到達網格之外&#xff09;。你 最多 可以移動 maxMove 次球。 給你五個整數 m、n、maxMove、star…

telnet命令發送郵件

下面的例子是用qq的smtp服務器。 set localecho 本地回顯啟用 telnet smtp.qq.com 25 220 smtp.qq.com Esmtp QQ Mail Server helo sis 250 smtp.qq.com//服務器返回250 smtp.qq.com STARTTLS 220 Ready to start TLS//服務器返回 220 準備開啟TLS通訊 auth login 334 VXNlcm5h…

myelcipse和maven搭建項目

偷懶一下&#xff0c;完了補充 轉載&#xff1a;https://www.cnblogs.com/jr1260/p/6438811.html https://www.cnblogs.com/yangmingyu/p/6908519.html https://www.cnblogs.com/henuyuxiang/p/6288476.html 轉載于:https://www.cnblogs.com/0914lx/p/8342343.html

551. 學生出勤記錄

551. 學生出勤記錄 I 給你一個字符串 s 表示一個學生的出勤記錄&#xff0c;其中的每個字符用來標記當天的出勤情況&#xff08;缺勤、遲到、到場&#xff09;。記錄中只含下面三種字符&#xff1a; ‘A’&#xff1a;Absent&#xff0c;缺勤 ‘L’&#xff1a;Late&#xff…

JavaScript實現職責鏈模式

什么是職責鏈模式 職責鏈模式的定義是&#xff1a;使多個對象都有機會處理請求&#xff0c;從而避免請求的發送者和接收者之間的耦合關系&#xff0c;將這些對象連成一條鏈&#xff0c;并沿著這條鏈傳遞該請求&#xff0c;直到有一個對象處理它為止。舉個例子&#xff1a;當你從…

Metrics介紹和Spring的集成

參考&#xff1a; http://colobu.com/2014/08/08/Metrics-and-Spring-Integration/ https://www.cnblogs.com/yangecnu/p/Using-Metrics-to-Profiling-WebService-Performance.html

配置 aws cli_AWS CLI教程–如何安裝,配置和使用AWS CLI了解您的資源環境

配置 aws cliHow to get exactly the account and environment information you need to manage your AWS account using just the AWS CLI如何僅使用AWS CLI準確獲取管理AWS賬戶所需的賬戶和環境信息 Installing the AWS CLI is actually quite simple. The best way to get …