linux服务器安装php7_CentOS 7 下 PHP 7.1.12 安装配置

Linux系统:CentOS 7

记录在CentOS 7 下 PHP 7.1.12 安装配置的过程。

先安装相关依赖包

yum install

pcre pcre-devel zlib zlib-devel openssl openssl-devel gd gd-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel lua-devel

autoconf libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel libidn libidn-devel libtool libtool-libs libevent-devel libevent openldap openldap-devel nss_ldap openldap-clients openldap-servers libtool-ltdl libtool-ltdl-devel bison libgcrypt php-mcrypt libmcrypt libmcrypt-devel cmake gcc gcc-c++ ncurses-devel perl-Data-Dumper libicu-devel libquadmath-devel python-devel bzip2-devel

我也不做区分了;这些是搭建lnpm环境需要安装的相关依赖包,就全安装完了。

下载php,我是到官网去下载的http://www.php.net/downloads.php

d551dafddd64c9fc340f920b26eaac19.png

下载一个最新稳定版的tar.gz格式

之后用xftp工具远程链接linux,把下载包放到linux的/usr/local/目录下

1解压:

[root@localhost

[root@localhost]# tar -zxvf php-7.1.12.tar.gz

2编译:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mcrypt=/usr/include --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --with-png-dir --with-libxml-dir --with-mcrypt --with-mhash

编译中有报错error的内容,看报错内容相应解决,有些报错是没找到依赖包需查看依赖包是否全部安装好了;还有一些没安装mysql的要先安装mysql

解决php编译报错configure: error: mcrypt.h not found. Please reinstall libmcrypt.

yum install -y epel-release

yum install -y libmcrypt-devel

两个不能一起安装,因为CentOs6默认的yum源没有 libmcrypt-devel这个包,只能借助epel的yum源,所以先安装epel,再安装

libmcrypt

全部编译完成之后执行:

make && make install

3.配置启动:

make安装完成之后会出现目录/usr/local/php;

执行下面这句话

[root@localhost local]# ll /usr/local/php/etc/

ee90aabe6fadf00e10d06b1928b39459.png

可以看到目录下的配置文件,一般我都会把配置文件转移到非root用户的其它用户的家目录下面

比如我创建一个adv用户,在adv用户下面创建一个目录保存php 的配置文件;

[root@localhost home]# cd /home/adv/

[root@localhost adv]# mkdir phpfpm

[root@localhost adv]# cd phpfpm/

[root@localhost phpfpm]# mkdir conf

此时我们已经有了这样的目录/home/adv/phpfpm/conf

接下来把配置文件cp到/home/adv/phpfpm/conf目录下

1.先把php.ini文件cp到/home/adv/phpfpm/conf目录下

php.ini文件在你刚刚解压的php-7.1.12文件里

01fe4d2c7917389bf0b7d13ae1f2fe7b.png

[root@localhost /]# cp /usr/local/php-7.1.12/php.ini-production /home/adv/phpfpm/conf/php.ini

[root@localhost /]# cp /usr/local/php/etc/php-fpm.conf.default /home/adv/phpfpm/conf/php-fpm.conf

p /usr/local/php/etc/php-fpm.d/www.conf.default /home/adv/phpfpm/conf/backend.conf

现在我们可以看到/home/adv/phpfpm/conf/目录下有三个文件

2修改配置文件:

修改php-fpm.conf文件

[root@localhost /]# vim php-fpm.conf

5fb0d0115c34d17f1a0fc6daecfaa342.png

0bc7328c3510f01b0279ba16f429d0af.png

还有其它的配置需要修改根据个人需要自行修改

3.编辑启动php文件; 因为我们把配置文件转移到了adv用户下,所以需要指定配置文件来启动php

启动脚本:[root@localhost phpfpm]# vim /home/adv/phpfpm/phpfpm.sh

#!/bin/bash

CURRDIR=`dirname "$0"`

BASEDIR=`cd "$CURRDIR"; pwd`

NAME="php-fpm"CMD=/usr/local/php/sbin/php-fpmif [ "$1" = "-d"]; then

shift

EXECUTEDIR=$1'/'shiftelseEXECUTEDIR=$BASEDIR'/'fiif [ ! -d "$EXECUTEDIR"]; then

echo"ERROR: $EXECUTEDIR is not a dir"exit

fiif [ ! -d "$EXECUTEDIR"/conf ]; then

echo"ERROR: could not find $EXECUTEDIR/conf/"exit

fiif [ ! -d "$EXECUTEDIR"/logs ]; then

mkdir"$EXECUTEDIR"/logs

fi

cd"$EXECUTEDIR"PID_FILE="$EXECUTEDIR"/logs/php-fpm.pid

check_pid() {

RETVAL=1

if [ -f $PID_FILE ]; then

PID=`cat $PID_FILE`

ls/proc/$PID &> /dev/null

if [ $? -eq 0]; then

RETVAL=0fi

fi

}

check_running() {

PID=0RETVAL=0check_pidif [ $RETVAL -eq 0]; then

echo"$CMD is running as $PID, we'll do nothing"exit

fi

}

start() {

check_running"$CMD" -y "$EXECUTEDIR/conf/php-fpm.conf" -c "$EXECUTEDIR/conf/php.ini" -p `pwd`

}

stop() {

kill-SIGQUIT `cat $PID_FILE`

}

status() {

check_pidif [ $RETVAL -eq 0]; then

echo"php-fpm is running as $PID ..."

elseecho"php-fpm is not running"fi

}

reload() {

check_pidif [ $RETVAL -eq 0]; then

kill-SIGUSR2 `cat $PID_FILE`elseecho"php-fpm is not running"fi

}

reopen() {

check_pidif [ $RETVAL -eq 0]; then

kill-SIGUSR1 `cat $PID_FILE`elseecho"php-fpm is not running"fi

}

RETVAL=0

case "$1" instart)

start

;;

stop)

stop

;;

restart)

stop

start

;;

status)

status

;;

reload)

reload

;;

reopen)

reopen

;;*)

echo"Usage: $0 {start|stop|restart|status|reload|reopen}"RETVAL=1esac

exit $RETVAL

编写好之后就可以用,启动测试

[root@localhost phpfpm]# bash phpfpm.sh

Usage: phpfpm.sh {start|stop|restart|status|reload|reopen}

[root@localhost phpfpm]#

可以看到 phpfpm.sh {start|stop|restart|status|reload|reopen} 启动有这些可执行

启动:

[root@localhost phpfpm]# bash phpfpm.sh start

执行以下命令查看是否启动成功,是否有进程

root@localhost phpfpm]# ps -ef | grep php

8efc8b13a9649e9d75060fc1220a63e8.png

可以看到红色框框标明的说明启动成功了;

既然配置放到了adv用户下,启动还是建议用adv这个用户来启动;

CentOS 7.2下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1  http://www.linuxidc.com/Linux/2016-09/134804.htm

CentOS 7 下使用 MySQL 5.7 + PHP 7 + Apache 部署 Nextcloud  http://www.linuxidc.com/Linux/2017-12/149945.htm

PHP 的详细介绍:请点这里

PHP 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java试讲题目,常见的Java面试题汇总

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼二、关于集合1、Java中的集合及其继承关系关于集合的体系是每个人都应该烂熟于心的,尤其是对我们经常使用的List,Map的原理更该如此.2、poll()方法和remove()方法区别?poll() 和 remove() 都是从队列中取出一个元素&…

快钱接口php,快钱支付接口

1.下载快钱的demo代码和一个证书包,还有 人民币网关自助接入接口文档2.生成自己的证书2.0.安装 Win32OpenSSL_Light-0_9_8k.exe打开openssl.exe,2.1. 输入genrsa -out private-rsa.key 1024,按enter即可。2.2 输入req -new -x509 -key private-rsa.key…

php 二维数组排序函数,php自定义函数实现二维数组排序功能

本文实例讲述了php自定义函数实现二维数组排序功能。分享给大家供大家参考,具体如下:/**作用: 二维数组排序函数,支持多键名排序* 返回: 排序好的数组* 使用: array_msort(数组,需要排序的键名,排序方式);* 例子: array_msort($cflist,"chapter_ord…

其他机器无法访问php,PHP 局域网其他机器无法访问的问题

刚安装wamp以后本地访问localhost或者127.0.0.1可以访问,但是如果局域网内其他电脑访问则出现403错误。这大都是因为服务器配置不正确的原因,wamp安装后默认是禁止其他机器访问的。1,首先确定关闭了防火墙并且80端口没有被占用2,修…

php sql查询占位符,使用命名占位符时PHP / SQL插入错误

我有以下PHP PDO语句:$STH $this->_db->prepare("INSERT INTO UserDetails (FirstName, LastName,Address, City, County, PostCode, Phone, Mobile, Sex, DOB,FundraisingAim, WeeksAim, LengthsAim, HearAboutID,MotivationID, WelcomePackID, Contac…

linux+守护进程+php,【转载】Linux 守护进程的编程方法

【转载】Linux 守护进程的编程方法原文见:http://www.linuxdevelop.org/tingxx/show.php?tablec&id3Linux 守护进程的编程方法作者: 北京工业大学 小胡守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发…

翻手算法php,PHP各种常见经典算法总结【排序、查找、翻转等】

本文实例讲述了php各种常见经典算法。分享给大家供大家参考,具体如下:冒泡排序算法public function test() {$arr array(43, 54, 62, 21, 66, 32, 78, 36, 76, 39);var_dump($arr);echo ;$arr $this->bubblesort($arr);var_dump($arr);}public func…

php文件上传详解,PHP文件上传实例详解!!!

这篇文章主要介绍了PHP文件上传实例代码,需要的朋友可以参考下首先来看下上传部分的表单代码:文件: 这里有几个要注意的地方,首先看这句,这里我们采用POST方法,个别浏览器还支持PUT方法,当然这需…

php上传商品信息并显示,第37课 thinkphp5添加商品基本信息及通过前置钩子上传商品主图 模型事件(勾子函数)...

[TOC]手册地址:before_insert(新增之前的操作)要实现的功能上传原图片,在新增数据之前生成三张缩略图片,然后再插入数据添加商品基本信息及通过后置钩子上传商品主图思路控制器里调用模型的save()方法保存数据模型里的用前置勾子beforeInsert()保存之前把上传原图片先成三张缩略…

java下标越界的三种处理方式,数组下标越界,该怎么解决

数组下标越界package import_csv;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.sql.Connect…

commvault备份mysql,备份MySQL数据库的4种方式

备份MySQL数据库的4种方式前言我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装,但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要.那么我…

php $app-run(),Thinkphp 5.x 应用启动 App::run()

在上文加载完配置等一系列工作之后,进入App::run(),在run()方法中,首先通过自动加载机制拿到 Request 的一个实例接着 $config self::initCommon()初始化公共配置,先是 addNamespace 添加app当前所在的命名空间,然后 …

php react-native,React-Native+Mobx实现商城APP

这次给大家带来React-NativeMobx实现商城APP,React-NativeMobx实现商城APP的注意事项有哪些,下面就是实战案例,一起来看一下。最近一直在学习微信小程序,在学习过程中,看到了 wxapp-mall这个微信小程序的项目&#xff…

mysql 流程控制语句,mysql PL(procedure language)流程控制语句

在MySQL中,常见的过程式SQL语句可以用在存储体中。其中包括IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句和LEAVE语句,它们可以进行流程控制。IF语句相当于Java中的if()...else if()...else...CASE语句相当于Java中的switch()...case A:...break;…

mysql 空闲几分钟速度变慢,MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本空闲状态...

当前位置:我的异常网 MySQL MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本MYSQL 运作一小段时间后,速度变得奇慢。而CPU基本空闲状态www.myexceptions.net 网友分享于:2015-08-26 浏览:11次MYSQL 运行一小段时间后&#xff…

matlab axis 用法,MATLAB中regionprops的用法

Matlab图像处理函数:regionprops这里给出在Matlab图像处理工具箱中非常重要的一个图像分析函数:regionprops。顾名思义:它的用途是get the properties of region,即用来度量图像区域属性的函数。语法STATS regionprops(L,propert…

emqx配置mysql认证,emqx使用mysql完成用户密码验证和ACL鉴权

emqx使用mysql完成用户密码验证和ACL鉴权emqx使用mysql完成用户密码验证和ACL鉴权摘要:前几篇博客介绍的是使用配置文件配置了ACL和客户端用户名密码配置实现生产环境下的安全登录和权限控制,各项配置比较繁琐,修改起来比较麻烦,下…

MATLAB课程表分配问题,求助matlab大神,学校的课程安排太骚了,我们压根就不用学matlab...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼上了MATLAB,可是对数学完全不感兴趣。老师弄了个作业,代码附件了。求大佬帮忙理解原理后简单做一个不一样的过程的程序。帮忙注释一下代码。(一开始忘记下载要币了。不好意思)两个.m文件,需要放一…

php时间转分钟前,PHP把时间转换成几分钟前几小时前几天前

现在很多网站将时间的显示都变得比较人性化,今天项目有一个也需要在对应的资讯后面显示为几分钟前、几小时前,接下来吾爱编程为大家分享一下PHP把时间转换成几分钟前、几小时前几天前的方法,有需要的小伙伴可以参考一下:1、项目需…

emlog_toolkit.php,emlog 4.0版本IIS6下伪静态划定规矩

emlog默许不能生成静态文件,不过彷佛有生成静态页面的相干插件,该插件博客吧先不研讨,本日博客簿要引见的是emlog 4.0版本在IIS6环境下的伪静态划定规矩,人人都晓得,经由过程伪静态能够让博客文章网址变得对搜索引擎越…