linux环境下编译部署php生产环境
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生产环境相关推荐
- linux禅道怎么改公司名字,在linux系统下一键部署禅道环境
禅道是一个测试管理工具,可以在里面进行项目管理以及bug用例管理,是一个非常好用的管理工具. 而且最重要的是他有开源的版本 那么今天,我就给大家简单讲解一下如何在linux服务器里部署搭建一个禅道的环 ...
- Linux环境下Tomcat部署Solr4.x
Linux环境下Tomcat部署Solr 最近接手了公司搜索相关的业务,由于其使用的是Solr,故趁着周末自己鼓捣下; 由于业务上使用的是Solr4.2.0版本,因此在学习时,使用相对较老的版本Sol ...
- linux mysql5.6编译_Linux 环境下编译安装MySQL5.6的笔记记录
一.首先搭建好Linux环境,我这边使用的是redhat enterprise 6.5,并且建议磁盘划分逻辑卷,以便后期的扩容工作. 二.环境搭建好了之后,我们就要去准备MySQL的安装文件,到现在为 ...
- NDK实践(一)在linux环境下编译ffmpe
系列文章目录: NDK实践(一)在linux环境下编译ffmpe NDK实践(二)将编译的ffmpeg静态库集成到Android工程 最近开始接触学习ndk开发,本着边学习边实践的原则,计划完成视频编 ...
- Linux环境下编译并执行ava helloworld程序
http://blog.lupaworld.com/home-space-uid-24466-do-blog-id-2578.html 已经学会怎样在Windows下怎样编辑,编译和运行Java程序了 ...
- soc eds能 编译linux,在SoCEDS环境下编译和更新preloader和uboot程序的方法
在SoCEDS环境下编译和更新preloader和uboot程序的方法 前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloader和 ...
- soc eds能 编译linux,SoCEDS环境下编译和更新preloader和uboot程序的方法
在SoCEDS环境下编译和更新preloader和uboot程序的方法 前面有介绍preloader在HPS boot过程中的的作用,接下来 从Terasic网站下下载的SD image是在13.1环 ...
- soc eds能 编译linux,【转】在SoCEDS环境下编译和更新preloader和uboot程序的方法
[转]在SoCEDS环境下编译和更新preloader和uboot程序的方法 [复制链接] 在SoCEDS环境下编译和更新preloader和uboot程序的方法 前面有介绍preloader在HPS ...
- awstats linux日志分析,Linux环境下安装部署AWStats日志分析系统实例
AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息. 此文章主要讲解如何在linux系统下安 ...
最新文章
- mysql err 1349_MySQL 视图 第1349号错误解决方法
- 用python画哆啦a梦的身体_用Python画一个哆啦A梦
- 6、Dcoker 容器数据卷用DockerFile添加
- linux安装unzip及使用
- 在Java 8中使用Stream API解析文件
- python if else 必须同时出现吗,Python:Inline if语句else什么也不做
- Ubuntu配置完全教程
- delphi 中如果不进行 closehandle 会怎么样_心理学:当你迷茫了,请坚持做三件事,你的未来会越来越好...
- 怎么形容智能冰激凌机器人_有关于形容描写冰激凌的句子及图片
- 有奖投票丨HC2019开发者关注的TOP10问题你最想听哪个?
- Redis入门第一篇【介绍、安装】
- PyTorch 1.5 发布,与 AWS 合作 TorchServe!
- Secondary Namenode工作机制详解
- Map集合常见面试题
- Mtalab 空间直线和球形的交点以及图像绘制
- asp毕业设计——基于asp+sqlserver的英语网络考试系统设计与实现(毕业论文+程序源码)——网络考试系统
- 调侃:《金枝欲孽》里的职场人生
- 第五周 项目二 建立链栈算法库
- eclipse如何配置工作环境
- html 把table固定住,html Table实现表头固定