PHP7.0.0正式版編譯安裝LAMP/LNMP【CentOS 7】

apache mysql我就不編譯了 網上有幾篇7.0rc版的文章 但編譯參數有問題,並不適合7.0正式版,在這裏作一下修正,反正你按我給你的一步步的作,不會有錯的....php

前期準備 基本上很全了 你能夠按本身的需求刪減一些html

yum groupinstall "Development tools"
yum install -y gcc gcc-c++ make cmake automake autoconf gd file bison patch mlocate flex \
diffutils zlib zlib-devel pcre pcre-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel libcurl libcurl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel openssl openssl-devel \
openldap openldap-devel nss_ldap openldap-clients openldap-servers \
openldap-devellibxslt-devel kernel-devel libtool-libs \
readline-devel gettext-devel libcap-devel php-mcrypt libmcrypt libmcrypt-devel recode-devel

=====================================================================mysql

安裝 apache

yum install httpd httpd-devel -y

  htttpd-devel中含有apsx命令,能夠方便的將 php 做爲模塊編譯加載到 apache中linux

=====================================================================nginx

安裝 libmcrypt mhash mcrypt

CentOS 7 默認不包含這三個模塊,因此得手動安裝,注意mcrypt依賴前二者c++

libmcrypt-2.5.8.tar.gz算法

http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gzsql

mhash-0.9.9.tar.gzapache

http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gzwindows

mcrypt-2.6.8.tar.gz

http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/

問題:configure: error: *** libmcrypt was not found

 

解決辦法:

#
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

或者

ldconfig

=====================================================================

php 編譯安裝

前幾天試着裝了一次,雖然最後也裝好了但感受亂亂的,在鳥哥的指導下才知道 mysql 擴展已經被 7.0 廢除了,此後使用 mysqli pdo-mysql 而且推薦使用 php 自帶的 mysqlnd 驅動 配置參數,而且 php-fpm 也已經被 php 歸入,直接在選項中開啓便可,我在官網看 --enable-cgi 是默認配置且 --enable-fast-cgi 已經被廢除,--enable-cgi 便可讓 fpm 模式調用

ladp在64的系統裏可能存在寫庫關聯問題,執行下面的命令

cp -frp /usr/lib64/libldap* /usr/lib/

部分參數釋意

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mcrypt \                               # mcrypt 加密算法
--with-mhash \                                # mhash 加密算法
--with-mysqli=mysqlnd \                       # 推薦使用 mysqlnd 驅動 mysql已被廢棄
--with-pdo-mysql=mysqlnd \                    # 推薦使用 mysqlnd 驅動 mysql已被廢棄
--with-gd \                                   # gd庫
--with-iconv \
--with-zlib \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--with-apxs2=/usr/bin/apxs \                  # 讓 php 直接編譯到 apache 的模塊中去
--with-apache=/etc/httpd \                    # 靜態編譯apache的模塊 編譯完後去httpd.conf中加載so
--with-openssl \
--with-xmlrpc \
--with-bz2 \
--with-gettext \                              # 多語言應用開發
--with-readline \                             # readline只能在linux下win使用stream_get_line
--with-recode \
--with-ldap \                                   # 目錄協議
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-fpm \                                  # php-fpm 進程管理器
--enable-cgi \                                  # 默認開啓php的cgi sapi  
--enable-xml \
--enable-bcmath \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \                                #pcntl 多進程擴展模塊
--enable-sockets \
--enable-sysvmsg \                              #消息隊列
--enable-sysvshm \                              #內存共享模塊 linux 
--enable-shmop \                                #內存共享模塊 linux/windows
--enable-zip \
--enable-soap \
--enable-session \
--enable-opcache \                              # opcache 緩存優化
--enable-cli                                    # cli 其實默認就是開啓的 若禁用同時要--without-pear

編譯參數

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mcrypt \
--with-mhash \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gd \                                  
--with-iconv \
--with-zlib \
--with-curl \
--with-jpeg-dir \
--with-freetype-dir \
--with-apxs2=/usr/bin/apxs \                  
--with-openssl \
--with-xmlrpc \
--with-bz2 \
--with-gettext \
--with-readline \
--with-recode \
--with-ldap \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-fpm \
--enable-cgi \
--enable-xml \
--enable-bcmath \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--enable-pcntl \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvshm \
--enable-shmop \
--enable-zip \
--enable-soap \
--enable-session \
--enable-opcache \
--enable-cli

應該不會有什麼問題

=========================================================================

注意的地方:

1:--enable-cgi --disable-cgi : 

在5.3.0後 enable-cgi 等同於--enable-fastcgi 也就是說此後不須要在額外聲明 --enable-fastcgi,且 --enable-force-cgi-redirect 也默認有效且被廢棄在編譯選項中,要禁用需修改php.ini的cgi.force_redirect爲0

2:--with-apxs2  --with-apache:

--with-apxs2是直接把php編譯到apache的模塊中去  --with-apache是置頂apache的serverRoot路徑,生成apache的php模塊 修改apache配置文件手動加載:

AddType application/x-httpd-php .php .html .htm

3:php7.0廢除了--with-mysql編譯選項,且推薦使用mysqlnd驅動

=====================================================================

複製源碼包中的 php.ini-development php.ini-production 至 php 安裝目錄下的 etc 中,或者放在系統的 /etc 下也能夠

將 php 的 bin 和 sbin 加入環境變量

echo "export PATH=$PATH:/usr/local/php/bin:/usr/local/php/sbin" >> /etc/profile
source profile

=======================================================================

安裝mariadb(mysql)

yum -y install mariadb mariadb-server

啓動mariadb後進行初始化設置

mysql_secure_installation

測試

vi /var/www/html/index.php
<?php
$con = new mysqli('127.0.0.1', 'root', 'passwd', '', 3306);
$resultObj = $con->query('show databases;');
var_dump($resultObj->fetch_assoc());
?>
php -v
PHP 7.0.0 (cli) (built: Dec  8 2015 16:38:37) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

安裝完成

=====================================================================

php-fpm 服務腳本

#! /bin/sh
# Comments to support chkconfig on CentOS
# chkconfig: 2345 65 37
#
set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="php-fpm daemon"
NAME=php-fpm

#php-fpm命令的路徑
DAEMON=/usr/local/php/sbin/$NAME

#php-fpm的配置文件
CONFIGFILE=/usr/local/php/etc/php-fpm.conf

#php-fpm的pid文件
PIDFILE=/usr/local/php/var/run/$NAME.pid

SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

d_start() {
  $DAEMON -y $CONFIGFILE || echo -n " already running"
}

d_stop() {
  kill -QUIT `cat $PIDFILE` || echo -n " not running"
}

d_reload() {
  kill -HUP `cat $PIDFILE` || echo -n " can't reload"
}

case "$1" in
  start)
        echo -n "Starting $DESC is success"
        d_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC is success"
        d_stop
        echo "."
        ;;
  reload)
        echo -n "Reloading $DESC configuration..."
        d_reload
        echo "reloaded."
  ;;
  restart)
        echo -n "Restarting $DESC is success"
        d_stop
        sleep 1
        d_start
        echo "."
        ;;
  *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
         exit 3
        ;;
esac

這樣咱們能夠使用 

service php-fpm start|stop|restart

來管理 php-fpm 服務

相關文章
相關標籤/搜索