linux ubuntu php编译过程

摘要:linux ubuntu php详细编译过程如下...

作者:LoveCode标签:linux,ubuntu,php,编译过程

linux ubuntu php详细编译过程如下:

Update the package index:
# sudo apt-get update
Install libxml2-dev deb package:
# sudo apt-get install libxml2-dev
./configure

后,直接make可能会出现:

libtool: link: `ext/date/php_date.lo' is not a valid libtool object

的错误。

make clean

一下然后再make,即可。原因未知,可能是某些脚本执行顺序的问题?


注意:安装php7的时候有几处配置可能要先安装其它依赖包

sudo apt-get install openssl
sudo apt-get install libssl-dev


安装libpng

wget http://prdownloads.sourceforge.net/libpng/libpng-1.5.4.tar.gz?download
tar xzf libpng-1.5.4.tar.gz
cd libpng-1.5.4
./configure --prefix=/usr/local/libpng
sudo make $ make install

sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get -y install libfreetype6-dev
sudo apt-get install libxslt-dev libxml2-dev  

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
sudo apt-get install libxslt-devel

//重新编译php:--with-jpeg-dir=/usr/local/libpng


可选编译项:

./configure --prefix=/usr/local/php \
 --with-curl \
 --with-gd \
 --with-gettext \
 --with-iconv-dir \
 --with-kerberos \
 --with-libdir=lib64 \
 --with-libxml-dir \
 --with-mysql=/usr/local/mysql \
 --with-mysqli \
 --with-openssl \
 --with-pcre-regex \
 --with-pdo-mysql \
 --with-pdo-sqlite \
 --with-pear \
 --with-png-dir \
 --with-xmlrpc \
 --with-xsl \
 --with-zlib \
 --enable-bcmath \
 --enable-libxml \
 --enable-inline-optimization \
 --enable-gd-native-ttf \
 --enable-mbregex \
 --enable-mbstring \
 --enable-opcache \
 --enable-pcntl \
 --enable-shmop \
 --enable-soap \
 --enable-sockets \
 --enable-sysvsem \
 --enable-xml \
 --enable-zip \
 --enable-fastcgi \
 --enable-fpm \
 --with-jpeg-dir=/usr/local/libpng
-with-apxs2=/usr/local/apache2/bin/apxs  (apache)


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

make: *** [sapi/cli/php] Error 1

1、 make clean之后重新执行make,如果还不OK,执行第2步

2、编译时使用make ZEND_EXTRA_LIBS='-liconv'  ---编译成功


解决方法:

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


再检查php,指定 iconv的位置:

--with-iconv=/usr/local/libiconv

#./configure --with-mysql=/backup/mysql --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-curl --with-gd --enable-gd-native-ttf --with-apxs2=/usr/local/apache/bin/apxs --enable-sockets --with-iconv=/usr/local/libiconv
#make
#make install


另一种解决方法为去除iconv模块也能正常编译php,如下:

編輯 Makefile 大約 77 行左右的地方:

EXTRA_LIBS = ..... -lcrypt

在最後加上 -liconv,例如:

EXTRA_LIBS = ..... -lcrypt -liconv

再运行make就可以了。

最后一种方法:由tonyty163提供:

#make ZEND_EXTRA_LIBS='-liconv'
#make install


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关配置文件:

# cp php.ini-development /usr/local/php/lib/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
# cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm


需要注意的是php7中www.conf这个配置文件配置phpfpm的端口号等信息,如果你修改默认的9000端口号需在这里改,再改nginx的配置

启动:

#  /etc/init.d/php-fpm


其实我们只是使用它默认提供给我们的一个配置,当然大家也可以根据自己需要进行修改配置信息,然后进行启动php-fpm


#groupadd nobody (临时加,后面有需要再改或者或php-fpm的配置)

/usr/local/php/sbin/php-fpm

//关闭php-fpm
//killall php-fpm


配置opcache

官网地址:http://php.net/opcache


使用下列推荐设置来获得较好的 性能:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1


你也可以禁用 opcache.save_comments 并且启用 opcache.enable_file_override。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。 

vim /usr/local/php7/etc/php.ini
# 加入
zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20141001/opcache.so


重启

# killall php-fpm
#  /etc/init.d/php-fpm
CopyRight © 2017 荒山本的官方网站 粤ICP备16049175号 All Right Service 网站地图(xml) 网站地图(html)