Linux使用源码编译安装php

lnmp环境之安装php

预先默认安装了Mysql在/usr/lib64/mysql/,没安装的要安装mysql

- 安装依赖软件libiconv。

自行下载libiconv,下载地址https://download.csdn.net/download/weixin_45078310/16726648
在windows下载的软件记得用flashfxp或者其他远程上传软件来上传,还要把上传参数改为二进制上传(以免文件损坏)。当然你也可以直接在linux里面用命令行wget下载更方便,但我这里用不了wget。

  • 进入软件包所在目录 进行解压安装
cd /data/soft
unzip libiconv-1.14.zip
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install

如果没有生成makefile文件,那你的软件包可能损坏了

  • 下载libmcrypt(安装mcrypt需要此软件包)
  • 下载mhash(安装mcrypt需要此软件包)
  • 下载mcrypt
    以上的下载地址https://blog.csdn.net/weixin_30381317/article/details/99514053
  • 安装libmcrypt
cd /usr/local/src  
tar zxvf libmcrypt-2.5.8.tar.gz  
cd libmcrypt-2.5.8  
./configure  
make 
make install  
sleep 2
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
  • 安装mhash [加密扩展库]
cd /usr/local/src
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make
make install
sleep 
cd ../
 
rm -f /usr/lib64/libmcrypt.*
rm -f /usr/lib64/libmhash*
 
ln -s /usr/local/lib64/libmcrypt.la /usr/lib64/libmcrypt.la
ln -s /usr/local/lib64/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib64/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib64/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
 
ln -s /usr/local/lib64/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib64/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib64/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib64/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib64/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
 
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
 
#32位系统 lib64换成lib
  • 安装mcrypt
cd /usr/local/src
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
ln -s   /usr/local/bin/libmcrypt_config   /usr/bin/libmcrypt_config  #添加软连接
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH  #添加环境变量
./configure
make
make install
  • 下载好php-5.3.29.zip,地址https://download.csdn.net/download/weixin_45078310/16726863
  • 解压安装php
cd /data/soft  #我把软件包放这里了
unzip php-5.3.29.zip
cd php-5.3.29
ln -s /data/server/mysql/lib/libmysqlclient.so.15 /usr/lib64/      #创建软链接。如果你的mysql没有指定目录安装,这一步可以省略,因为mysql默认安装在lib64
touch ext/phar/phar.phar

./configure \
--prefix=/data/server/php-5.3.29 \
--with-mysql-dir=/usr/lib64/mysql \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp
#注意:--prefix=安装目录--with-使用包名称[=包目录]--enable-需要激活的功能

make
make install

如果在执行./configure时出现报错configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!
那么请参考https://blog.csdn.net/weixin_30364147/article/details/95219122

如果在执行./configure时出现报错
make: *** [ext/phar/phar.php] 错误 127
解决方法见https://blog.csdn.net/zhezhebie/article/details/73301813

如果在执行./configure时出现报错
/bin/sh: /data/soft/php-5.3.29/build/shtool: 权限不够
解决方法:

cd /data/soft/php-5.3.24/build
chmod  a x shtool 
cd ..
make   #重新make

如果出现报错
chmod: 无法访问"ext/phar/phar.phar": 没有那个文件或目录
make: [ext/phar/phar.phar] 错误 1 (忽略)
Build complete.
Don’t forget to run ‘make test’.
解决方法:

此处可以忽略,但可以解决:
 解决方法:如下
cd /data/soft/php-5.3.24/ext/phar
 cp  phar.php  phar.phar
  • php 文件配置
#创建软链接方便使用
cd /data/server
ln -s php-5.3.29 php

#修改php.ini文件,开启session功能
cp /data/soft/php-5.3.29/php.ini-production /data/server/php/lib/php.ini
gedit /data/server/php/lib/php.ini
#找到 ;session.save_path=" "
#修改为 session.save_path=" /tmp"
#通过查找cgi.fix_pathinfo=1这个配置,并去除注释,并改为cgi.fix_pathinfo=0,据说这是一个nginx上传木马的漏洞。

#复制php-fpm的配置文件,要是没有目录就创建
cd /data/server/php-5.3.29/etc
cp php-fpm.conf.default php-fpm.conf
 
#启动php
cd /data/server/php-5.3.29/sbin
./php-fpm

#关闭php
pkill php-fpm

#检查php是否真的启动了
netstat -tnulp | grep php

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      108606/php-fpm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值