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