centos安装php7编译

centos7下安装php7
php7 centos7

安装PHP7
首先安装一些必须的依赖,这里就不阐述了,后面文章再细说
yum install -y \
gcc-c++ autoconf \

yum -y install postgresql-devel\
libjpeg libjpeg-devel libpng \
libpng-devel freetype freetype-devel \
libpng libpng-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel \
glib2 glib2-devel bzip2 bzip2-devel \
ncurses curl openssl-devel \
gdbm-devel db4-devel libXpm-devel \
libX11-devel gd-devel gmp-devel \
readline-devel libxslt-devel \
expat-devel xmlrpc-c xmlrpc-c-devel \
libicu-devel libmcrypt-devel \
libmemcached-devel
下载php7,并解压
$ cd /usr/src/
$ wget http://cn2.php.net/distributions/php-7.0.0.tar.gz
#解压
$ tar -xzxvf php-7.0.0.tar.gz
$ cd php-7.0.0.0
编译,安装


centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包
有两种方法解决,一种是使用第三方源,这样还可以使用yum来安装,简单方便,坏处是第三方源多少有中不可靠的感觉。
解决办法一
1、安装第三方yum源
wget http://www.atomicorp.com/installers/atomic
sh ./atomic
2、使用yum命令安装
yum  install  php-mcrypt  libmcrypt  libmcrypt-devel
     
解决办法二、
使用php mcrypt 前必须先安装Libmcrypt
libmcrypt源码安装方法:
2 3 4 5 6 7
cd /usr/local/src wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz tar -zxvf libmcrypt-2.5.8.tar.gz cd /usr/local/src/libmcrypt-2.5.8 ./configure --prefix=/usr/local make make install


具体参数意义以后再说
$ ./configure --prefix=/usr/local/php7 \
--with-mysql-sock --with-mysqli \
--enable-fpm  --enable-soap \
--with-libxml-dir --with-openssl \
--with-mcrypt --with-mhash \
--with-pdo-pgsql \
--with-pcre-regex  --with-zlib \
--enable-bcmath --with-iconv \
--with-bz2 --enable-calendar \
--with-curl --with-cdb --enable-dom \
--enable-exif --enable-fileinfo \
--enable-filter --with-pcre-dir \
--enable-ftp --with-gd \
--with-openssl-dir --with-jpeg-dir \
--with-png-dir --with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv --with-gettext \
--with-gmp --with-mhash \
--enable-json --enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl --with-onig \
--enable-pdo --with-pdo-mysql \
--with-zlib-dir  --with-readline \
--enable-session --enable-shmop \
--enable-simplexml --enable-sockets \
--enable-sysvmsg --enable-sysvsem \
--enable-sysvshm --enable-wddx \
--with-libxml-dir  --with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear --enable-intl
$ make
$ make install
上面的命令执行完后php7就已经安装在到了/usr/local/php7目录下了。正常的话我们执行下面的命令
$ /usr/local/php7/bin/php -v
PHP 7.0.0 (cli) (built: Dec 13 2015 22:28:12) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
接下来我们要做一些简单配置让php运行更简单
把php加入到系统环境变量中,做个软链即可
$ ln -sf /usr/local/php7/bin/php /usr/local/bin/php
$ php -v #和之前的/usr/local/php7/bin/php一样
添加php.ini,如果是生产环境则cp对应的php.ini-production
$ cp php.ini-development /usr/local/php7/lib/php.ini
配置php-fpm,先添加配置文件
$ cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
$ cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
$ cp /usr/src/php-7.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
配置文件添加成功后,我们启动php-fpm
$ service php-fpm start
php-fpm启动后我们还需要配置nginx才能通过访问php页面,首先确认nginx是启动的。service nginx restart,
配置nginx支持php,首先在web目录下新建一个php文件
$ echo '<?php phpinfo();' > /usr/share/nginx/html/info.php
然后访问 http://127.0.0.1/info.php,应该看到一个提示下载的页面。这是因为为nginx现在无法处理php文件,接下来我们配置nginx使其将php访问交给php-fpm处理。在/etc/nginx/nginx.conf 的server块里面添加下面的配置
location ~ \.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
保存退出,并重启nginx
$ service nginx restart
现在重新访问 http://127.0.0.1/info.php应该能看到我们熟悉的页面了。
安装php-memcached
下载php-memcached,从github上下载,记住一定要选择对应的php7分支
$ cd /usr/src
$ git clone https://github.com/php-memcached-dev/php-memcached.git
$ cd php-memcached/
$ git checkout php7
$ /usr/local/php7/bin/phpize
$ ./configure --with-php-config=/usr/local/php7/bin/php-config
$ make
$ make install
修改php.ini
$ vi /usr/local/php7/lib/php.ini
#在最下面加上
extension=memcached.so
保存并退出,重启php-fpm
$ service php-fpm start
再次访问http://127.0.0.0/info.php,就可以看到memcached已经安装成功了。 
以上php7,php7-memcached,nginx就已经安装完成了。
优化
打开opcache,个性php.ini文件
$ vi /usr/local/php7/lib/php.ini
[opcache]
zend_extension=opcache.so #新加此行
opcache.enable=1 #删除此行前面的注释,并将0改为1,启用opcache
opcache.enable_cli=1 #删除此行前面的注释,并将0改为1,在cli模式下启用opcache
opcache.revalidate_freq=10 #可选,设置10s检查一次文件变化
通过 http://127.0.0.1/info.php 和 php -i可以看到opcache在web和cli模式下都已经启用了。

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

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

相关文章

SpringBoot Web 入门

SpringBoot Web 要解决的问题&#xff1a; 导入静态资源首页模板引擎 Thymeleaf装配扩展SpringMVCCRUD拦截器国际化 SpringMVC的自动配置类为WebMvcAutoConfiguration &#xff0c;对应的properties类为WebMvcProperties //WebMvcProperties部分代码 //在application配置文…

CentOS7搭建ftp服务器(vsftpd,亲测成功)

安装vsftpd sudo yum install vsftpd 配置参数 命令行输入 vim /etc/vsftpd.conf 使用如下配置 # Example config file /etc/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daem…

handler类型的定时器

2019独角兽企业重金招聘Python工程师标准>>> 一、采用Handle与线程的sleep(long)方法 Handler主要用来处理接受到的消息。这只是最主要的方法&#xff0c;当然Handler里还有其他的方法供实现&#xff0c;有兴趣的可以去查API&#xff0c;这里不过多解释。 1. 定义…

Vue路由基本操作

路由index.js import Vue from vue import VueRouter from vue-router import Home from ../views/Home.vue import Me from ../views/me.vue import About from "../views/About.vue" import Centor from "/views/Center.vue" import _404 from "..…

Windows 10 搭建Python3 安装使用 protobuf

Windows 10 搭建Python3 安装使用 protobuf Protobuf对比XML、Json等其他序列化的优势 protobuf 不管是处理时间上&#xff0c;还是空间占用上都优于现有的其他序列化方式。内存暂用是java 序列化的1/9&#xff0c;时间也是差了一个数量级&#xff0c;一次操作在1us左右。缺点…

如何用PS的样式制作图片椭圆形边框

制作过程&#xff1a; 1&#xff09;点击文件→新建&#xff0c;画布尺寸按需&#xff0c;背景白色。 2&#xff09;点击形状工具→椭圆形工具&#xff0c;画一椭圆&#xff0c;位置居中大小按需。 3&#xff09;选择样式&#xff0c;本例如图1 4&#xff09;点击选框工具→椭圆…

Vue + SpringBoot跨域

Vue设置 1、在项目根目录创建文件vue.config.js module.exports {devServer: {proxy: {/api: {target: http://zlf.plus, //对应自己的接口changeOrigin: true,ws: true,pathRewrite: {^/api: }}}}}2、 在main.js中配置 import Vue from vue import App from ./App.vue imp…

Windows10 64位 安装 Postgresql 数据库

Windows10 64位 安装 Postgresql 数据库 1&#xff0c;下载Postgresql 10.7 版本&#xff0c;下载地址 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 2&#xff0c;打开安装包&#xff0c;傻瓜式默认安装&#xff0c;请谨记 “数据库密码” 和 “…

node.js入门小案例

nodejs 和 Java node.js是运行在服务端的JavaScript。node.js是一个基于chrome JavaScript 运行时建立的一个平台。底层架构 是JavaScript。 node.js是一个事件驱动I/O服务端JavaScript环境&#xff0c;chrome V8引擎执行JavaScript的速度非常快&#xff0c;性能非常好。 可以…

Windows10 64位安装DB2数据库

Windows10 64位安装DB2数据库 安装前准备 &#xff1a; 系统&#xff1a;Windows10 64位 DB2 v9.5下载地址&#xff08;迅雷&#xff09;&#xff1a;http://big3.ddooo.com/db2_93661.rar 选择安装包解压位置&#xff0c;并复制记住&#xff1a; 去到解压的安装目录&#xff…

crossdomain.xml

使用crossdomain.xml让Flash可以跨域传输数据 本文来自http://www.mzwu.com/article.asp?id975 一、概述 位于www.mzwu.com域中的SWF文件要访问www.163.com的文件时&#xff0c;SWF首先会检查163服务器目录下是否有crossdomain.xml文件&#xff0c;如果没有&#xff0c;则访问…

npm包管理器安装模块

使用npm init 初始化目录(npm init -y) 可以省略中间过程 会在项目根目录生成一个文件 package.json&#xff08;类似于Maven 的pom文件&#xff09; {"name": "test","version": "1.0.1","description": "第一次创建…

Git报错: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

Git报错: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 在使用Git来克隆仓库报了错误&#xff0c;如下&#xff1a; fatal: unable to access ‘https://github.com/xiaobingchan/machine_learn/‘: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in co…

linux下的redis配置;

2019独角兽企业重金招聘Python工程师标准>>> linux环境下的php和redis的集成&#xff1a;http://blog.csdn.net/21aspnet/article/details/6960757 转载于:https://my.oschina.net/wangfree/blog/115987

Babel入门

Babel简介 Babel 是一个工具链&#xff0c;主要用于将 ECMAScript 2015 版本的代码转换为向后兼容的 JavaScript 语法&#xff0c;以便能够运行在当前和旧版本的浏览器或其他环境中。 中文文档 安装 npm install -g bable-cli 全局安装 babel --version 查看版本 Babel的…

Server 2012使用Windows PowerShell cmdlet安装角色和角色服务功能

Server 2012使用Windows PowerShell cmdlet安装角色和角色服务功能 Server 2012使用Windows PowerShell cmdlet安装角色和角色服务功能 Windows Server 2012 安装 SQL server 2008 出现了如下错误&#xff1a;解决方案1&#xff08;简单&#xff0c;界面操作&#xff09;&…

commonjs 和 es6模块化开发入门

commonjs模块化 首先写一个api&#xff0c;提供给外部调用 //commonjslet sum (a,b)> ab;// 暴露接口 module.exports {sum // sum:sum }导入调用 const m require(./Api.js)console.log(m.sum(10,20));es6模块化 首先写一个api&#xff0c;提供给外部调用 //es6 exp…

黑马程序员_7k面试题交通管理系统

------- android培训、java培训、期待与您交流&#xff01; ---------- //以下知识来在张孝祥老师的讲解总结 项目需求 模仿实现十字路口的交通灯系统逻辑&#xff0c;具体需求如下 1.异步随机生成按照各个线路行驶的车辆 例如&#xff1a; 由南而来去往北向的车辆......直行车…

python新建txt文件,并逐行写入数据

python2新建txt文件&#xff0c;并逐行写入数据 #codingutf-8 import os txtName "codingWord.txt" ffile(txtName, "a") for i in range(1,100):if i % 2 0:new_context "C" \nf.write(new_context)else:new_context "Python" …