編譯安裝php7和php擴展,php8 編譯

本文目錄一覽:

centos7 php7 安裝擴展phalcon 報錯

第一步:在百度中搜索Phalcon,一般第一個網站,進入網站,我們點擊網站首頁的download,目前該框架的最近版本是2.0

接著 我們找到我們的系統 這裡我建議選用二進位的源碼編譯安裝!

然後 我們根據網站上的提示 下載該框架託管在github上面的二進位源碼,如圖所示,(使用git命令時需要安裝yum install git)

使用putty連接我們的linux系統 在linux系統/usr/local/src/下面輸入步驟三圖片上的命令 稍等片刻源碼就會下載下來

源碼下載完畢後會有一個cphalcon目錄 我們用命令行切換到/usr/local/src/cphalcon/build

用vi編輯器打開install文件 按照下圖配置 選擇php-config(php安裝位置各有不同)默認install 沒有選擇php-config的位置所有我們要自己動手

編輯完成 直接執行./install 動態編譯載入php擴展

編譯完成後打開php.ini文件添加phalcon的擴展 在php.ini中添加下圖的擴展即可

最後一步php探針驗證 !大工告成!

如何編譯搭建php7+nginx+mysql

在Windows下配置搭建PHP環境的步驟:

一、準備工作-下載所需軟體

Apache httpd-2.2.22-win32-x86-openssl-0.9.8t.msi

PHP php-5.3.10-Win32-VC9-x86.zip

MySQL mysql-5.5.20-win32.msi

二、安裝軟體

1、安裝Apache: 雙擊安裝,與安裝其他Windows軟體沒有什麼區別,在填Server Infomation時,並沒有特殊規定,只要輸入的信息符合格式即可。

安裝完成之後,在瀏覽器輸入,如果顯示It Works!,表示Apache安裝成功。

2、安裝PHP:將php-5.3.10-Win32-VC9-x86.zip解壓到一個目錄即可。

3、安裝MySQL:雙擊安裝,如果需要更改安裝目錄,則在Choose Setup Type選擇Custom

安裝完成後開始配置MySQL,全部保持默認選項即可,但最好把MySQL默認編碼改為utf8,在Modify Security Settings選項中設置密碼,輸入兩次密碼即可完成,最後點Execute完成配置。

三、整合Apache+PHP+MySQL

Apache : 首先修改Apache的配置文件,讓Apache支持解析PHP文件。Apache配置文件在Apache安裝目錄的conf目錄下的httpd.conf。

1. 讓Apache可以解析php文件,在配置文件中找到

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

在下一行添加 (綠色的位置是根據PHP的所在目錄而定的)

LoadModule php5_module “D:/Develop/PHP/php5apache2_2.dll”PHPIniDir “D:/Develop/PHP”AddType application/x-httpd-php .php .html .htm

2. 在配置文件中找到

DirectoryIndex index.html

改為

DirectoryIndex index.php index.html

3. 修改Apache站點目錄,在配置文件中找到(Apache安裝的目錄不同,顯示的值不一樣)

DocumentRoot “D:/Develop/Apache2.2/htdocs”

改為

DocumentRoot “D:/Workspace/PHP”

再找到

Directory “D:/Develop/Apache2.2/htdocs”

改為

Directory “D:/Workspace/PHP”

PHP : 把php.ini-development改名為php.ini,作為PHP的配置文件。修改php.ini

1. 設置PHP擴展包的具體目錄,找到

; On windows:; extension_dir = “ext”

改為 (值是ext文件夾的目錄)

; On windows: extension_dir = “D:/Develop/PHP/ext”

2. 開啟相應的庫功能,找到需要開啟的庫的所在行

;extension=php_curl.dll

;extension=php_gd2.dll

;extension=php_mbstring.dll

;extension=php_mysql.dll

;extension=php_xmlrpc.dll

去掉前面的分號(注釋),即改為

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_xmlrpc.dll

3. 設置時區,找到

;date.timezone =

改為

date.timezone = Asia/Shanghai

配置完成,檢測一下配置是否成功。重啟Apache,在站點目錄下新建文件index.php,輸入內容。

如何在openSUSE42.1下編譯安裝PHP7

首先推薦一篇文章

PHP

7

Release

Date

Arrived:

Will

Developers

Adopt

PHP

7?

PHP

Classes

blog

裡面說到是否會去使用PHP7,就個人而言,我是毫不猶豫地使用的,但是生產環境就不是我說了算,所以只能自己在自己的開發環境里更新PHP的版本。那麼,你呢?

筆者使用的是Linux的openSUSE42.1發行版,Yast裡面還沒有PHP7的安裝包,於是乎只能自己手動編譯安裝了。作為一個PHP開發者,我是非常希望能夠學會編譯安裝PHP7的,之前試過幾次,但是每次安裝都要上網找各種資料,於是乎,這次安裝成功後就想把自己的安裝過程以及遇到的問題記錄下來,方便以後查閱和分享給需要的人。

下載源碼並解壓

進入正題,要編譯安裝PHP7,首先當然要下載PHP7的源碼。你可以到

github

上clone,也可以到

PHP官網

下載。下載後解壓到

/usr/local/src

目錄,並將目錄重命名為php7。進入目錄。

配置編譯參數

生成配置文件

./buildconf

配置

./configure

\

–prefix=/usr/local/php7

\

–exec-prefix=/usr/local/php7

\

–bindir=/usr/local/php7/bin

\

–sbindir=/usr/local/php7/sbin

\

–includedir=/usr/local/php7/include

\

–libdir=/usr/local/php7/lib/php

\

–mandir=/usr/local/php7/php/man

\

–with-config-file-path=/usr/local/php7/etc

\

–with-mysql-sock=/var/run/mysql/mysql.sock

\

–with-mcrypt=/usr/include

\

–with-mhash

\

–with-openssl

\

–with-mysqli=shared,mysqlnd

\

–with-pdo-mysql=shared,mysqlnd

\

–with-gd

\

–with-iconv

\

–with-zlib

\

–enable-zip

\

–enable-inline-optimization

\

–disable-debug

\

–disable-rpath

\

–enable-shared

\

–enable-xml

\

–enable-bcmath

\

–enable-shmop

\

–enable-sysvsem

\

–enable-mbregex

\

–enable-mbstring

\

–enable-ftp

\

–enable-gd-native-ttf

\

–enable-pcntl

\

–enable-sockets

\

–with-xmlrpc

\

–enable-soap

\

–without-pear

\

–with-gettext

\

–enable-session

\

–with-curl

\

–with-jpeg-dir

\

–with-freetype-dir

\

–enable-opcache

\

–enable-fpm

\

–disable-cgi

\

–with-fpm-user=nginx

\

–with-fpm-group=nginx

\

–without-gdbm

\

–disable-fileinfo

參數說明

prefix

PHP7安裝的根目錄

with-config-file-path

PHP7的配置文件目錄

執行完上面的配置命令後的結果如下圖所示:

執行上面命令的過程中會遇到一些依賴缺少的提示,下面列出我遇到的依賴問題:

錯誤:

configure:

error:

xml2-config

not

found.

Please

check

your

libxml2

installation.

解決:

zypper

install

libxml2-devel

錯誤:

configure:

WARNING:

unrecognized

options:

–with-mysql

解決:

取消這個選項,這個選項是不存在的

錯誤:

configure:

error:

jpeglib.h

not

found.

解決:

zypper

install

libjpeg-devel

錯誤:

configure:

error:

mcrypt.h

not

found.

Please

reinstall

libmcrypt.

解決:

zypper

install

libmcrypt-devel

錯誤:

checking

for

recode

support…

yes

configure:

error:

Can

not

find

recode.h

anywhere

under

/usr

/usr/local

/usr

/opt.

解決:

zypper

install

librecode-devel

總的來說,在配置的時候遇到沒有的就打開Yast搜一下,如果有的話就安裝,然後重新編譯看還需要那些,如果在Yast找不到,那就上網找一下Google。

編譯和安裝PHP7

make

make

install

其中,make之後可以選擇make

test。只是一個可選步驟,不執行不知道有什麼問題,不過筆者暫時還沒遇到。

查看安裝成功後的PHP7目錄

編譯安裝成功後,查看PHP7的安裝目錄`ls

/usr/local/php7`:

設置PHP7的配置文件

cp

/usr/local/src/php7/php.ini-production

/usr/local/php7/etc/php.ini

cp

/usr/local/src/sapi/fpm/init.d.php-fpm

/etc/init.d/php-fpm

cp

/usr/local/php7/etc/php-fpm.conf.default

/usr/local/php7/etc/php-fpm.conf

cp

/usr/local/php7/etc/php-fpm.d/

/usr/local/php7/etc/php-fpm.d/

設置環境變數

在/etc/profile

文件的最後一行加上

export

PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH

然後執行

source

/etc/profile

設置PHP日誌目錄和php-fpm進程文件(php-fpm.sock)目錄

mkdir

-p

/var/log/php-fpm/

mkdir

-p

/var/run/php-fpm

cd

/var/run/

chown

-R

nginx:nginx

php-fpm

將PHP設置為開機啟動

chmod

+x

/etc/init.d/php-fpm

chkconfig

php-fpm

on

可以用chkconfig命令查看開機啟動服務列表。

啟動PHP服務

service

php-fpm

start

通過ps

aux

|

grep

‘php’查看PHP是否啟動成功

至此,PHP7就安裝成功了,你也開始使用PHP7吧!

如何編譯安裝PHP擴展

一開始安裝PHP的時候,我們並不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。

安裝PHP擴展最簡單的辦法就是

sudo apt-get install php5-xxx

但有的時候並非我們所願,源裡面並沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。

這篇文章中我將介紹在本地Linux平台下編譯安裝PHP擴展的方法。

現在網站根目錄下創建 index.php 列印基本的配置信息,以驗證我們是否安裝成功。

配置編譯環境

我們需要安裝一些編譯必須的庫,還有 php-dev 版本

Ubuntu

sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev

Fedora

sudo yum install php-devel php-mysqlnd gcc libtool

RHEL

sudo yum install php-devel php-mysql gcc libtool

Suse

yast2 -i php5-pear php5-devel php5-mysql gcc

安裝擴展

PHP有兩種可供安裝的擴展:一種是PHP原生的但是默認沒有安裝的,另一種的第三方開發的擴展。

下面依次介紹兩種擴展的安裝方法:

安裝之前我們需要一份和當前機器上相同版本的PHP源碼

cd code

wget

tar xvjf php-5.5.9.tar.bz2

cd php-5.5.9

前往此處 下載相應的源碼包。

在 /ext 目錄下面可以看到所有PHP原生的擴展。

安裝原生擴展

以 PHP-intl 為例,這是PHP國際化的擴展。

為了安裝這個擴展我們需要先安裝ICU 庫

sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg

ICU 安裝成功之後進入/ext/intl 目錄:

cd intl

phpize

./configure –enable-intl

make

sudo make install

下面解釋一下上面的每個命令:

phpize : 是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊

./configure –enable-intl: 配置編譯環境,相當於告訴編譯器編譯PHP源碼的時候加上intl這個擴展。

make: 將會把源碼編譯成 intl.so

make install : 將會把 intl.so 移動到當前安裝的 PHP 的擴展目錄。

接下來我們要做的就是在php.ini中啟用這個擴展,這一步將會在最後給出示例。

安裝第三方擴展

將以這個 擴展為例,這個擴展主要實現了PHP識別條形碼的功能。

先安裝必要的依賴

sudo apt-get install pkg-config

git clone

cd mongo-php-driver

phpize

./configure

make

sudo make install

將會生成一個文件,將其拷貝到PHP的擴展目錄下面。

啟用擴展

在php.ini中啟用擴展的方式有很多:

直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。

也可以單獨建一個ini文件,然後在php.ini中包含這些文件就可以了。

下面介紹一下第二種方法:

cd `/etc/php5/mods-available`

這個目錄里可以放新建的ini文件,然後執行

sudo touch mongo.ini

echo “extension=mongo.so” | sudo tee -a mongo.ini

sudo touch intl.ini

echo “extension=intl.so” | sudo tee -a intl.ini

上面的命令將會創建ini文件,並且寫如相應的配置信息。

然後執行下面的命令啟用擴展即可(需要安裝 php5enmod 工具):

sudo php5enmod mongo

sudo php5enmod intl

如果未安裝 php5enmod 工具,則需要手動配置:

ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini

ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini

ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini

ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini

最後在執行一下重啟操作就可以了:

sudo service nginx restart

sudo service php5-fpm restart

如何在編譯好的PHP環境中安裝PHP擴展模塊

1、先進入php解壓縮後的源碼包中,找到要安裝的擴展模塊的目錄。

[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets

在sockets目錄下面以絕對路徑運行phpize程序,這時會自動生成sockets的configure程序,在sockets目錄下面可以看到。

[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize

2、進行編譯安裝

[root@redhat5 sockets]# ./configure –with-php-config=/home/webserver/php5.2.12/bin/php-config

[root@redhat5 sockets]#make

[root@redhat5 sockets]#make install

執行完make install屏幕上會提示sockets.so存放的路徑,然後把它複製到php的extensions目錄中,例如我的路徑為 /home/webserver/php5.2.12/lib/php/extensions

3、修改php.ini文件

找到extension_dir = “./” 這行,修改為:

extension_dir = “/home/webserver/php5.2.12/lib/php/extensions/”

然後再新增加一行:

extension=sockets.so

4、重啟apache即可生效。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200266.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-05 14:04
下一篇 2024-12-05 14:04

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種資料庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論