1. 程式人生 > >CentOS 7編譯安裝php7.0.7以及可能遇到的問題的解決方案

CentOS 7編譯安裝php7.0.7以及可能遇到的問題的解決方案

CentOS 7編譯安裝php7.0.7

  • 下載並解壓php
  • 編譯安裝
  • 修改配置檔案
  • 啟動服務
  • 過程中可能遇到的問題解決

1.下載並解壓php

下載地址

http://cn2.php.net/distributions/php-7.0.7.tar.gz 

存放下載目錄

cd /harddisk/Downloads
wget http://cn2.php.net/distributions/php-7.0.7.tar.gz
#等待下載完成後解壓
tar -zxvf php-7.0.7.tat.gz

2.編譯安裝

1、安裝依賴包

# yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel openldap-devel libmcrypt-devel

2、對即將安裝的軟體進行配置,檢查當前的環境是否滿足要安裝軟體的依賴關係

cd php-7.0.7

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir
=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd
--enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-zlib --enable-pdo --with-pdo-mysql --enable-opcache

以上部分配置說明:
–prefix=/usr/local/php #表示php安裝目錄
–with-iconv=/usr/local #libiconv可能需另外安裝
–with-mysql=/usr/local/mysql
–with-mysqli=/usr/local/mysql/bin/mysql_config #這是mysql的安裝目錄和配置

3、編譯(必須在以上操作沒有出錯再進行)

make

4、安裝

make install

3.修改配置檔案

1、配置php-fpm.conf(php-fpm 程序服務的配置檔案)

cd /usr/local/php/etc/    
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
#修改pid = tmp/php-fpm.pid(啟動時如果報錯可能需要手動建立tmp資料夾)

2、配置www.conf(php-fpm 程序服務的擴充套件配置檔案)

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
vim www.conf
#設定使用者和使用者組為www
user = www
group = www

3、從下載php解壓資料夾複製php.ini-development到/usr/local/php/etc下,並改名為php.ini

4、php快捷方式,在/usr/local/bin建立軟連結php/bin和php/sbin

4.啟動服務

1、建立服務啟動指令碼

cd /usr/lib/systemd/system
vim php-fpm.service

#輸入以下內容
[Unit]
Description=php
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm

[Install]
WantedBy=multi-user.target

#儲存退出
:wq

2、啟動服務

systemctl start php-fpm.service

5.過程中可能遇到的問題解決

1、安裝libiconv

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local
make
make install

2、安裝libiconv過程中make出錯

cd srclib/
sed -i -e '/gets is a security/d' ./stdio.in.h
cd ../
make

3、PHP編譯時錯誤:Don’t know how to define struct flock on this system, set –enable-opcache=no

解決方法是:

sudo ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/
sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/

(注意,如果是64位的系統,應該軟連結到/usr/lib64/目錄下。並且,第二個有可能不是libmysqlclient.so.20,最後兩位數有可能是其他,根據mysql的版本而變化)

還有一種可能是/usr/local/lib下的庫檔案沒有載入,可如下操作:

vim /etc/ld.so.conf.d/local.conf     # 編輯庫檔案(該檔案可能不存在,不存在則建立一個新的)
/usr/local/lib                       # 新增該行
/usr/local/lib64                     # 64位系統的除了新增上一行,還需要新增此行
:wq                                  # 儲存退出
ldconfig -v                          # 使之生效