導航:首頁 > 編程語言 > php7configure

php7configure

發布時間:2023-02-22 19:15:26

A. ubuntu如何編譯安裝官方php7

.

$gitclonegit@github.com:php/php-src.gitphp-src
$cdphp-src
$./buildconf
$sudoapt--devapache2-devsystemtap-sdt-devopensslpkg-configlibssl-devlibcurl4-openssl-devlibbz2-devlibgdbm-devlibjpeg62libjpeg62-devlibpng12-0libpng12-devlibfreetype6-devlibicu-devlibiodbc2-devlibxslt1-dev

$./configure--prefix=/usr/local/php7/7.0.0--localstatedir=/usr/local/var--sysconfdir=/usr/local/etc/php/7--with-config-file-path=/usr/local/etc/php/7--with-config-file-scan-dir=/usr/local/etc/php/7/conf.d--mandir=/usr/local/php7/7.0.0/share/man--enable-bcmath--enable-calendar--enable-dba--enable-exif--enable-ftp--enable-gd-native-ttf--enable-intl--enable-mbregex--enable-mbstring--enable-shmop--enable-soap--enable-sockets--enable-sysvmsg--enable-sysvsem--enable-sysvshm--enable-wddx--enable-zip--with-freetype-dir=/usr/local/opt/freetype--with-gd--with-gettext=/usr/local/opt/gettext--with-iconv-dir=/usr--with-icu-dir=/usr/local/opt/icu4c--with-jpeg-dir=/usr/local/opt/jpeg--with-kerberos=/usr--with-libedit--with-mhash--with-ndbm=/usr--with-openssl=/usr/local/opt/openssl--with-pdo-odbc=unixODBC,/usr/local/opt/unixodbc--with-png-dir=/usr/local/opt/libpng--with-unixODBC=/usr/local/opt/unixodbc--with-xmlrpc--with-zlib=/usr/local/opt/zlib--with-apxs2=/usr/bin/apxs--libexecdir=/usr/local/php7/7.0.0/libexec--with-bz2=/usr--disable-debug--enable-fpm--with-fpm-user=_www--with-fpm-group=_www--with-curl--with-xsl=/usr--with-ldap--with-ldap-sasl=/usr--with-mysql-sock=/tmp/mysql.sock--with-mysqli=mysqlnd--with-pdo-mysql=mysqlnd--disable-opcache--enable-pcntl--enable-dtrace--disable-phpdbg--enable-zend-signals

$make
$sudomakeinstall
$php-v

B. php7新建擴展時,make編譯時報 unknown type name 'zend_string'

你希望用php7的環境編譯,但是你編輯的環境實際上是php5的。

php5 裡面沒有zend_string類型,用 char 替換,或者,修改你的php版本環境到php7

C. 如何在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-proction /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/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

設置環境變數
在/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吧!

D. 如何在PHP7中安裝mysql的擴展

你好,

1.去php網站上下載mysql擴展,
2.解壓並使用phpize工具初始化,編譯:
#解壓
tar xzvf mysql-45881bd.tar.gz
#進入mysql擴展目錄 from
cd mysql-45881bd/
#使用phpize初始化,我的phpize在/opt/目錄
/opt/php/bin/phpize
#編譯mysql擴展,使用mysql native driver作為mysql鏈接庫
./configure --with-php-config=/opt/php/bin/php-config --with-mysql=mysqlnd
make && make install
3.接下來,我們直接編輯php.ini文件,把mysql.so拷貝到php.ini的extension_dir中,然後在php.ini中加入extension=mysql.so
4.重啟php
成功之後,用phpinfo即可看到mysql擴展的信息

E. php7無法安裝memcache擴展 系統 centos-6.8 Nginx-1.10.2 PHP-7.0.13/5.6.28 memcached-1.4

一 下載需要的源碼包
所有安裝包均選用最新的。
1. 下載libevent2.0.22
點擊紅色部分下載
下載memcached1.4.24
點擊紅色部分,下載最新版本
下載php擴展memcache3.0.8
選擇需要的版本
二 安裝詳細步驟
首先將以上三個軟體包下載到/tmp目錄下
1. 安裝libevent
cd /tmp #首先進入到該下載包的目錄
tar zxvf libevent-2.0.22-stable.tar.gz #解壓包cd libevent-2.0.22-stable #進入到解壓的目錄./configure --prefix=/usr/local #編譯前配置,生成Makefile文件,路徑可自行更改make; make install #編譯+安裝
1
測試是否安裝成功
看到這些信息,表示成功啦
2. 安裝memcached
cd /tmp #首先進入到該下載包的目錄
tar zxvf memcached-1.4.24.tar.gz #解壓包
cd memcached-1.4.24 #進入到解壓的目錄
./configure –with-libevent=/usr/local #編譯前配置,生成Makefile文件,路徑必須與libevent中一致make; make install #編譯+安裝
1
測試是否安裝成功
表示成功的信息
通過以上操作,就完成了memcached伺服器的安裝。特別的簡單吧!現在就來搞一搞memcache的php擴展安裝吧3. 安裝擴展
cd /tmp #首先進入到該下載包的目錄
tar zxvf memcache-3.0.8.tgz #解壓包
cd memcache-3.0.8 #進入到解壓的目錄
/opt/lampp/bin/phpize #動態為php添加擴展。phpize路徑可能不一致,請根據自己的實際情況./configure –enable-memcache –with-php-config=/opt/lampp/bin/php-config –with-zlib-dir #php-config請根據自己環境情況填寫make; make install #編譯+安裝
1
完成以上步驟時,心情愉悅的點擊了enter,准備喝口水瀟灑一下,結果出現了一下錯誤(這也是我寫這篇博客的原因,要不都懶得記錄了)錯誤信息
看了下代碼錯誤信息,說是zlib.h找不到。找不到就給他安一個嘛。真是的安裝zlib
下載zlib-1.2.8.tar.gz
下載地址:http://www.zlib.net/
如圖:
紅色部分點擊
cd /tmp #首先進入到該下載包的目錄
tar zxvf zlib-1.2.8.tar.gz #解壓包
cd zlib-1.2.8 #進入到解壓的目錄
./configure --prefix=/usr/local/zlib
make; make install #編譯+安裝
1
再進行配置一下系統的文件,載入剛才編譯安裝的zlib生成的庫文件vi /etc/ld.so.conf.d/zlib.conf
加入如下內容後保存退出: /usr/local/zlib/lib也就是添加安裝目錄的文件路徑,庫文件。ldconfig 運行之後就會載入安裝的庫文件了。
OK,到這一步了,此時,重新在memcache的php擴展中執行make;make install命令如果看到以下信息,表示成功:
擴展安裝成功
三 配置php.ini文件
首先通過phpinfo函數,找到php.ini的路徑,我的是:/opt/lampp/etc/php.ini在其中添加如下內容:
修改extension_dir路徑:
extension_dir = 「/opt/lampp/lib/php/extensions/no-debug-non-zts-20121212/」
extension=memcache.so
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
然後重新啟動apache,再次通過phpinfo查看一下情況。如果有如下內容,表示配置成功:
信息
四 配置memcached伺服器
啟動memcached伺服器
memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid參數說明:
-d選項是啟動一個守護進程,
-m是分配給Memcache使用的內存數量,單位是MB,我這里是10MB,-u是運行Memcache的用戶,我這里是root,
-l是監聽的伺服器IP地址,如果有多個地址的話,我這里指定了伺服器的IP地址127.0.0.1,-p是設置Memcache監聽的埠,我這里設置了11211,最好是1024以上的埠,-c選項是最大運行的並發連接數,默認是1024,我這里設置了256,按照你伺服器的負載量來設定,-P是設置保存Memcache的pid文件,我這里是保存在 /tmp/memcached.pid2. 結束memcached進行
kill cat /tmp/memcached.pid
3. 檢查memcached是否已經啟動
看到綠色框中內容,就表示完成
五 測試php的memcache擴展
<?php
$mem = new Memcache;
$mem->connect("192.168.12.201", 13001);
$mem->set('key','This is a test!', 0, 60);$val = $mem->get('key');
echo $val;
?>
寫在後面:大家有興趣可以將session改為使用memcache來保存。php自身使用文件的方式,不太好,動不動文件大小總和就上G了。

F. PHP7.0怎麼通過打開擴展功能和mysql相連

第一步:進入php源碼中的"ext/mysql"目錄下

第二步:在當前目錄下運行phpize命令:/usr/local/php524/bin/phpize

phpize的規則:去哪個目錄下運行phpize文件,那麼就會在該目錄下生成一個configure文件。

第三步:運行剛才生成的configure文件

命令: ./configure --with-php-config=/usr/local/php524/bin/php-config --with-mysql=/usr/local/mysql/

這里最關鍵的是通過--with-mysql參數告訴mysql客戶端的位置。這樣才能生成mysql.so。

實驗的時候,沒有加這個參數,結果錯誤:

./configure --with-php-config=/usr/local/php524/bin/php-config

第四步:編譯生成.so文件

第五步:配置php引擎載入該擴展。

補充一下:就是去php.ini文件中修改一下配置,載入mysql.so這個擴展(這個擴展文件要放到php指定的擴展目錄下面去)

第六步:測試php引擎是否成功載入該擴展編寫文件phpinfo.php,內容是:<?phpehco phpinfo();?>

運行後,可以看到有如下信息顯示:mysqlMySQLSupport enabledActive PersistentLinks 0

Active Links 0

Client API version 5.1.55

MYSQL_MODULE_TYPE no value

MYSQL_SOCKET /tmp/mysql.sock

MYSQL_INCLUDE no value

MYSQL_LIBS no value

通過這樣的方式可以確認,php引擎已經成功載入了mysql.so擴展。

第七步:已經生成的mysql.so。編寫php代碼測試是否能連接mysql。

G. 如何在PHP7中安裝mysql的擴展

如何在PHP7中安裝mysql的擴展
1,去php網站上下載mysql擴展
2,解壓並使用phpize工具初始化,編譯:
#解壓
tar xzvf mysql-45881bd.tar.gz
#進入mysql擴展目錄
cd mysql-45881bd/
#使用phpize初始化,我的phpize在/opt/目錄
/opt/php/bin/phpize
#編譯mysql擴展,使用mysql native driver作為mysql鏈接庫
./configure --with-php-config=/opt/php/bin/php-config --with-mysql=mysqlnd
make && make install
5,編輯php.ini文件,把mysql.so拷貝到php.ini的extension_dir中,然後在php.ini中加入extension=mysql.so
6,重啟php

H. PHP7安裝intl擴展和linux安裝icu

一 PHP intl 是國際化擴展,是ICU 庫的一個包裝器。所以在安裝PHP intl擴展前要先安裝ICU庫,安裝ICU庫的具體步驟::

二 安裝intl擴展
1:進入php7.2.5源碼:

2:運行:phpize ,找不到命令時,將路徑補全:/usr/local/php7/bin/phpize(是php的安裝路徑),出現如下:

Configuring for:
PHP Api Version: 20100412
Zend Mole Api No: 20100525

Zend Extension Api No: 220100525

3:運行配置

./configure --enable-intl --with-icu-dir=/usr/local/icu/ --with-php-config=/usr/local/php7/bin/php-config

注:前面路徑為icu的安裝路徑,後面路徑為php的安裝路徑。

4:編譯擴展:make

5:復制擴展到目標文件夾

cp /user/local/php/php7.2.5/ext/intl/moles/intl.so /user/local/php7/lib/php/extensions/no-debug-non-zts-20170718

注意:也可以find / -name intl.so 查找。

6:設置擴展加入配置文件中:

[intl]
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/"

extension=intl.so

大坑:::採用phpinfo()時,無法找到配置的intl擴展,說明配置沒有生效。。。。。。

原因:在編譯php時沒有 --with-config-file-path=PATH 指定php.ini路徑,默認的路徑為/usr/local/php7/lib,只需要將php.ini放入這個默認的路徑即可。你也可以安裝配置php時加入,如下:

./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs
訪問:index.php中phpinfo()文件。

I. windows下怎麼安裝php7,php7裡面沒有這個php7apache2

1 打開(1)[程序和功能],然後點擊(2)[打開或關閉Windows功能] 如何在Windows7(IIS7)環境下安裝 PHP 2 勾選(1)[IIS管理控制台]和(2)CGI,然後點擊[確定]按鈕,等待安裝完成。這個過程可能需要系統安裝光碟。

J. centos的php7怎麼安裝memcached擴展

最近試了一下PHP7,在編譯和支持MySQL上都遇到一些問題,相信不少同學也同樣遇到,所以在這里聊一下這個過程。簡單來講編譯PHP7隻需要3步: 1、./buildconf --force 2、./configure 3、make && make install 1、3步,都沒啥好管的,configure是編譯的關鍵,涉及到PHP對一些庫的支持,這里我們使用最小的支持,包括MySQL: curl gd fpm mysqlnd 之所以把curl和gd拿來說,目的是要搞清楚,這些三方庫在編譯PHP之前得安裝好,可以直接使用yum安裝在默認位置,也可以編譯安裝到指定位置,yum安裝後,編譯時不用指定庫的安裝位置,關於安裝這些庫,可以搜索一下有很多。下面看看基本的configure ./configure --prefix=/apps/php/php7.0 --enable-mbstring --with-curl --with-gd --with-config-file-path=/apps/php/php7.0/etc/ -- enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd PHP-FPM 關於fpm,相信不用多說,用它來支持PHP是一個比較好的選擇,PHP5.3.3開始就已經內置了php-fpm,所以PHP7里當然也有,只需要--enable-fpm一下就可以了 php-fpm參數: --start 啟動 --stop 強制終止 --quit 平滑終止 --restart 重啟 --reload 重新平滑載入php的php.ini --logrotate 重新啟用log文件 MySQL支持 重點講一下這個,因為在它上面花了一點時間,不知道從哪一版本開始,PHP不在希望使用mysql的庫來支持mysql的連接,啟用了mysqlnd來支持,聽說比libmysql要快很多,PHP5.x還可以使用libmysql,PHP7貌似已經取消了支持,編譯都沒有了--with-mysql參數,只支持--with-mysqli和--with-pdo-mysql,可以通過查看configure的參數來知道: ./configure -help grep mysql 可以看到,PHP希望使用mysqlnd來支持MySQL,所以參數可以這樣寫: --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd mysqlnd是不需要mysql支持的,所以不用先安裝好mysql一樣可以編譯通過,啟動php-fpm,查看一下phpinfo,能看到mysqlnd和pdo_mysql表示php已經可以支持mysql了(這里用的是pdo,mysqli同理) 幾個問題 編譯問題:cc: Internal error: Killed (program cc1) 這個問題是第一次遇到,原來是我的阿里雲伺服器關掉了swap,內存不夠用,就報了這個錯。 解決辦法很簡單,configure時加上--disable-fileinfo參數就可以了。 PHP報找不到mysql服務 正如它所說,確實沒找到,看看phpinfo中pdo_mysql.default_socket項 mysql.sock在哪裡,再看一下mysql.sock的真正位置,使用命令:ps -efgrep mysql查看: 明顯不在一個位置上,我的正確位置是:/var/lib/mysql/mysql.sock 所以,修改一下php.ini,找到pdo_mysql.default_socket,改為你的實際位置,重啟一下php-fpm,很不幸,雖然php.ini有這個配置,修改後,竟然不行,最好是編譯的時候,指定mysql.socket的位置: --with-mysql-sock=/var/lib/mysql/mysql.sock 如果還不行,可以到/tmp目錄下建立一個mysql.sock的軟鏈接: ln -s /var/lib/mysql/mysql.sock mysql.sock 再重啟一次php-fpm,相信已經正常運行了。如果需要PHP支持的庫更多,可以再次編譯,在configure時把需要的支持加上,就是--with-xxx這中,記得如果是三方的,要先安裝這些庫才行哦。

閱讀全文

與php7configure相關的資料

熱點內容
安卓應用亂怎麼解決 瀏覽:261
windowssocket網路編程 瀏覽:731
什麼伺服器永遠不關網 瀏覽:592
程序員展銷會 瀏覽:15
天津銳志單片機 瀏覽:149
bestfit演算法 瀏覽:16
通達信能自己編程嗎 瀏覽:768
powlinux 瀏覽:921
什麼app手機鈴音免費 瀏覽:399
玩不壞的解壓器怎麼折 瀏覽:435
文件解壓驗證失敗 瀏覽:453
vivo演算法sp薪資 瀏覽:79
撥號服務是什麼app 瀏覽:429
華為有自己的編譯器 瀏覽:211
程序員退出自媒體 瀏覽:314
電腦加密圖片怎麼顯示沒有預覽 瀏覽:575
印刷加密穩定幣 瀏覽:525
這次不一樣pdf 瀏覽:670
linux大於1g的文件 瀏覽:869
程序員蒙圈圖片 瀏覽:153