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
yum install httpd httpd-devel -y
htttpd-devel中含有apsx命令,能夠方便的將 php 做爲模塊編譯加載到 apache中linux
=====================================================================nginx
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
=====================================================================
前幾天試着裝了一次,雖然最後也裝好了但感受亂亂的,在鳥哥的指導下才知道 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
=======================================================================
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
安裝完成
=====================================================================
#! /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 服務