当前位置:首页 > 文章列表 > 数据库 > MySQL > 全新centos系统下源码安装php+nginx

全新centos系统下源码安装php+nginx

来源:SegmentFault 2023-01-16 10:24:01 0浏览 收藏

本篇文章给大家分享《全新centos系统下源码安装php+nginx》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

安装
nginx

首先我们得去nginx官网下载源码包以及查看文档。编译文档需要仔细查看,先简单了解一下配置参数。

nginx
配置参数
  • --prefix=path
    定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用
    /usr/local/nginx
  • --sbin-path=path
    设置nginx的可执行文件的路径,默认为
    prefix/sbin/nginx
  • --conf-path=path
    设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为
    prefix/conf/nginx.conf
  • --pid-path=path
    设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为
    prefix/logs/nginx.pid
  • --error-log-path=path
    设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为
    prefix/logs/error.log
  • --http-log-path=path
    设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为
    prefix/logs/access.log
  • --build=name
    设置一个可选的nginx构建名称。
  • --user=name
    设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。
  • --group=name
    设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。
  • --with-select_module
    --without-select_module
    启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
  • --with-poll_module
    --without-poll_module
    启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
  • --without-http_gzip_module
    — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。
  • --without-http_rewrite_module
    不编译重写模块。编译并运行此模块需要PCRE库支持。
  • --without-http_proxy_module
    — 不编译http_proxy模块。
  • --with-http_ssl_module
    — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。
  • --with-pcre=path
    — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.41)需要从PCRE网站下载并解压。其余的工作是Nginx的 ./configure 和 make 来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。
  • --with-pcre-jit
    —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。
  • --with-zlib=path
    —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.11)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。
  • --with-cc-opt=parameters
    — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".
  • --with-ld-opt=parameters
    —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:
    --with-ld-opt="-L /usr/local/lib"

翻译大部分来源于网络,这里不展开说明

nginx
各个编译参数的含义,先完成安装,毕竟之后我们可以通过配置文件或者重新编译实现功能上的需求。下面是官方文档的编译参数示例,这些参数必须在同一行输入(别用回车换行,那样就开始编译了o(╥﹏╥)o)

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-8.41
    --with-zlib=../zlib-1.2.11

路径我觉得没必要配置,默认的就很好,

--with-http_ssl_module
是对https访问的支持,显然我们需要它,编译这个模块需要
OpenSSL
的支持,我们在前提条件中已经用
yum
安装了
OpenSSL
--with-pcre
是对
ngx_http_rewrite_module
中正则表达式的支持,我们也需要它;
--with-zlib
ngx_http_gzip_module
需要的,我们最好包含它,
ngx_http_gzip_module
可以一定程度上减少服务器负担,当然不编译进来也没事,以后需要可以再重新编译进来。
编译安装
nginx

//下载nginx源码包
wget http://nginx.org/download/nginx-1.13.9.tar.gz
//下载pcre源码包
wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz
//下载zlib源码包
wget http://www.zlib.net/zlib-1.2.11.tar.gz
//解压
tar zxvf nginx-1.13.9.tar.gz
tar zxvf pcre-8.41.tar.gz
tar zxvf zlib-1.2.11.tar.gz
//进入nginx目录
cd nginx-1.13.9
//配置, -with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11 这么写是因为我把zlib和pcre都放在nginx源码包同一级目录下
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11

//配置成功之后,编译并安装
make && make install

如果配置或者编译时出现错误,请百度或者google解决,比如,比如在最小化安装的

centos
虚拟机中操作,
tar
命令都没有安装,那么报
tar
命令不存在时我们先得安装
tar
命令。
测试是否安装成功

启动

nginx

/usr/local/nginx/sbin/nginx

访问 ip 如果出现下图,则安装成功

图片描述

安装php

前往php下载页面找到需要安装的php版本,这里我们安装最新的稳定版本

php7.2.3
。官方文档没有给出配置参数列表,我们可以使用
./configure --help
查看。
下载、配置及编译安装php

//下载php的安装文件
wget http://cn2.php.net/distributions/php-7.2.3.tar.gz
//解压
tar zxvf php-7.2.3.tar.gz
//进入解压后的目录
cd php-7.2.3
//配置安装参数
./configure --enable-fpm --prefix=/usr/local/php
//编译安装
make && make install

在运行

configure
的时候或许会报如下错误

configure: error: libxml2 not found. Please check your libxml2 installation

这是因为缺少libxml库,

yum
安装一下就好

yum install -y libxml2 libxml2-devel

我们这里就简单的安装了php,只带了一个参数

--enable-fpm
,但是实际我们也许会需要带更多的参数,这些我们可以通过重新走一遍安装流程来实现,值得一提的是,在
./configure
执行成功之后会在当前目录下留下
config.nice
文件,后续如果重新配置,可以在这个基础上运行,比如我们要安装
pcntl
扩展,可以这样执行
./config.nice --enable-pcntl
完成安装之后的操作

php配置文件,由于在配置时我们并没有指定php.ini的加载位置,默认在安装php安装目录的lib目录下,所以我 们移动配置文件到

/usr/local/php/lib
目录下。

cp php.ini-development /usr/local/php/lib/php.ini

在/usr/local/php/etc/php-fpm.conf 最后一行可以看到 include=/usr/local/php/etc/php-fpm.d/*.conf,所以需要执行以下步骤。

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。【官方文档提出】

启动php-fpm

/usr/local/php/sbin/php-fpm
修改
nginx
配置以支持php应用

修改默认的 location 块,使其支持 .php 文件:

location / {
    root   html;
    index  index.php index.html index.htm;
}

下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:

location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

重启

nginx
使配置生效

/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

创建测试文件

echo "" >> /usr/local/nginx/html/index.php

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

版本声明
本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
数据库锁及隔离级别数据库锁及隔离级别
上一篇
数据库锁及隔离级别
数据库DAO方法命名最佳实践
下一篇
数据库DAO方法命名最佳实践
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    12次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    22次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    30次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    38次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    35次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码