3
回答
php的源代码安装问题
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

cd php-5.3.6
./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc --withmysql=/
usr/local/mysql/ --with-openssl --with-snmp --with-gd --with-zlib --with-curl --withlibxml-
dir --with-png-dir --with-jpeg-dir --with-freetype-dir –without-pear --with-gettext –
with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets
--enable-mbstring --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-fpm --withfpm-
user=www –with-fpm-group=www –with-libdir=lib64 –with-ldap –with-ldap-sasl
--with-mcrypt –with-mhash
make ZEND_EXTRA_LIBS='-liconv'     make后面的的那句话是什么意思,添加上和没添加上会有什么区别??

make install

PHP
举报
tianyuqin
发帖于4年前 3回/584阅
共有3个答案 最后回答: 4年前

不熟悉C就不要源码编译,没意义,还要多打字。yum就行了。搜了下,是个叫张宴的PHPer的文章最早出来的,网上的文章也大多说是从他那看到的。

我只能呵呵了,他自己都不懂的吧,看了他几篇文章,不管编译啥扩展他都加上这句,既不解释,别人跟帖问了也不回复。。。这网络,大多以讹传讹,不知所以,不知所以然的源码编译。。放着好好的yum不用


没听说过要熟悉C才能编译安装,我的configure参数是:

#!/bin/bash
./configure \
--prefix=/png/php/5.5.8 \
--enable-opcache \
--enable-fpm \
--enable-pdo \
--enable-sockets \
--enable-exif \
--enable-soap \
--enable-ftp \
--enable-wddx \
--enable-pcntl \
--enable-soap \
--enable-bcmath \
--enable-mbstring \
--enable-dba \
--enable-gd-native-ttf \
--enable-zip \
--enable-calendar \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-mysql \
--with-mysqli \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-iconv \
--with-zlib \
--with-bz2 \
--with-gettext \
--with-xmlrpc \
--with-openssl \
--with-mhash \
--with-mcrypt \
--with-xsl \
--with-curl \
--with-pcre-regex \
--with-gd \
--with-freetype-dir=/usr \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-ldap \
--with-pear \
--with-fpm-user=png \
--with-fpm-group=png \
--with-apxs2=/png/httpd/2.2.26/bin/apxs

然后就是make && make install就好了.

因为我要编译libphp5.so配置Apache使用,所以先编译了Apache,然后用--with-apxs2为PHP指定apxs这个Apache模块编译工具。其中png是我自己新建的用户:
sudo addgroup png --system
sudo adduser png --system --disabled-login --ingroup png --no-create-home --home /nonexistent --gecos "png user" --shell /bin/false

Ubuntu上可以这样安装编译PHP时用到的头文件和库:

sudo apt-get -y install \
build-essential \
autoconf \
libtool \
libxml2 \
libxml2-dev \
openssl \
libcurl4-openssl-dev \
libbz2-1.0 \
libbz2-dev \
libjpeg-dev \
libpng12-dev \
libfreetype6 \
libfreetype6-dev \
libldap-2.4-2 \
libldap2-dev \
libmcrypt4 \
libmcrypt-dev \
libmysqlclient-dev \
libxslt1.1 \
libxslt1-dev \
libxt-dev \
libpcre3-dev

安装好后用pecl安装常用扩展:

pecl install xdebug xhprof ZendOpcache memcache redis 

--- 共有 4 条评论 ---
eechen回复 @南湖船老大 : 编译还有一个好处是更易于控制版本和升级,一台服务器上可以运行多个版本的PHP-FPM。 4年前 回复
南湖船老大回复 @eechen : yum一样可以再以后安装,yum安装php-devel后,遇到偏门的扩展,没有yum包,也可以用编译的方式安装 4年前 回复
eechen回复 @南湖船老大 : 意义就在于所有常用的模块都编译进PHP-FPM了,不需要以后一个一个安装软件包。而且之后通过pecl就可以一键安装常用扩展:pecl install xdebug xhprof ZendOpcache memcache redis 4年前 回复
南湖船老大然后呢?意义何在?在你贴出的编译命令里,即没看出对编译做什么优化,也没看出有何独到之处。编译就是为了显摆么?有yum为啥不用? 4年前 回复
顶部