linux源码包安装php中的./configure选项详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux源码包安装php中的./configure选项详解相关的知识,希望对你有一定的参考价值。
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
--主安装目的目录 [/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
--bin目录
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
--sbin目录
--libexecdir=DIR program executables in DIR [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data in DIR
[PREFIX/share]
--sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data in DIR
[PREFIX/com]
--localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
--libdir=DIR object code libraries in DIR [EPREFIX/lib]
--includedir=DIR C header files in DIR [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
--infodir=DIR info documentation in DIR [PREFIX/info]
--mandir=DIR man documentation in DIR [PREFIX/man]
--srcdir=DIR find the sources in DIR [configure dir or ..]
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM
run sed PROGRAM on installed program names
那些参数的具体意思是什么意思?
上面的帮助文档中
--bindir=DIR user executables in DIR [EPREFIX/bin]
1.这个默认的bin目录是在哪个地方的bin?
--sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
2.这个默认的sbin目录是在哪个地方的sbin?
3.EPREFIX和PREFIX有什么区别?是不是大致意思就是一个相对路径一个绝对路径?
问这个问题是因为要求在一个linux 系统里搭建两套Apache+mysql+php环境,
Apache和mysql都搞定了,就剩下一个PHP的,
4.不知道PHP的安装路径有哪些目录是可以公用的,那些必须是区分开的,
注意,我说的这两套环境是完全的用源码包安装的两套,也就是说有两个Apache的目录及配置文件,同样mysql也是(包括数据库目录,配置文件路径等等,),还是最后剩下的PHP,装了两套,但是貌似有些默认的目录是在公用的地方放着的,比如那个php.ini文件,默认的是放在/usr/local/bin下面,但是现在有两套系统,所以,放在这个路径下就不可以了,懂我的意思???
QQ/E-mail:dydzdc@163.com
擦。。。没人研究过么。。。还是我被无视了。???
sbindir默认会放在PREFIX/bin目录,所以不需要特别指定。
这是我安装时的例子:
./configure --prefix=/usr/local/server/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-config-file-path=/usr/local/server/php/etc --with-config-file-scan-dir=/usr/local/server/php/etc/php.d --enable-mbstring --with-mysql=/usr/local/server/mysql --with-pgsql=/usr/local/server/postgresql --with-pdo-pgsql=/usr/local/server/postgresql --with-pdo-mysql=/usr/local/server/mysql --enable-sockets --enable-sqlite-utf8 --enable-zip --enable-zend-multibyte --with-mysql-sock --with-gd --with-mcrypt --with-mysqli=/usr/local/server/mysql/bin/mysql_config
安装结果是php被安装到了/usr/local/server/php 目录,sbin文件在/usr/local/server/php/sbin,php默认配置文件需要放到 /usr/local/server/php/etc 文件夹(etc默认不存在,新建一个,把php.ini放进去就可以了),配置文件扫描目录是 /usr/local/server/php/etc/php.d (php.d目录也需要手动建立)。
这样一来就可以和系统目录独立了,然后编译第二个php,指定prefix,例如 --prefix=/usr/local/server/php2 ,其他参数依样修改,就可以安装两套php,启动脚本自己建立一个就可以了,但是两个php-fpm配置需要改动其中一个默认监听端口,默认是9000 。其他服务软件道理是一样的,主要还是更改第二套服务软件默认监听端口,否则无法启动,会提示端口已被占用。 参考技术A 1、Linux下,默认是在/usr/local/bin/,假如你设置--prefix=/usr/local/php那么就在/usr/local/php/bin/
2、sbin道理相同。sbin的意思就是server bin
3、EPREFIX没用过
4、如果要用2套版本,用prefix区分开不同的安装目录。php.ini默认在/usr/local/php/etc/本回答被提问者采纳
Linux 编译安装 php 扩展包 curl
php源码目录:/root/php
php编译目录:/usr/local/webserver/php/
curl源码目录:/root/curl
1.curl,主要用于发送http请求,是php的一个扩展包。
- 解压:tar -zxvf curl.tar.gz
- cd /(php源码目录,不是php编译目录)/ext/curl
- 运行phpize: /(php编译目录)/bin/phpize
- ./configure --with-php-config=/(php编译目录)/bin/php-config --with-curl=/(curl源码目录)
- make && make install
- 修改php.ini,增加:extension=curl.so(如果没有安装过其他php扩展,则需要同时配置extension_dir="/(php编译后目录)/lib/php/extensions/no-debug-non-zts-20121212/",上一个步骤生成.so文件的时候,会输出extension_dir目录)
- /(php编译后目录)/bin/php -m | grep curl ——正常打印curl,则表示安装成功(php -m会打印出已安装的扩展模块)
以上是关于linux源码包安装php中的./configure选项详解的主要内容,如果未能解决你的问题,请参考以下文章
Linux下利用phpize安装memcashe的php源码扩展包