linux环境下编译部署php生产环境

版本控制
php:7.2.4
nginx:1.9.9
部分插件版本
xlswriter:1.3.3.2
redis:3.1.3

一、安装php

1.安装依赖(之后安装缺少的依赖都可以用yum安装)

yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

2.下载php源码包
可放到任意目录,也可在根目录下新建文件夹,我放在根目录下新建的文件夹中。
3.解压php源码包(根据自己下载的版本而定)
tar -zxvf php-7.2.4.tar.gz
4.进入到刚解压的php源码目录
cd php-7.2.4
5.启用部分插件
./:是linux的命令,代表运行这段指令。
prefix=/usr/local/php:这个是php源码编译后的路径。
with-config-file-path=/usr/local/php/etc:这个是php编译后配置文件的路径,之后的php.ini文件也要放在这个路径下,要不然识别不到。
--with-:代表引入了某个插件。
--enable-:代表启用这个插件。
--disable-:代表不启用这个插件。
\:代表换行。
此处的插件并不完整,之后可以按需对插件进行编译安装或者在源码包中安装,后续会提到部分插件在源码包下安装。

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-xmlreader \
--enable-xmlwriter \
--enable-soap \
--enable-calendar \
--with-curl \
--with-zlib \
--with-gd \
--with-pdo-sqlite \
--with-pdo-mysql \
--with-mysqli \
--with-mysql-sock \
--enable-mysqlnd \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-exif \
--enable-bcmath \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--with-openssl \
--enable-ftp \
--with-kerberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--enable-fpm \
--with-fpm-user=php-fpm \
--with-fpm-group=php-fpm \
--enable-fileinfo

6.编译
如果步骤5没有报类似error的错误,进行此步骤,如果有报错优先解决报错,重新执行步骤5,直到步骤5没报错再执行此步骤。

make

7.安装
如果步骤6没有报类似error的错误,进行此步骤,如果有报错优先解决报错,重新执行步骤6,直到步骤6没报错再执行此步骤。

make install

8.复制php.ini配置文件
如果步骤7没有报类似error的错误,进行此步骤,如果有报错优先解决报错,之后再进行此步骤。进入到之前解压的php源码包中,找到php.ini-production文件,然后执行以下指令。

cp php.ini-production /usr/local/php/etc/php.ini


9.复制fpm配置文件
将/usr/local/php/etc路径下的php-fpm.conf.default文件复制到此路径下并且重命名为php-fpm.conf。
(1)进入fpm配置文件目录:cd /usr/local/php/etc
(2)复制并且重命名文件:cp php-fpm.conf.default php-fpm.conf

10.配置php-fpm开机自启
(1)进入到php源码包(视自己的版本而定):
cd /usr/local/src/php-7.2.4
(2)复制文件:
cp ./sapi/fpm/php-fpm.service /usr/lib/systemd/system/

开机启动php-fpm:

systemctl enable php-fpm

启动php-fpm:

systemctl start php-fpm

查看状态:

systemctl status php-fpm

添加环境变量:
打开此文件 vim /etc/profile
在文件末尾追加以下内容,保存退出:

export PATH=$PATH:/usr/local/php/bin/

使配置文件立即生效。

source /etc/profile

测试(出现如下图内容即成功):

 php -v


11.配置错误日志和pid文件
(1)进入此目录

cd /usr/local/php/etc

(2)编辑此文件,

vim php-fpm.conf
配置错误日志(18行)error_log = /usr/local/php/var/php-fpm.log
配置pid文件(26行)pid = /usr/local/php/var/run/php-fpm.pid
保存并退出


12.配置www.conf文件
(1)进入此目录

cd /usr/local/php/etc/php-fpm.d

(2)复制文件

cp www.conf.default  www.conf

(3)编辑vim www.conf,修改为下图的样子,此文件其他参数视公司标准而定

vim www.conf

二、安装Nginx

1.下载Nginx源码包(如果没有安装wget命令,可以直接把后面的网址复制到浏览器下载,然后用xpft将压缩包传到系统中)

wget http://nginx.org/download/nginx-1.9.9.tar.gz

2.解压安装包

tar -zxvf nginx-1.9.9.tar.gz

3.进入解压后的源码包

cd nginx-1.9.9

4.执行编译指令(Nginx编译后的目录:–prefix=/usr/local/nginx\)

 ./configure --user=nginx\--group=nginx\--prefix=/usr/local/nginx\--with-http_stub_status_module\--with-http_ssl_module\--with-http_gzip_static_module\--with-ipv6

5.安装(如果第4步没有报任何error的错误,则继续执行此步骤,有报错的话先解决报错,再重新执行第四步,直到没有报错再依次执行此步骤)

make
make install

6.修改配置文件(配置文件nginx.conf的修改尽量参考公司的配置要求)

linux环境下编译部署php生产环境相关推荐

  1. linux禅道怎么改公司名字,在linux系统下一键部署禅道环境

    禅道是一个测试管理工具,可以在里面进行项目管理以及bug用例管理,是一个非常好用的管理工具. 而且最重要的是他有开源的版本 那么今天,我就给大家简单讲解一下如何在linux服务器里部署搭建一个禅道的环 ...

  2. Linux环境下Tomcat部署Solr4.x

    Linux环境下Tomcat部署Solr 最近接手了公司搜索相关的业务,由于其使用的是Solr,故趁着周末自己鼓捣下; 由于业务上使用的是Solr4.2.0版本,因此在学习时,使用相对较老的版本Sol ...

  3. linux mysql5.6编译_Linux 环境下编译安装MySQL5.6的笔记记录

    一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为 ...

  4. NDK实践(一)在linux环境下编译ffmpe

    系列文章目录: NDK实践(一)在linux环境下编译ffmpe NDK实践(二)将编译的ffmpeg静态库集成到Android工程 最近开始接触学习ndk开发,本着边学习边实践的原则,计划完成视频编 ...

  5. Linux环境下编译并执行ava helloworld程序

    http://blog.lupaworld.com/home-space-uid-24466-do-blog-id-2578.html 已经学会怎样在Windows下怎样编辑,编译和运行Java程序了 ...

  6. soc eds能 编译linux,在SoCEDS环境下编译和更新preloader和uboot程序的方法

    在SoCEDS环境下编译和更新preloader和uboot程序的方法 前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloader和 ...

  7. soc eds能 编译linux,SoCEDS环境下编译和更新preloader和uboot程序的方法

    在SoCEDS环境下编译和更新preloader和uboot程序的方法 前面有介绍preloader在HPS boot过程中的的作用,接下来 从Terasic网站下下载的SD image是在13.1环 ...

  8. soc eds能 编译linux,【转】在SoCEDS环境下编译和更新preloader和uboot程序的方法

    [转]在SoCEDS环境下编译和更新preloader和uboot程序的方法 [复制链接] 在SoCEDS环境下编译和更新preloader和uboot程序的方法 前面有介绍preloader在HPS ...

  9. awstats linux日志分析,Linux环境下安装部署AWStats日志分析系统实例

    AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息. 此文章主要讲解如何在linux系统下安 ...

最新文章

  1. mysql err 1349_MySQL 视图 第1349号错误解决方法
  2. 用python画哆啦a梦的身体_用Python画一个哆啦A梦
  3. 6、Dcoker 容器数据卷用DockerFile添加
  4. linux安装unzip及使用
  5. 在Java 8中使用Stream API解析文件
  6. python if else 必须同时出现吗,Python:Inline if语句else什么也不做
  7. Ubuntu配置完全教程
  8. delphi 中如果不进行 closehandle 会怎么样_心理学:当你迷茫了,请坚持做三件事,你的未来会越来越好...
  9. 怎么形容智能冰激凌机器人_有关于形容描写冰激凌的句子及图片
  10. 有奖投票丨HC2019开发者关注的TOP10问题你最想听哪个?
  11. Redis入门第一篇【介绍、安装】
  12. PyTorch 1.5 发布,与 AWS 合作 TorchServe!
  13. Secondary Namenode工作机制详解
  14. Map集合常见面试题
  15. Mtalab 空间直线和球形的交点以及图像绘制
  16. asp毕业设计——基于asp+sqlserver的英语网络考试系统设计与实现(毕业论文+程序源码)——网络考试系统
  17. 调侃:《金枝欲孽》里的职场人生
  18. 第五周 项目二 建立链栈算法库
  19. eclipse如何配置工作环境
  20. html 把table固定住,html Table实现表头固定

热门文章

  1. 招聘java是什么意思_java程序员,一般招聘都要求些啥
  2. day18-java
  3. JAVA项目实战过程中踩坑总结一
  4. 【操作系统】进程-吸烟者问题
  5. 重磅!腾讯助推十亿级节点图计算进入分钟级时代;沈向洋离开微软;阿里:拥有超6000项已授权专利,涉及云、AI等领域……...
  6. 推荐六个在线生成网址二维码的API接口
  7. Sendmail大全
  8. Hibernate QBE 复合查询问题
  9. win10 nas搭建_树莓派之实现简单的家庭NAS
  10. 不放量上行,就缩量盘整