LAMP环境安装多个版本PHP

心血来潮在虚拟机上装了个PHP7,据说跑得比以前版本快好几倍^_^。但把以前的一些程序挪过来发现问题还真是不少,(所以如果想把线上的程序改为用PHP7跑的,还是慎重些)。发现大多数还是跟PHP官方更新的是一致的,多问题为mysql系列函数出问题为多,因为从php5.5开始就已经把mysql系列函数当作即将废除的函数了,到了php7全部废除。

所以就在虚拟机上又安装了php5.4.25,这个版本(据说是上下兼容性好)。

注意注意:如果安装的这个版本是跟系统目前已有的php版本(指的php5、php7而不是php5点几)一样的话,在安装的时候/usr/local/apache2/modules/ 目录下的libphp*.so可能会被替换掉,因为apache下生成的只是php的最大系列版本号如:libphp5.so、libphp7.so,所以在安装前,先去apache目录/usr/local/apache2/modules/,把目前的libphp*.so文件备份一个。

开始安装:

如果编译出错请进入这篇文章http://blog.sayphp.com/?p=707查看如何解决。

安装成功后,复制一些配置文件到安装目录

修改启动端口

启动php5.4.25

查看apache配置文件

其中这里有两个.so文件,如果php5的没有就加上,主要是用这两行代码来切换apache下的php版本!

上边的注意注意部分提到的,因为我之前安装的是php7所以没出现这个问题,如果两个版本都是php5.*的版本,就到/usr/local/apahce2/modules下将之前备份的.so文件改成他的版本号,在apche配置文件使其加载就行了

如图:这是我安装的第三个版本时候这样做的

如果原来的.so文件不小心备覆盖了的话就到你的源码文件中的libs目录下找有.so

 

重启apache

service httpd restart

linux 下编译php7.0.4出现的错误提示如何解决?

  1. configure: error: Please reinstall the libcurl distribution
    yum安装 此包
  2. configure: error: xml2-config not found. Please check your libxml2 installation
    先检查是否有此包

    重新安装(可能提示更新)
  3. configure: error: libjpeg.(a|so) not found.
    如果是64位系统,可能找不到文件,因为编译时的路径是/usr/lib

    这样就可以把error:libjpeg.(a|so) not found解决
  4. configure: error: mcrypt.h not found. Please reinstall libmcrypt
  5. mcrypt.h not found. Please reinstall libmcrypt
    centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包有两种方法解决,一种是使用第三方源,这样还可以使用yum来安装,简单方便,坏处是第三方源多少有中不可靠的感觉。解决办法一
    (1)安装第三方yum源

    (2)使用yum命令安装

    解决办法二、
    使用php mcrypt 前必须先安装Libmcrypt

    libmcrypt源码安装方法:

    如果还有其他错误在网上搜下解决办法应该都有!

  6. 错误提示提示:configure: error: freetype-config not found
    解决办法:

     

  7. 错误提示提示:xslt-config not found
    解决:yum install libxslt-devel* -y
  8. 错误提示:make: *** [sapi/cli/php] Error 1
    问题分析:在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open’」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。解决:在当前目录编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ….. -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ….. -lcrypt -liconv 然后重新再次 make 即可。

    或者用另一种办法


     

Linux下安装Mysql 5.7.16

1:首先查看是否有安装mysql的相关软件包

2:检查mysql用户和用户组是否存在(不存在则创建)

3:下载地址:http://dev.mysql.com/downloads/mysql/#downloads

选择的是linux通用版本

4:下载到本地(/home/yuyu/mysql)并解压,并赋予此文件夹所有文件所属用户和用户组

5:创建移动文件夹/usr/local/mysql/,并将mysql-5.7.14-linux-glibc2.5-i686/中的所有文件移动到/usr/local/mysql/

6:安装和初始化

如果改变默认安装路径,则需要
(1)/etc/my.cnf、/etc/init.d/mysqld中修改
basedir=’/apps/mysql’
datadir=’/apps/mysql/data’
(2)创建ln
mkdir -p /usr/local/mysql/bin
ln -s /apps/mysql/bin/mysqld /usr/local/mysql/bin/mysqld

安装成功了,设置mysql服务开机启动

7:初始化密码:

mysql5.7会生成一个初始化密码,而在之前的版本首次登陆不需要密码

8:设置允许远程访问数据库

9:将mysql和php命令加入到环境变量中

修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/php7/bin:/usr/local/mysql/bin
export PATH
最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。

linux 下安装Apache/2.2.31

检查下新系统中应该都存有apache,有如下两个包

卸载一般从下边开始卸,

提示有一个附属包gnome-user-share-0.10-6.el5.i386

那就先卸载它

(卸载的时候那个版本号可以不用写的,如gnome-user-share-0.10-6.el5.i386直接写成gnome-user-share就行)


以下是我自己的路径:

所有软件包存放在/home/yuyu中

安装的时候编译到/usr/local中

开始安装:

  1. 下载apache软件,并解压到我的下载目录压缩包下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.2.31.tar.gz
    (如果系在地址不存在了可以到这个页面去找http://httpd.apache.org/download.cgi#apache22)
  2. 进入到 解压号的目录,对apache进行编译

    (如果不编译–prefix=/usr/local/apache2默认是生成为/usr/local/httpd目录)
  3. 进行安装
  4. 安装成功后,进入到apache配置文件中进行修改

    找到#ServerName ******:80(:80前面的域名不知道一不一样就用*代替了,直接搜ServerName就能找到)
    直接在其下面一样加ServerName localhost:80,如下图:
  5. 启动apache:
  6. 测试:
    先把防火墙关闭掉:

    如果是用的虚拟机,查看下对应ip多少,从本机输入ip查看下,类似这样就成功了
  7. 把apache安装为系统服务

    然后 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
    # chkconfig: 2345 50 90
    # description: Activates/Deactivates Apache Web Server
    最后,运行chkconfig把Apache添加到系统的启动服务组里面:

     

linux下安装php7.0.4

下载最新php版本:

配置是php时候在系统的基础上进行的,所以我们配置的一些软件现在的系统如果没有则会报错,执行如下,安装一些配置php(./configure的时候)的一些依赖库

进行编译php配置:

 

如果编译成功则提示:

 

如果还是出现类似编译失败的错误如:

等…请进入这篇文章http://blog.sayphp.com/?p=707查看如何解决。

 

安装:

设置一些配置文件:

php.ini-development 适合开发测试,如本地测试环境, php.ini-production拥有较高的安全性设定,适合服务器上线运营当产品。一般修改php.ini-production为php.ini,安全性更高,确保测试环境(本地)与正式环境(线上)一致

修改php.ini 开启错误提示

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

对应扩展;extension=***.dll前面的“;”根据需要删掉

加入服务
需要注意的是php7中www.conf这个配置文件配置phpfpm的端口号等信息,如果你修改默认的9000端口号需在这里改,再改apache的配置

启动

 

配置apache加载php模块

在apache的配置文件中加入

  1. LoadModule php7_module modules/libphp7.so
    (在LoadModule foo_module modules/mod_foo.so的下方,便于查找)
  2. AddHandler application/x-httpd-php .php
    (AddType application/x-gzip .gz .tgz下方,便于查找)

重启apache

如果浏览器查看文件出现 Forbidden没有权限应该是由于配置了php后,httpd.conf里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
#Deny from all
allow from all
</Directory>