php安装的最后一步make install时,我们会看到将动态链接库libphp5.so拷贝到apache2的安装目录的moles目录下,并且还需要在httpd.conf配置文件中添加LoadMole语句来动态将libphp5.so模块加载进来,从而实现Apache对php的支持。
B. 源码编译安装php都需要哪些基础安装包
我上次搭建Nagios时记录的安装PHP步骤:
tar -zxvf libxml2-2.7.8.tar.gz
cd libxml2-2.7.8
./configure --prefix=/usr/local/libxml2
make
make install
tar -zxvf php-5.4.10.tar.gz
cd php-5.4.10
./configure \
--prefix=/usr/local/php \
--with-apxs2=/var/httpd/bin/apxs \
--with-libxml-dir=/usr/local/libxml2 \
--enable-maintainer-zts
make
make install
cp php.ini-development /usr/local/lib/php.ini
# cp /usr/lib/httpd/moles/libphp5.so /var/httpd/moles/
vi httpd.conf
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
# LoadMole php5_mole moles/libphp5.so
从你的报错信息来看,就挨个解决这三个问题吧:
Perl is not installed
apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
Apache was not built using --enable-so (the apxs usage page is displayed)
C. 在linux上编译安装PHP时,为什么没有php
cp php.ini-dist /usr/local/php/lib/php.ini默认没有的需要从编译时的源码目录一份到php的安装目录例如你下载的是php5.2.2,需要进入php5.2.2才能./configuire只需再次进入源码目录然后即可如果你是通过yum或apt安装的就存在这个文件。
D. 如何在编译好的PHP环境中安装PHP扩展模块
安装步骤:
1、先进入php解压缩后的源码包中,找到要安装的扩展模块的目录。
[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets
在sockets目录下面以绝对路径运行phpize程序,这时会自动生成sockets的configure程序,在sockets目录下面可以看到。
[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize
2、进行编译安装
[root@redhat5 sockets]# ./configure --with-php-config=/home/webserver/php5.2.12/bin/php-config
[root@redhat5 sockets]#make
[root@redhat5 sockets]#make install
执行完make install屏幕上会提示sockets.so存放的路径,然后把它复制到php的extensions目录中,例如我的路径为 /home/webserver/php5.2.12/lib/php/extensions
3、修改php.ini文件
找到extension_dir = "./" 这行,修改为:
extension_dir = "/home/webserver/php5.2.12/lib/php/extensions/"
然后再新增加一行:
extension=sockets.so
4、重启apache即可生效。
其它模块的安装方法和这个一模一样,不管是php自带的扩展模块还是第三方扩展模块都照这种方法安装即可。
E. 编译安装的php怎么安装xcache
#第一步非常简单,如果你下载不了就是人品问题。
#第二步,解压Xcache源码。
[plain] view plain 在CODE上查看代码片派生到我的代码片
tar -zvxf xcache-3.1.0.tar.gz
#第二部,也是非常简单的,如果你解压不了就是人品问题。
#接下来,顺便,进入安装目录
[plain] view plain 在CODE上查看代码片派生到我的代码片
cd xcache-3.1.0
#第三步,非常重要,基本出错都在这里。
#首先,安装前要执行phpize配置
/php的路径/bin/phpize
#请确保已经安装了php,如果没有安装php请先安装php。(费话,你不装php,装什么Xcache啊)
#接下来,配置->编译->安装,可一步到位,前提是你路径没有错误。
[plain] view plain 在CODE上查看代码片派生到我的代码片
#配置
./configure --prefix=/php的路径/lib/php/extensions \
--with-php-config=/php的路径/bin/php-config \
--enable-xcache
#编译
make
#安装
make install
#安装完成后,会出现类似以下提示的东西,证明安装成功。
/www/php/extensions/no-debug-non-zts-20060613/
#到这里,就算安装完成了,剩下就是配置工作。
#把xcache管理页面,移动到web目录。
[plain] view plain 在CODE上查看代码片派生到我的代码片
cp ./htdocs /www/web/xcache -r
#./htdocs,这是在源码目录中的。别告诉我你找不到。
#/www/web/xcache,web目录,名字叫什么自己喜欢。
#当然,如果你很笨的话。用不起这个命令。那么,在解压好的源码目录中,直接通过FTP之类的工具,直接移动也是OK的。
配置php.ini,
还是在源码目录中,找到 xcache.ini , 然后直接在 php.ini 后面加就行。
#或者用以下命令,追加配置文件xcache.ini至php.ini
[plain] view plain 在CODE上查看代码片派生到我的代码片
cat xcache.ini >> /php的路径/etc/php.ini
#如果你很笨,还是建议FTP里面操作,因为后面还要修改下管理的用户名跟密码的。。。
请注意修改xcache.ini中的属性。此时执行完上面那命令,就要编辑php.ini了。
xcache.admin.user = "admin"
xcache.admin.pass = ""
密码是admin,想改密码什么的,以你的聪明才智你懂的。
xcache.mmap_path = "/tmp/xcache"
#这个文件建议在tmp目录咯,记得给 777 权限。
[plain] view plain 在CODE上查看代码片派生到我的代码片
touch /tmp/xcache
chmod 777 /tmp/xcache
上面都是需要注意的地方。
以下给出我配置好的xcache.ini,注释什么的我就去掉了。
F. linux 已经编译安装好php,怎么添加mysqli
添加扩展的基本步骤:
1、进入PHP源代码目录:# cd /tmp/php-5.2.14/
2、再进入要添加的mysqli扩展源码目录:# cd ext/mysqli/
2、调用已经编译好的php里面的phpize:# /usr/local/php/bin/phpize
3、然后configure:# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/MySQL/bin/mysql_config
(/usr/local/mysql 为mysql的安装目录)
4、make && make install
5、编译之后,自动把mysqli.so放到了默认的php扩展目录下,我的为 /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
(phpinfo可查看或者执行命令/usr/local/php/bin/php-config --extension-dir )
再修改php.ini 找到extension_dir 默认路径为 extension_dir="./" 我修改后才启动加载的
在下面添加extension = "mysqli.so" 保存即可
extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension = "mysqli.so"
6、重启apache:# service httpd restart
G. 请教在ubuntu上源码编译安装php的一个问题
用软件中心装是最简单的办法,当然,你这是php太新才编译不过去的,你也可以尝试一下旧版本的php,假如你坚持要用这个版本的php,觉得它有很多吸引你的特性的话,那很抱歉,你的libxml2实在是太旧了,自己编译一个新版本的libxml2吧,而且,还必...
H. linux php 编译安装在哪
如果你在安装PHP的时候不指定配置文件的目录,一般配置文件php.ini需要放在/etc目录下。
指定php.ini的位置。
./configure
--prefix=/usr/local/php5
--with-apxs2=/usr/local/apache2/bin/apxs
--with-config-file-path=/usr/local/php5
--wit
I. 如何编译安装PHP扩展
一开始安装PHP的时候,我们并不知道需要哪些扩展,所以只有等到我们真正用到的时候才想办法去安装。
安装PHP扩展最简单的办法就是
sudo apt-get install php5-xxx
但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。
这篇文章中我将介绍在本地Linux平台下编译安装PHP扩展的方法。
现在网站根目录下创建 index.php 打印基本的配置信息,以验证我们是否安装成功。
配置编译环境
我们需要安装一些编译必须的库,还有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
yast2 -i php5-pear php5-devel php5-mysql gcc
安装扩展
PHP有两种可供安装的扩展:一种是PHP原生的但是默认没有安装的,另一种的第三方开发的扩展。
下面依次介绍两种扩展的安装方法:
安装之前我们需要一份和当前机器上相同版本的PHP源码
cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9
前往此处 下载相应的源码包。
在 /ext 目录下面可以看到所有PHP原生的扩展。
安装原生扩展
以 PHP-intl 为例,这是PHP国际化的扩展。
为了安装这个扩展我们需要先安装ICU 库
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU 安装成功之后进入/ext/intl 目录:
cd intl
phpize
./configure --enable-intl
make
sudo make install
下面解释一下上面的每个命令:
phpize : 是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
./configure --enable-intl: 配置编译环境,相当于告诉编译器编译PHP源码的时候加上intl这个扩展。
make: 将会把源码编译成 intl.so
make install : 将会把 intl.so 移动到当前安装的 PHP 的扩展目录。
接下来我们要做的就是在php.ini中启用这个扩展,这一步将会在最后给出示例。
安装第三方扩展
将以这个 扩展为例,这个扩展主要实现了PHP识别条形码的功能。
先安装必要的依赖
sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install
将会生成一个文件,将其拷贝到PHP的扩展目录下面。
启用扩展
在php.ini中启用扩展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,这是最简单直接的方法。
也可以单独建一个ini文件,然后在php.ini中包含这些文件就可以了。
下面介绍一下第二种方法:
cd `/etc/php5/mods-available`
这个目录里可以放新建的ini文件,然后执行
sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini
上面的命令将会创建ini文件,并且写如相应的配置信息。
然后执行下面的命令启用扩展即可(需要安装 php5enmod 工具):
sudo php5enmod mongo
sudo php5enmod intl
如果未安装 php5enmod 工具,则需要手动配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini
最后在执行一下重启操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart