1. 程式人生 > >LAMP架構PHP原始碼安裝

LAMP架構PHP原始碼安裝

11月13日任務 11.10/11.11/11.12 安裝PHP5 11.13 安裝PHP7  

安裝php

安裝php5

PHP官網www.php.net; 當前主流版本為5.6/7.1

  1. 下載並解壓
[[email protected] src]#  wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
[[email protected] src]# tar -zxvf php-5.6.30.tar.gz
  1. 編譯、安裝
# libmcrypt-devel包在epel倉庫內,如果系統內還沒有安裝過epel倉庫,執行yum install -y epel-release進行安裝
#[[email protected] php-5.6.30]# yum install -y epel-release
 [[email protected] php-5.6.30]# yum install -y libxml2-devel openssl-devel bzip2-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
 
 [
[email protected]
php-5.6.30]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif [
[email protected]
php-5.6.30]# echo $? 0 [[email protected] php-5.6.30]# make [[email protected] php-5.6.30]# make install

檢視php編譯資訊

[[email protected] php-5.6.30]# /usr/local/php/bin/php -i

# 正常情況下使用php.ini-production,開發環境可以使用php.ini-development
[[email protected] php-5.6.30]# cp php.ini-production /usr/local/php/etc/php.ini

php軟體是以模組的形式安裝進apache的,在/usr/local/apache2.4/conf/httpd.conf檔案內的

檢視php是否被apache載入

[[email protected] php-5.6.30]# cat /usr/local/apache2.4/conf/httpd.conf | grep php
LoadModule php5_module        modules/libphp5.so

安裝PHP7

一個apache伺服器內可以同時安裝php5和php7,但是隻能執行其中一個,另外一個需要註釋掉apache配置檔案內對應的LoadModule行

下載、安裝PHP7

[[email protected] src]#  wget http://cn2.php.net/distributions/php-7.1.6.tar.gz
[[email protected] src]#  tar -zxvf php-7.1.6.tar.gz

編譯安裝

# php7內已經移除了--with-mysql引數
[[email protected] src]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif 
[[email protected] src]# make && make install

apache生成php7模組

[[email protected] src]# ls /usr/local/apache2.4/modules/libphp7.so

檢視php7所載入的模組

[[email protected] src]#  /usr/local/php7/bin/php -m

apache伺服器可以存在2種版本的php,通過在apache的配置檔案中註釋掉相應的行來關閉某個版本的php模組

[[email protected] src]#  vim /usr/local/apache2.4/conf/httpd.conf

在LoadModule行前加#註釋

軟體安裝時遇到的問題

編譯時無法執行apxs指令碼

Sorry, I cannot run apxs.  Possible reasons follow:

1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path
3. Apache was not built using --enable-so (the apxs usage page is di

The output of /usr/local/apache/bin/apxs follows:
./configure: /usr/local/apache/bin/apxs: /replace/with/path/to/perl/
configure: error: Aborting

解決方法:

該報錯是由於perl直譯器路徑無效 -- “/replace/with/path/to/perl/”
修改/usr/local/apache/bin/apxs檔案,將首行改為#!/usr/bin/apxs -w

相關依賴包未安裝

  1. libxml2包
configure: error: xml2-config not found. Please check your libxml2 installation.

解決:安裝libxml2包
yum install -y libxml2-devel
  1. openssl包
configure: eror: Cannot find OpenSSL's <evp.h>

解決:安裝openssl包
yum install -y openssl-devel
  1. bzip2包
configure: error: Please reinstall the BZip2 distribution

解決:安裝bzip2包
yum install -y bzip2-devel
  1. libjpeg包
configure: error: jpeglib.h not found.

解決:安裝libjpeg包(libjpeg-turbo-devel)
yum install -y libjpeg-devel
  1. libpng包
configure: error: png.h not found.

解決:安裝libpng包
yum install -y libpng-devel
  1. freetype包
configure: error: freetype-config not found.

解決:安裝freetype包
yum install -y freetype-devel

缺少libmcrypt包

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解決:安裝libmcrypt包(在epel擴充套件源內,未安裝需yum install -y epel-release)
yum install -y libmcrypt-devel