解决安装PHP 5.6.40版本途中坑坑洼洼
所见非所得,历练见真知
最近要代码迁移,TP框架要求PHP版本5.6,老板大方的给了一台1核2G服务器并大气的说,“拿去,随便玩”。我也是一口吃下了老板给的大度。
说正题,这服务器里面内容挺全,nginx1.10,php5.4,mysql 5.6,redis 3.2,。其他的与项目无关的我就不多说了。其他的大致能满足,就是PHP版本低了些。我选择了重装了。
随便找个路径下载软件 mkdir soft
cd soft
wget http://am1.php.net/distributions/php-5.6.40.tar.gtar -zxvf php-5.6.40.tar.gz
cd php-5.6.40./configure --prefix=/usr/local/php --with-curl=/usr/local/curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zipmake && make install
我以为很成功,没想到来了个芭比Q。
既来之则安之。一顿百度猛如虎,得来全部是痛苦
大部分说在Makefile找到 EXTRA_LIBS 行,在行末添加 ‘ -llber ‘ 保存退出再次make即可,可能不同症状吧,我是没成功,呵呵~
那就换一种!
php 5.5 collect2: ld returned 1 exit status - 陈俊武 - 博客园
这种靠谱点,口味对上了,
建立软链接
ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/make ZEND_EXTRA_LIBS='-liconv'make install
天灵灵,地灵灵~ 等待菊花开。
一切顺利,开始配置工作
配置php
php.ini-production拥有较高的安全性设定,适合服务器上线运营当产品。一般修改php.ini-production为php.ini
cp php.ini-production /usr/local/php/etc/php.ini
创建php-fpm.conf文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
网上还有一个www.conf,我是没找到,那就先不搞了。
好赖弄个自启动吧,毕竟要装的像一点
设置开机自动启动
vim /lib/systemd/system/php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 MAINPIDExecStop=/bin/kill−SIGINTMAINPID[Install]
WantedBy=multi-user.target
开启开机自动启动:
systemctl enable php-fpm.service
来,给各位大爷启动一下
service php-fpm restartps -ef | grep php
不错,味道好极了,可是还没结束
php -v
还是5.4版本,额。。。。。幻觉?双版本?
应该是双版本,但我喜欢看到的是5.6,古人云,凡事不求人,遇事找度娘。
她说修改profile配置文件,可以么?
好的~
export PATH=$PATH:$HOME/bin:/usr/local/php/binsource /etc/profile
执行 php -v,不行喔
她说,那重启下服务器?我:..... 听你的。
重启服务器命令:shutdown -r now (反正老板说随便玩)
重启后, php -v 还是5.4!!!
她说,要不重启下httpd.
service httpd restart
唉,不想看结果。。。
她不死心,把原来版本位置文件删了!
cd /usr/bin/
rm -fr ./php
rm -fr ./php-cgi
rm -fr phpize
php -v 果然有韧性!666
接下来就是运行项目了
配置域名、项目路径,访问了html 后缀文件,可以访问,但是,访问.php后缀的文件出现
心态崩了啊!
网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码, 但实际输出给浏览器的页面内容却是空白。
原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。
需要改动下配置文件fastcgi_params:
添加两行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
不放心,重启下nginx
service nginx restart
终于可以访问了。
剩下的工作其实还没完
后续的出现了以下问题:
1、 thinkphp无法找到模块
解决:
include pathinfo.conf
pathinfo.conf内容:
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
try_files $fastcgi_script_name =404;
再添加以下内容:
location ~ \.php { # 原来有个$符号的,度娘说不能有,就删了。#root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME /var/www/html/tanchishe/public$fastcgi_script_name;fastcgi_split_path_info ^(.+\.php)(/.*)$;fastcgi_param PATH_INFO $fastcgi_path_info;}
2、启动phpinfo查看发现少了php.ini路径
解决:
strace /usr/local/php7/sbin/php-fpm -i 2>1.log
把/usr/local/php/etc/php.ini 复制到/usr/local/php/lib/
或者直接写个软连接:
ln -s /etc/php.ini /usr/local/php/lib/php.ini
重启下php-fpm
完成!
解决安装PHP 5.6.40版本途中坑坑洼洼相关推荐
- 【疑难解决】华为eNSP工具(版本1.3.00.100)开启AR路由器出现40报错问题进行解决分析
[疑难解决]华为eNSP工具(版本1.3.00.100)开启AR路由器出现40报错问题进行解决分析 [疑难解决]华为eNSP工具(版本1.3.00.100)开启AR路由器出现40报错问题进行解决分析 ...
- 解决安装kali 2020.1版本后的中文乱码问题:只需要安装中文字体(而不需要像之前版本那样需要选择locales和编码)。
解决安装kali 2020.1版本后的中文乱码问题:只需要安装中文字体(而不需要像之前版本那样需要选择locales和编码). 分别执行"sudo apt-get install xfont ...
- 解决安装YouCompleteMe与Vim版本不兼容问题
解决安装YouCompleteMe与Vim版本不兼容问题 参考文章: (1)解决安装YouCompleteMe与Vim版本不兼容问题 (2)https://www.cnblogs.com/marsgg ...
- 解决安装mysql动态库libstdc++.so.6、libc.so.6版本过低问题
解决安装mysql动态库libstdc++.so.6.libc.so.6版本过低问题 参考文章: (1)解决安装mysql动态库libstdc++.so.6.libc.so.6版本过低问题 (2)ht ...
- 解决Windows 7下IE11无法卸载、无法重新安装,提示安装了更新的IE版本
2013年12月14日 iefans 有用户反馈在Windows 7系统上安装IE11时发现安装程序似乎出了问题,等待了很长时间都没有响应之后就断开了电脑的电源.之后IE11浏览器虽然能使用,却无法安 ...
- Win7下Office 部署工具解决安装Visio失败(提示即点即用版本)
目录 一.即点即用简介 二.即点即用"与MSI的安装冲突 三.Office 部署工具 四.使用 ODT 下载安装 Visio 2016 1.配置文件修改 2.运行命令 一.即点即用简介 ...
- 解决安装 ISE14.7 Windows10 时出错
解决安装 ISE14.7 Windows10 时出错 问题 当时环境 解决办法 问题 安装Xilinx ISE 14.7 官方Win10版本时出现了如下报错 0%...10%...20%...30%. ...
- 解决安装visual studio installer 报错,无法下载安装文件的问题
文章目录 解决安装visual studio installer 报错,无法下载安装文件的问题 Visual Studio 2019下载官网 一.VS2019安装问题 问题 解决方法1 解决方法2 解 ...
- tensorflow 2.10.0安装所需依赖库版本确定方法
tensorflow 2.10.0安装所需依赖库版本确定方法 1 依赖版本组合 2 系统环境 3 依赖版本确定方法 3.1推理法 3.1.1 TensorFlow依赖范围 3.1.2 显卡驱动支持范围 ...
最新文章
- KafkaProducer初始化时涉及到哪些核心组件?
- Servlet架构初解析
- Android系统启动过程全解析
- 整数阶贝塞尔函数c语言,整数阶复宗量变形贝塞尔函数的计算.pdf
- exchange和域得命名
- 信息学奥赛一本通 1022:整型与布尔型的转换 | OpenJudge NOI 1.2 09
- kubernetes怎么读_Kubernetes之有状态应用实践-搭建MySQL集群
- Python3十大经典错误及解决办法
- (三)Linux 安装
- 大学学计算机用游戏本好吗,大学学建筑学用什么配置的笔记本电脑好?
- MATLAB 图像处理 灰度图 将图像中某一行或者某一列的灰度值 绘制成一条曲线
- Java自动生成增量补丁自动部署_Shell脚本结合Git实现增量项目部署
- IP地址配置错误网络无法连接怎么解决Win10?
- iOS开发之获取实时气压、相对高度
- Multi-UA V Cooperative Exploringfor the Unknown Indoor EnvironmentBased on Dynamic Target Tracking翻译
- 我们该如何全面提高程序的可读性
- Android 监听手机按下Home键
- ue4光追降噪_【RTX ON!】可能是最详细的UE4实时光追测评
- c++继承 基类 派生类 虚函数
- 怎么在短时间内快速提高网站排名