天天看點

在已有lnmp環境的基礎上安裝PHP7

  • Centos7.6系統
  • 已經安裝lnmp一鍵環境
  • 想裝個apache跑php7, apache安裝在這 https://www.cnblogs.com/lz0925/p/11227063.html
  • 要求已經安裝gcc,沒有的看這:yum install gcc-c++
  • /usr/local/src 目錄,我一般用來存放源碼包等各種下載下傳的檔案。
  • /usr/local 一般作為軟體安裝目錄

開始

- cd /usr/local/src/
- wget https://www.php.net/distributions/php-7.1.30.tar.gz
- tar -zxvf php-7.1.30.tar.gz
- mv php-7.1.30 php7
- cd php7/
           
  • 編譯相關參數,并安裝(注意--with-apxs2=/usr/local/httpd/bin/apxs, 這裡的路徑寫成你自己apache的路徑)
./configure --prefix=/usr/local/php7 --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 --with-apxs2=/usr/local/httpd/bin/apxs --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip

make && make install

如果出現 undefined reference to `libiconv_open\' 的問題

vim Makefile  打開安裝配置檔案
然後在 EXTRA_LIBS 這行的末尾加上-liconv,  然後繼續make 即可
           

配置php7服務

#配置檔案
cp php.ini-development /usr/local/php/etc/php.ini
#php-fpm 服務
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
 
chkconfig --add php-fpm
chkconfig on php-fpm
service php-fpm start
           

添加軟連接配接,

  • ln -s /usr/local/php7/bin/php(你想要換成的php版本的路徑) /usr/sbin/php7(最後一個php可以換成你自己喜歡的名字,最好php7吧)
  • export PATH="$PATH:/usr/sbin/php7"(将上面你準備好的連接配接加進去就可以了,中間:冒号别漏了,用來做分割的)
  • php7 -v 檢視版本

PS ,如果中間缺少什麼依賴,請安裝即可

将php7與apache2.4關聯

  • 、修改apache配置檔案
httpd.conf											
  1、在LoadModule後面添加:LoadModule php7_module modules/libphp7.so //不添加則通路.php檔案将會變成下載下傳
  2、在DirectoryIndex後面添加:index.php
  3、 在AddType application/x-gzip .gz .tgz後面添加:AddType application/x-httpd-php .php //.php前面有一個空格
           

修改apache目錄的權限

httpd.conf	
<Directory />
    AllowOverride All
    Require all granted
</Directory>