所见非所得,历练见真知

最近要代码迁移,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版本途中坑坑洼洼相关推荐

  1. 【疑难解决】华为eNSP工具(版本1.3.00.100)开启AR路由器出现40报错问题进行解决分析

    [疑难解决]华为eNSP工具(版本1.3.00.100)开启AR路由器出现40报错问题进行解决分析 [疑难解决]华为eNSP工具(版本1.3.00.100)开启AR路由器出现40报错问题进行解决分析 ...

  2. 解决安装kali 2020.1版本后的中文乱码问题:只需要安装中文字体(而不需要像之前版本那样需要选择locales和编码)。

    解决安装kali 2020.1版本后的中文乱码问题:只需要安装中文字体(而不需要像之前版本那样需要选择locales和编码). 分别执行"sudo apt-get install xfont ...

  3. 解决安装YouCompleteMe与Vim版本不兼容问题

    解决安装YouCompleteMe与Vim版本不兼容问题 参考文章: (1)解决安装YouCompleteMe与Vim版本不兼容问题 (2)https://www.cnblogs.com/marsgg ...

  4. 解决安装mysql动态库libstdc++.so.6、libc.so.6版本过低问题

    解决安装mysql动态库libstdc++.so.6.libc.so.6版本过低问题 参考文章: (1)解决安装mysql动态库libstdc++.so.6.libc.so.6版本过低问题 (2)ht ...

  5. 解决Windows 7下IE11无法卸载、无法重新安装,提示安装了更新的IE版本

    2013年12月14日 iefans 有用户反馈在Windows 7系统上安装IE11时发现安装程序似乎出了问题,等待了很长时间都没有响应之后就断开了电脑的电源.之后IE11浏览器虽然能使用,却无法安 ...

  6. Win7下Office 部署工具解决安装Visio失败(提示即点即用版本)

    目录 一.即点即用简介 二.即点即用"与MSI的安装冲突 三.Office 部署工具 四.使用 ODT 下载安装 Visio 2016 1.配置文件修改 2.运行命令 一.即点即用简介   ...

  7. 解决安装 ISE14.7 Windows10 时出错

    解决安装 ISE14.7 Windows10 时出错 问题 当时环境 解决办法 问题 安装Xilinx ISE 14.7 官方Win10版本时出现了如下报错 0%...10%...20%...30%. ...

  8. 解决安装visual studio installer 报错,无法下载安装文件的问题

    文章目录 解决安装visual studio installer 报错,无法下载安装文件的问题 Visual Studio 2019下载官网 一.VS2019安装问题 问题 解决方法1 解决方法2 解 ...

  9. tensorflow 2.10.0安装所需依赖库版本确定方法

    tensorflow 2.10.0安装所需依赖库版本确定方法 1 依赖版本组合 2 系统环境 3 依赖版本确定方法 3.1推理法 3.1.1 TensorFlow依赖范围 3.1.2 显卡驱动支持范围 ...

最新文章

  1. KafkaProducer初始化时涉及到哪些核心组件?
  2. Servlet架构初解析
  3. Android系统启动过程全解析
  4. 整数阶贝塞尔函数c语言,整数阶复宗量变形贝塞尔函数的计算.pdf
  5. exchange和域得命名
  6. 信息学奥赛一本通 1022:整型与布尔型的转换 | OpenJudge NOI 1.2 09
  7. kubernetes怎么读_Kubernetes之有状态应用实践-搭建MySQL集群
  8. Python3十大经典错误及解决办法
  9. (三)Linux 安装
  10. 大学学计算机用游戏本好吗,大学学建筑学用什么配置的笔记本电脑好?
  11. MATLAB 图像处理 灰度图 将图像中某一行或者某一列的灰度值 绘制成一条曲线
  12. Java自动生成增量补丁自动部署_Shell脚本结合Git实现增量项目部署
  13. IP地址配置错误网络无法连接怎么解决Win10?
  14. iOS开发之获取实时气压、相对高度
  15. Multi-UA V Cooperative Exploringfor the Unknown Indoor EnvironmentBased on Dynamic Target Tracking翻译
  16. 我们该如何全面提高程序的可读性
  17. Android 监听手机按下Home键
  18. ue4光追降噪_【RTX ON!】可能是最详细的UE4实时光追测评
  19. c++继承 基类 派生类 虚函数
  20. 怎么在短时间内快速提高网站排名

热门文章

  1. 软件授权解决方案FlexNet Publisher
  2. 242. 有效的字母异位词 349. 两个数组的交集
  3. java libraries在哪_java.library.path在哪? | 学步园
  4. 前端vue异形轮播图案例(带源码)
  5. 浅谈无线路由器自动掉线解决办法
  6. 【CSS】1610- CSS 实现超过固定高度后出现展开折叠按钮
  7. 什么是dB?为什么要用dB?dB家族成员有哪些?
  8. H3C设备忘记密码修改办法
  9. 有想法阿里系工作的么?各个事业群,都可以挑选。
  10. 数据库闯新世纪----施伯乐、周傲英、朱杨勇