CentOS 7.1編譯安裝PHP7____PHP

來源:互聯網
上載者:User
1 建立php使用者和使用者組,並在github下載php7源碼

首先建立一個名為php且沒有登入許可權的使用者和一個名為php的使用者組,然後去GitHub下載php7源碼包。

#######建立php使用者和php組[root@typecodes ~]# groupadd -r php && useradd -r -g php -s /bin/false -d /usr/local/php7 -M php######從GitHub下載php7安裝包[root@typecodes ~]# wget -c --no-check-certificate -O php7-src-master.zip https://github.com/php/php-src/archive/master.zip######開始解壓php7包[root@typecodes ~]# unzip -q php7-src-master.zip && cd php-src-master#####安裝編譯php7時需要的依賴包[root@typecodes php-src-master]# yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
2 PHP7編譯參數的配置

準備工作做好後,就開始正式配置php7的安裝明細了。注意,操作時一定要先把下面反斜線“\”後面添加的注釋文字去掉。。。

######開始組建組態檔案[root@typecodes php-src-master]# ./buildconfbuildconf: checking installation...buildconf: autoconf version 2.69 (ok)rebuilding aclocal.m4rebuilding configurerebuilding main/php_config.h.in######開始配置[root@typecodes php-src-master]# ./configure \--prefix=/usr/local/php7 \                              [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 \           [PHP7的配置目錄]--with-mysql-sock=/var/run/mysql/mysql.sock \           [PHP7的Unix socket通訊檔案]--with-mcrypt=/usr/include \--with-mhash \--with-openssl \--with-mysql=shared,mysqlnd \                           [PHP7依賴mysql庫]              --with-mysqli=shared,mysqlnd \                          [PHP7依賴mysql庫]--with-pdo-mysql=shared,mysqlnd \                       [PHP7依賴mysql庫]--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 \                                      [允許php會話session]--with-curl \                                           [允許curl擴充]--with-jpeg-dir \--with-freetype-dir \--enable-opcache \                                      [使用opcache緩衝]--enable-fpm \--enable-fastcgi \--with-fpm-user=nginx \                                 [php-fpm的使用者]--with-fpm-group=nginx \                                [php-fpm的使用者組]--without-gdbm \--disable-fileinfo

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

3 開始編譯和安裝PHP7

相對編譯安裝MySQL的大量CPU和記憶體消耗,PHP7的編譯安裝輕鬆多了,整個過程大約1個小時左右。

[root@typecodes php-src-master]# make clean && make && make install

看到下圖就代表已經編譯安裝好了PHP7。

4 選做步驟:執行make test命令進行測試

這是一個非必需的操作步驟,執行make test命令。

有趣的一件事就是:在test期間,會和一個IP地址72.52.91.14建立tcp串連,它對應著php官網http://www.php.net。

執行完make test命令後,最終的結果如下:

5 查看編譯成功後的PHP7安裝目錄

由於需要和MySQL進行通訊,所以需要特別查看PHP7安裝後的lib擴充庫目錄(/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/)。需要確保至少存在mysqli.so、pdo_mysql.so這兩個動態庫檔案,如下圖所示。

6 開始設定PHP7的設定檔php.ini、php-fpm.conf、www.conf和php-fpm指令碼

可以用編譯後的設定檔複製到PHP7的配置目錄(/usr/local/php7/etc/),推薦使用《PHP7中php.ini、php-fpm和www.conf的配置》文中整理的3個PHP7設定檔和php-fpm服務控制指令碼。

#######方法一:直接使用編譯後未經最佳化處理的配置[root@typecodes php-src-master]# cp php.ini-production /usr/local/php7/etc/php.ini[root@typecodes php-src-master]# cp /root/php-src-master/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm[root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf[root@typecodes php-src-master]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf#######方法二:使用https://typecodes.com/web/php7configure.html文中的配置 [root@typecodes php-src-master]# mv ~/php.ini /usr/local/php7/etc/php.ini && mv ~/php-fpm /etc/init.d/php-fpm[root@typecodes php-src-master]# mv ~/php-fpm.conf /usr/local/php7/etc/php-fpm.conf && mv ~/www.conf /usr/local/php7/etc/php-fpm.d/www.conf
7 添加php的環境變數

將php編譯產生的bin目錄添加到當前Linux系統的環境變數中

[root@typecodes ~]# echo -e '\nexport PATH=/usr/local/php7/bin:/usr/local/php7/sbin:$PATH\n' >> /etc/profile && source /etc/profile
8 設定PHP日誌目錄和php-fpm進程檔案(php-fpm.sock)目錄

其中,設定php-fpm進程目錄的使用者和使用者組為nginx,並建立php會話session目錄。

#######設定PHP日誌目錄和php-fpm的運行進程ID檔案(php-fpm.sock)目錄[root@typecodes ~]# mkdir -p /var/log/php-fpm/ && mkdir -p /var/run/php-fpm && cd /var/run/ && chown -R nginx:nginx php-fpm#######修改session的目錄配置[root@typecodes etc]# mkdir -p /var/lib/php/session[root@typecodes etc]# chown -R nginx:nginx /var/lib/php
9 設定PHP開機啟動以及測試組態檔案是否正確
######配置開機自啟動,增加到主機sysV服務[root@typecodes php-src-master]# chmod +x /etc/init.d/php-fpm[root@typecodes php-src-master]# chkconfig --add php-fpm[root@typecodes php-src-master]# chkconfig php-fpm on######測試PHP的設定檔是否正確合法[root@typecodes sbin]# php-fpm -t[03-May-2015 17:50:04] NOTICE: configuration file /usr/local/php7/etc/php-fpm.conf test is successful
10 啟動php服務

在完成上面的操作後,就可以正式使用php服務了。啟動php進程服務的命令如下:

[root@typecodes sbin]# service php-fpm startStarting php-fpm  done

然後可以通過命令ps -aux|grep php查看是否成功(圖中的php-fpm進程數和進程使用者nginx都是由www.conf中pm.start_servers和user的值分別決定的):

11 查看PHP7版本資訊

最後,可以通過命令php -v查看當前PHP版本資訊,圖中可以看到當前PHP7還使用了Zend OPcache緩衝,是因為在php.ini檔案中添加了zend_extension=opcache.so配置。

根據前文 configure 編譯參數設定,安裝後的PHP7設定檔所在路徑是 /usr/local/php7/etc 。該目錄下會有兩個設定檔: php-fpm.conf 和 php.ini ,以及一個檔案夾 php-fpm.d (包含 www.conf 檔案)。

因此,這篇文章主要對這三個PHP設定檔的進行簡單說明,具體的配置過程見本文末尾的 附錄 部分。

1 配置php.ini

php.ini是php運行核心設定檔:

######避免PHP資訊暴露在http頭中expose_php = Off######避免暴露php調用mysql的錯誤資訊display_errors = Off######在關閉display_errors後開啟PHP錯誤記錄檔(路徑在php-fpm.conf中配置)log_errors = On######設定PHP的擴充庫路徑extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/"######設定PHP的opcache和mysql動態庫zend_extension=opcache.soextension=mysqli.soextension=pdo_mysql.so######設定PHP的時區date.timezone = PRC######開啟opcache[opcache]; Determines if Zend OPCache is enabledopcache.enable=1######設定PHP指令碼允許訪問的目錄(需要根據實際情況配置);open_basedir = /usr/share/nginx/html;

2 配置php-fpm.conf

php-fpm.conf是 php-fpm 進程服務的設定檔:

######設定錯誤記錄檔的路徑error_log = /var/log/php-fpm/error.log######引入www.conf檔案中的配置include=/usr/local/php7/etc/php-fpm.d/*.conf

3 配置www.conf(在php-fpm.d目錄下)

www.conf這是 php-fpm 進程服務的擴充設定檔:

######設定使用者和使用者組user = nginxgroup = nginx######根據nginx.conf中的配置fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;設定PHP監聽; listen = 127.0.0.1:9000   #####不建議使用listen = /var/run/php-fpm/php-fpm.sock######開啟慢日誌slowlog = /var/log/php-fpm/$pool-slow.logrequest_slowlog_timeout = 10s######設定php的session目錄(所屬使用者和使用者組都是nginx)php_value[session.save_handler] = filesphp_value[session.save_path] = /var/lib/php/session

4 附錄

在前文  已經說明了,目前已經把這個關於Nginx、MySQL和PHP配置的全部託管在GitHub和coding.net上,地址如下:

GitHub地址: https://github.com/vfhky/mylnmp ;

Coding地址: https://coding.net/u/vfhky/p/mylnmp/git 。

文章來源:http://www.tuicool.com/articles/NjmQNj6

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.