欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux 6 下編譯安裝 PHP 5.6實(shí)例詳解

 更新時間:2017年04月25日 08:42:58   投稿:lqh  
這篇文章主要介紹了Linux 6 下編譯安裝 PHP 5.6實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

Linux 6 下編譯安裝 PHP 5.6實(shí)例詳解

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點(diǎn),利于學(xué)習(xí),使用廣泛,主要適用于Web開發(fā)領(lǐng)域。PHP以其開發(fā)源代碼,免費(fèi),快捷,跨平臺,高效,面向?qū)ο螅瑥?qiáng)大的動態(tài)圖像創(chuàng)建等功能深受廣大開發(fā)者的喜愛。本文描述基于CentOS 6.7下編譯安裝PHP 5.6.9,同樣也適用于CentOS 7下安裝。

一、相關(guān)依賴包安裝

1、演示環(huán)境


# more /etc/redhat-release 
CentOS release 6.7 (Final)

2、擴(kuò)展支持(mcrypt、mhash擴(kuò)展和libevent)
如果想讓編譯的php支持mcrypt、mhash擴(kuò)展和libevent,需要安裝以下包
    libmcrypt
    libmcrypt-devel
    mhash
    mhash-devel

說明:
mcrypt擴(kuò)展庫可以實(shí)現(xiàn)加密解密功能,就是既能將明文加密,也可以密文還原。
mhash是基于離散數(shù)學(xué)原理的不可逆向的php加密方式擴(kuò)展庫,其在默認(rèn)情況下不開啟。
mhash的可以用于創(chuàng)建校驗(yàn)數(shù)值,消息摘要,消息認(rèn)證碼,以及無需原文的關(guān)鍵信息保存(如密碼)等。

centos源不能安裝libmcrypt-devel,由于版權(quán)的原因沒有自帶mcrypt的包
可以使用第三方源,這樣還可以使用yum來安裝
安裝第三方y(tǒng)um源
    # wget http://www.atomicorp.com/installers/atomic
    # sh ./atomic
使用yum命令安裝
    # yum install php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel

3、libevent相關(guān)包
可以根據(jù)需要安裝libevent,系統(tǒng)一般會自帶libevent,但版本有些低。因此可以升級安裝如下兩個rpm包。
    # yum install libevent libevent-devel

說明:
libevent是一個異步事件通知庫文件,其API提供了在某文件描述上發(fā)生某事件時或其超時時執(zhí)行回調(diào)函數(shù)的機(jī)制
它主要用來替換事件驅(qū)動的網(wǎng)絡(luò)服務(wù)器上的event loop機(jī)制。
目前來說, libevent支持/dev/poll、kqueue、select、poll、epoll及Solaris的event ports。

4、支持xml的相關(guān)包
支持xml的rpm包
bzip2 是一個基于Burrows-Wheeler 變換的無損壓縮軟件能夠高效的完成文件數(shù)據(jù)的壓縮
libcurl主要功能就是用不同的協(xié)議連接和溝通不同的服務(wù)器,也就是相當(dāng)封裝了的sockPHP 
libcurl允許你用不同的協(xié)議連接和溝通不同的服務(wù)器
    # yum install libxml2 libxml2-devel bzip2-devel libcurl-devel

5、圖形相關(guān)的rpm包
通常對應(yīng)的錯誤提示:JIS-mapped Japanese font support in GD
    # yum install libjpeg-devel libpng-devel freetype-devel

二、編譯安裝php-5.6.9

首先下載源碼包至本地目錄,下載位置http://mirrors.sohu.com/php/
# pwd
  /usr/local/src
# tar -xf php-5.6.9.tar.gz
# cd ..
# ~ln -sv ./src/php-5.6.9 php~  ###說明:考慮編譯后的簡潔,此命令移除@20160729 
# cd php/
# ./configure \       ###說明:編譯的內(nèi)容被調(diào)整@20160729
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-opcache \
--enable-fpm \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir

###有關(guān)編譯配置項(xiàng)的詳細(xì)描述:https://segmentfault.com/a/1190000002717262
# make && make install
###以下為安裝完畢之后的提示信息
    Installing shared extensions: 
     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
    Installing PHP CLI binary:   /usr/local/php/bin/
    Installing PHP CLI man page:  /usr/local/php/php/man/man1/
    Installing PHP FPM binary:   /usr/local/php/sbin/
    Installing PHP FPM config:   /usr/local/php/etc/
    Installing PHP FPM man page:  /usr/local/php/php/man/man8/
    Installing PHP FPM status page:  /usr/local/php/php/php/fpm/
    Installing PHP CGI binary:   /usr/local/php/bin/
    Installing PHP CGI man page:  /usr/local/php/php/man/man1/
    Installing build environment: /usr/local/php/lib/php/build/
    Installing header files:    /usr/local/php/include/php/
    Installing helper programs:  /usr/local/php/bin/
     program: phpize
     program: php-config
    Installing man pages:     /usr/local/php/php/man/man1/
     page: phpize.1    ### Author : Leshami
     page: php-config.1  ### Blog  : http://blog.csdn.net/leshami
    Installing PEAR environment:   /usr/local/php/lib/php/
    [PEAR] Archive_Tar  - installed: 1.3.12
    [PEAR] Console_Getopt - installed: 1.3.1 
    [PEAR] Structures_Graph- installed: 1.0.4 
    [PEAR] XML_Util    - installed: 1.2.3
    [PEAR] PEAR      - installed: 1.9.5
    Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
    You may want to add: /usr/local/php/lib/php to your php.ini include_path
    /usr/local/php/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
    ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
    Installing PDO headers:     /usr/local/php/include/php/ext/pdo/

###php配置
    php.ini是php運(yùn)行核心配置文件
    php-fpm.conf是php-fpm進(jìn)程服務(wù)的配置文件

# cp php.ini-production /usr/local/php/etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm

###fpm測試php配置
# /usr/local/php/sbin/php-fpm -t
[23-May-2016 20:03:52] NOTICE: 
configuration file /usr/local/php/etc/php-fpm.conf test is successful

# chkconfig --add php-fpm
# chkconfig php-fpm on
# service php-fpm start
    Starting php-fpm done
# ps -ef|grep php
    root 45690 1 0 20:07 ? 00:00:00 php-fpm: master process(/usr/local/php/etc/php-fpm.conf)                                  
    nobody 45691 45690 0 20:07 ?   00:00:00 php-fpm: pool www                                                      
    nobody 45692 45690 0 20:07 ?   00:00:00 php-fpm: pool www                                                      
    root  45694  3441 0 20:07 pts/4 00:00:00 grep php

# netstat -nltp|grep 9000
    tcp 0  0 127.0.0.1:9000  0.0.0.0:*  LISTEN  45690/php-fpm  

三、配置apache訪問PHP

###開啟以下模塊
# vim /etc/httpd24/httpd.conf   ###注意此處,我這里是單獨(dú)編譯安裝的httpd2.4版本,所以路徑有所不同
    LoadModule proxy_module modeles/mod_proxy.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

    AddType application/x-httpd-php .php  
    AddType application/x-httpd-php-source .phps

    ProxyRequests Off   ###關(guān)閉正向代理,開啟下行的反向代理
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1

# service httpd24 restart
    Stopping httpd24:       [ OK ]
    Starting httpd24:       [ OK ]

四、驗(yàn)證PHP

###編寫一個php頁面測試
# echo "
> <html>
> <h1>This is a php test page.</h1>
> <?php
> phpinfo();
> ?>
> </html>">>/usr/local/apache/htdocs/index.php 

###測試PHP
# curl -I http://localhost:90/index.php
HTTP/1.1 200 OK
Date: Fri, 15 Jul 2016 03:16:50 GMT
Server: Apache/2.4.9 (Unix)
X-Powered-By: PHP/5.6.9
Content-Type: text/html; charset=UTF-8

五、對于本機(jī)未安裝mysql數(shù)據(jù)庫的情形(補(bǔ)充@20160718)

PHP5.3以上版本,為了鏈接MySQL數(shù)據(jù)庫,可以指定mysqlnd,這樣在本機(jī)就不需要先安裝MySQL或MySQL開發(fā)包。
mysqlnd從php 5.3開始可用,可以編譯時綁定到它(而不用和具體的MySQL客戶端庫綁定形成依賴)。
從PHP 5.4開始,對于未明確指定--with-mysql的情形,mysql本地驅(qū)動將會被安裝。
可以參考如下配置:

./configure        \ ###修改@20160729
  ..........       \ ###參數(shù)同上,僅僅是mysql相關(guān)參數(shù)值設(shè)置為mysqlnd
--with-mysql       \ ###相當(dāng)于該參數(shù)值為mysqlnd
--with-mysqli       \ ###相當(dāng)于該參數(shù)值為mysqlnd
--with-pdo-mysql     \ ###相當(dāng)于該參數(shù)值為mysqlnd

有關(guān)mysqlnd可以參考:
http://php.net/manual/zh/mysqli.overview.php#mysqli.overview.mysqlnd

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論