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

article/2025/8/29 9:04:45

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的修改尽量参考公司的配置要求)


http://chatgpt.dhexx.cn/article/N7uVkPvl.shtml

相关文章

用 source map 调试生产环境

当我们的应用程序部署到生产环境时,我们发现它与我们在开发环境时的代码不同。我们的代码在构建过程中会以各种方式进行修改和优化。 TypeScript 被转译、压缩。生成的 JavaScript 包尽可能小并且能够在浏览器中正常运行。 所有这些步骤都很有效率,它们…

uniapp 小程序 开发环境和生产环境

uni开发小程序 运行到开发工具 再上传 process.env.NODE_ENV 获取的值是development 一直是开发环境 用uni发行 上传到微信公众平台是生成环境 在 HBuilderX 中,点击“运行”编译出来的代码是开发环境,点击“发行”编译出来的代码是生产环境 let url;if …

Vue cli3配置生产环境,开发环境,和测试环境

目录1、先在package.json文件中添加: 2、在项目目录下建立 .env文件和.env.test文件 3、配置api变量 3.1、配置axios的baseURL路径 3.2、自己拼接的路径 4、.env知识点补充 4.1,关于文件名:必须以如下方式命名,不要…

31 SpringBoot多环境的切换(生产环境、开发环境、测试环境)

参考链接: Spring官网 Spring官网 外部配置加载顺序的说明 SpringBoot多环境的切换(生产环境、开发环境、测试环境)_周太阳的博客-CSDN博客_springboot测试生产环境切换 java maven 测试生产环境配置_SpringBoot生产环境和测试环境配置分离的教程详解_落云歌语文…

生产环境关闭 swagger

#生产环境需要关闭 swagger 防止接口暴露 1,启动判断写在相应的环境配置文件中,根据条件判断是否启动 swagger : 添加配置项:swagger.is.enable #是否激活 swagger true or false swagger.is.enabletrue2,代码取值&a…

前端工程师生产环境 debugger 技巧

关注公众号 前端开发博客,领27本电子书 回复加群,自助秒进前端群 导言 开发环境 debug 是每个程序员上岗的必备技能。生产环境呢?虽然生产环境 debug 是一件非常不优雅的行为,但是由于种种原因,我们又不得不这么干。 那…

【微信小程序 | 实战开发】开发环境、测试环境和生产环境

写在前面: 你是否想要掌握人工智能的最新技术和应用?你是否想要成为未来社会的创新者和领导者?你是否想要和全球的优秀导师和同学一起学习和交流?如果你的答案是肯定的,那么欢迎来到床长人工智能教程网站,这…

Nginx生产环境平滑升级

一.背景 最近遇到一个比较尴尬而又实际的问题,那就是我们生产环境使用的Nginx是Centos6的老古董。业务需求需要加载Nginx的一个模块来实现,但是版本太老了,需要Nginx1.18之后才能支持,而我们的是Nginx1.12。 那升级Nginx是我们要做…

生产环境和开发环境_环境部署:开发、测试和线上环境的区别

点击蓝字 关注我们 软件开发环境(Software Development Environment,SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者…

python生产环境部署

文章目录 一、前言二、准备工作三、安装python四、安装虚拟环境 一、前言 在实际工作中,很多公司的生产环境都是隔离外网的,而且往往多个项目组共用相同的服务器,因此经常会遇到两个问题: python以及第三方模块的版本难以统一&a…

django生产环境部署

django生产环境部署 生产环境中的数据流 参考文档: wsgi详解:https://blog.csdn.net/li_101357/article/details/52748323 wsgi协议介绍(萌新版):https://blog.csdn.net/j163you/article/details/80919360 廖雪峰…

开发环境、测试环境、生产环境 到底是什么?

读一些官方文档的时候,总会遇到以下几个关键的名词,一开始我不太懂,绕来绕去,让我对文档阅读产生了误会,于是查找了一些资料。 百度解释如下: 开发环境:开发环境是程序猿们专门用于开发的服务器…

生产环境和开发环境

开发环境(development) 开发环境: 是指程序猿专门用于开发的服务器,配置比较简单随意,主要是为了开发过程中调试方便,一般打开全部错误报告和测试工具。 生产环境:(production&…

postman接口自动化测试

Postman除了前面介绍的一些功能,还有其他一些小功能在日常接口测试或许用得上。今天,我们就来盘点一下,如下所示: 1.数据驱动     想要批量执行接口用例,我们一般会将对应的接口用例放在同一个Collection中&#xf…

接口自动化测试:Postman实战教程

01 接口测试 (1)服务器端(server):在使用别人的服务器上,例如微信APP客户端,服务端在腾讯的服务端上,微信上的账号信息,聊天记录均存储在服务端上;用户A发送…

APITest接口自动化测试平台

接口自动化测试平台 环境 JAVA 1.8 MYSQL 测试管理平台为 war(SpringSpringMVCMaven) 定时执行为 jar(SpringMaven) ps:该项目测试管理平台(包括用例调试)与定时执行是分开的,可分开…

全网最全,接口自动化测试怎么做的?精通接口自动化测试详解

目录:导读 一、前言二、接口自动化测试的 "能 "1、接口自动化的目标2、接口自动化 Case 用例设计原则3、接口自动化用例定时跑 三、接口自动化测试的 "不能 "1、接口自动化之难点2、接口自动化之痛点 一、前言 接口通俗来讲就是前端和后段之间…

接口自动化测试框架搭建

一、原理及特点 参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理,使用了TestNG参数化测试,通过xml文件来执行case。测试报告这里用到第三方的包ReportNG 项目组织用Maven 二、准备 使用工具&#xff1…

接口自动化测试实践指导(下):接口自动化测试断言设置思路

在前篇文章: 接口自动化测试实践指导(中):接口测试场景有哪些 中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作及接口测试场景有哪些。 本篇文章是最后一篇,主要分享一下接口自动化测试断言设置思路。 如…

Apifox接口自动化测试方法

1.新建测试用例 2.输入名称、分组、优先级后点击确定 3.点击测试用例名称或者详情 4.添加步骤,两个方式都可以 5.选择要测试的接口后选择模式,复制/绑定,复制-复制一份数据,和原来的接口相互独立,互不影响&…