最详细的linux安装php过程
本文主要和大家分享最详细的linux安装php过程,然后写好了nginx的安装配置,后面就是php的安装和mysql的安装,不过时间有限,而且放篇里也太长,所以都是分开来写,php安装完毕后就是mysql的配置了。
一:检查是否安装了php
1)yum安装检查:yum list已安装| grep php
2)rpm安装检查:rpm -qa | grep php
3)自己编译安装的有多种方式查询,例如查找php的执行程序,或者检查进程ps -ef | grep php等方法。
二:检查如果没有安装php,可以准备php安装前的初始软件,用yum install xxxx即可安装,当然不嫌麻烦麻烦也可以自己编译安装,这里就不详细说了。
1)zlib以及zlib-devel zlib提供数据压缩的函数库,也是nginx的前端软件,由于zlib需要编译php的zlib扩展,而编译中会需要使用zlib.h这个头文件,头文件在zlib-devel中,因此也需要下载zlib-devel。
2)libxml2以及libxml-devel libxml2是一个c语言的xml程序库,可以简单的对xml进行各种操作,并支持xpath查询,以及部分支持xslt转换等功能。
3)libxslt以及libxslt-devel如果不安装libxslt-devel会提示找到xslt.config文件,xslt是转换xml到其他格式的扩展。
3)openssl及openssl-devel安全专有层密码库
4)jpeg IJG的jpeg库,php的gd库所需。
5)libpng是c语言写的比较复杂的的pngpng文件的跨平台的库,可以帮助轻松的识读pngpng文件的每一行替换,php的gd库所需。
6)freetype及freetype-devel免费开源的且可移植的字体引擎,提供统一的接口访问多种字体格式,这两个都是gd库的依赖软件,所以如果没有安装,或者版本太低,在安装phptime设定的是安装gd库插入报错,另外不安装-devel也是会报错的,因为编译扩展的时候会ft2build.h文件,报错如下图。
7)gd gd是php处理图形的扩展库
8)curl,由于我的yum里的版本太低了,所以直接自己编译安装的,安装方式很简单,也就是wget curl下载地址后tar解压,新建/ usr / local / curl文件夹,然后进入curl解压后的文件夹里配置。/configure--prefix = / usr / local / curl立即,最后make以及make install就安装好了。
注意:xxx-devel是xxx软件的开发包,包含头文件以及静态库甚至源码。
三:php下载安装
1)用wget下载php的tar.gz文件:wget http://br2.php.net/get/php-7.2.2.tar.gz
2)解压tar.gz文件:tar zxvf php-7.2.2.tar.gz
3)新建待会要安装php的文件夹:mkdir / usr / local / php,然后进入解压后的php安装包文件夹里,配置配置:
./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-zip
注意:
--prefix =安装目录
--with-使用包名称[=包目录]
--enable-需要激活的功能
四:配置php相关文件
1)配置php.ini,这是php的配置文件:cp /home/myload/php-7.2.2/php.ini-development /usr/local/php/lib/php.ini
2)配置php-fpm.conf,这是php-fpm配置文件:cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
3)配置www.conf,配置用户的文件:cp etc / php-fpm.d / www.conf.default etc / php-fpm.d / www.conf
4)将php-fpm启动文件复制到init.d文件夹中一个方便启动php:cp -R sbin / php-fpm /etc/init.d/php-fpm
五:启动php,确定是否安装成功
执行命令/etc/init.d/php-fpm立即
查看是否启动:ps -ef | grep php既可以看到php启动了一些进展
六:安装成功后配置nginx支持php
1)更改php.ini文件,vim /usr/local/php/lib/php.ini
通过查找cgi.fix_pathinfo = 1这个配置,并删除注释,并替换cgi.fix_pathinfo = 0,这里并不属于nginx支持php配置相关,或者专属于nginx下php的一个安全漏洞,如果此处缩小1 ,用户方可以通过上传图片来上传木马,然后通过网址访问该图片地址,并在地址后加入/xxx.php将图片作为PHP文件运行,这只是在nginx里才会存在的问题,apache和iis都没有该问题
以上问题可以直接想到鸟哥的博客,写的相当详细:http://http://www.laruence.com/2010/05/20/1495.html
2)配置web专用的组和用户
添加www用户组:groupadd www
添加www用户组下的用户www:useradd -g www www
3)更改php-fpm.conf配置
将user = nobody的注释去掉,加入nobody改成上面配置的www用户
将group = nobody的注释去掉,加入nobody改成上面配置的www用户组
最后检查php-fpm.conf最后的包含的值是不是正确的www.conf目录地址,如果不正确则换成正确的目录地址。
4)更改www.conf配置
将user = nobody的注释去掉,加入nobody改成上面配置的www用户
将group = nobody的注释去掉,加入nobody改成上面配置的www用户组
5)更改nginx.conf文件/etc/local/nginx/conf/nginx.conf
将#user = nobody去掉注释并替换user = www
删除位置〜\ .php $ {...}这段代码的注释,依次fastcgi_param里的/ scripts替换$ document_root
最后将位置/ {...}里替换索引后面添加上index.php,确保index.php作为替代的首页
6)重启php-fpm和nginx,可以杀死所有php-fpm然后再/etc/init.d/php-pfm即可重启,/ usr / local / nginx / sbin / nginx -s stop可以停止nginx,然后执行/ usr / local / nginx / sbin / php立即重启。
7)在html目录里随便创建一个php文件,内容是phpinfo();,然后在浏览器中访问该文件地址,看是否正确的php相关信息,如果正确显示则配置成功。
七:配合apache支持php,这个后续再添加,以待继续...
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处。
最详细的linux安装php过程的更多相关文章
- centos linux安装telnet 过程及问题(源于内部tomcat网站,外部无法访问)
首先本地没有telnet客户端及服务器 root权限下安装 yum install telnet yum install telnet-server vi /etc/xinetd.d/telnet 这 ...
- Dubbo详细介绍与安装使用过程
今天看到一篇不错的dubbo介绍教程,原文链接:http://blog.csdn.net/xlgen157387/article/details/51865289 1 Dubbo介绍 1.1 dubb ...
- Linux安装mysql过程(转+完善)
http://blog.csdn.net/jerome_s/article/details/52883234yum 安装MySQL 1. 检查安装情况 查看有没有安装过: ...
- 记录Kali Linux 安装输入法过程
1.首先设置源,打开终端输入. eafpad /etc/apt/sources.list 清空Sources.list里的内容,设置一个阿里云的源就行了. deb http://mirrors.ali ...
- linux安装anaconda过程
今天在centos7下安装了Anaconda,将安装过程记录如下 下载安装Anaconda 下载地址:https://repo.continuum.io/archive/index.html 打开页面 ...
- 免费开源的客服系统 Linux 服务器环境安装部署过程
最近因为项目需要,要找一款在线客服系统集成在 APP 中使用,而且涉及到生意开单,客服系统必须稳定可靠.另外甲方要求,必须支持 Linux 服务器环境. 我们以 Ubuntu 18.04 为例把安装部 ...
- 详解Linux安装GCC方法
转载自:http://blog.csdn.net/bulljordan23/article/details/7723495/ 下载: http://ftp.gnu.org/gnu/gcc/gcc-4. ...
- 为你详解Linux安装GCC方法
下载: http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/gcc-4.5.1.tar.bz2浏览: http://ftp.gnu.org/gnu/gcc/gcc-4.5.1/查 ...
- 详解Linux安装GCC
为你详解Linux安装GCC方法 2009-12-11 14:05 佚名 博客园 字号:T | T 现在很多程序员都应用GCC,怎样才能更好的应用GCC.本文以在Redhat Linux安装GCC4. ...
随机推荐
- Word报表生成
/// <summary> /// 生产报表 /// </summary> /// <param name="strTemplate">< ...
- C 库函数 - fmod()
C 库函数 - fmod() 转自: C 标准库 - <math.h> 描述 C 库函数 double fmod(double x, double y) 返回 x 除以 y 的余数. 声明 ...
- knitr::kable实现结构化展示数据
一般做检验,直接会summary结果,通常情况下,会看到很多很多,口区~ 如何提取有用的信息,然后结构化展示数据呢? kable函数了. 我先给出学长给我的一部分,回头整理好了再补充 culture_ ...
- TCP/IP协议和socket
1.传输层基于tcp协议的三次握手和四次挥手? 传输层有两种数据传输协议,分别为TCP协议和UDP协议,其中TCP协议为可靠传输,数据包没有长度设置,理论可以无限长,而UDP协议为不可靠传输,报头一共 ...
- 【PAT甲级】1118 Birds in Forest (25分)(并查集)
题意: 输入一个正整数N(<=10000),接着输入N行数字每行包括一个正整数K和K个正整数,表示这K只鸟是同一棵树上的.输出最多可能有几棵树以及一共有多少只鸟.接着输入一个正整数Q,接着输入Q ...
- 利用Master库spt_values表 连续数字
SELECT CONVERT ( ), dateadd(d, number, GETDATE()), ) AS every_time FROM master..spt_values n WHERE n ...
- linux安装php-laravel环境
1.运用传说中的宝塔面板安装(https://www.bt.cn/download/linux.html)网站地址 在xshell软件中安装一下命令 1.1 宝塔centos安装 wget -O in ...
- MYSQL碰到The total number of locks exceeds the lock table size 问题解决记录
解决记录如下: 在mysql里面进行修改操作时提示:The total number of locks exceeds the lock table size ,通过百度搜到innodb_buffer ...
- Linux下Libevent安装和简单实用
前言 Libevent 是一个用C语言编写的.轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大:源代码相 ...
- Git - 08. git branch
概述 简单描述以下, git branch 讲解的目的, 只是方便新手入门, 基本都是最简单的操作 所以东西可能不全 一是 我不理解 二是 有的东西出现, 可能会让新手产生误解 准备 os win10 ...