前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Centos7/8 安装Nginx PHP7.X Mysql8.0

Centos7/8 安装Nginx PHP7.X Mysql8.0

作者头像
逍遥子大表哥
发布于 2021-12-27 01:30:22
发布于 2021-12-27 01:30:22
89600
代码可运行
举报
文章被收录于专栏:kali blogkali blog
运行总次数:0
代码可运行

关于这方面的教程可以说是一搜一大把,但都有点缺陷,在实际操作中各种坑,为了少踩坑。本文将为新手呈上最为全面的搭建教程。

安装环境

  • Nginx1.2
  • PHP7.x
  • Mysql8.0

安装Nginx

添加 CentOS 7 EPEL 存储库,请运行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install epel-release

安装Nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install nginx

启动 Nginx 服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start nginx

开机启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable nginx

安装Mysql8.0

添加mysql

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

安装mysql

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum --enablerepo=mysql80-community install mysql-community-server

启动mysql

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start mysqld.service

修改root密码

因为在mysql8中,在安装数据库时会设置默认密码。我们可以利用下面命令查看默认密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1

初始化数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mysql_secure_installation

这里会提示输入root的密码,即上一步获得的默认密码。然后从新输入root密码,一路输Y即可。

不知道为什么,修改后程序不能连接登录。用下面命令重新修改root密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -u root -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
systemctl restart mysqld #重启MySQL

安装 PHP

安装 Remi 存储库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

检查 Remi 存储库中可用的 PHP 7+ 版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64

你会看到这样的输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * remi-safe: mirrors.ukfast.co.uk
Available Packages
php70.x86_64                                              2.0-1.el7.remi                                       remi-safe
php71.x86_64                                              2.0-1.el7.remi                                       remi-safe
php72.x86_64                                              2.0-1.el7.remi                                       remi-safe
php73.x86_64                                              2.0-1.el7.remi                                       remi-safe
php74.x86_64                                              1.0-3.el7.remi                                       remi-safe
php80.x86_64                                              1.0-3.el7.remi  

启用相应的 PHP 版本(这里以7.4为例)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum-config-manager --enable remi-php74

安装php

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install php php-mysqlnd php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-zip php-cli php-fpm php-gd php-mysqlnd php-mbstring php-opcache php-pdo php-json

配置文件

配置php-fpm文件

vim /etc/php-fpm.d/www.conf

usergroup变量默认为apache。我们需要将这些更改为nginx

找到listen php-fpm将通过 TCP 侦听特定主机和端口。我们想要更改此设置,使其侦听本地套接字文件,因为这会提高服务器的整体性能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listen = /var/run/php-fpm/php-fpm.sock;

最后,我们需要更改我们刚刚在listen指令中定义的套接字文件的所有者和组设置。找到listen.owner,listen.grouplisten.mode指令。这些行默认被注释掉。通过删除;行开头的前置符号来取消注释。然后,将所有者和组更改为nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

最后重启php-fpm

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl start php-fpm

配置 Nginx 以处理 PHP

目前的配置是无法访问php文件,我们还需要简单的配置下。

Nginx 有一个专用目录,我们可以在其中使用服务器块将每个托管网站定义为单独的配置文件。这类似于 Apache 的虚拟主机

在默认安装中,此目录为空。我们将创建一个新文件作为此服务器上的默认 PHP 网站,它将覆盖/etc/nginx/nginx.conf文件中定义的默认服务器块。

/etc/nginx/conf.d目录中打开一个新文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/nginx/conf.d/default.conf
#内容如下:
server {
    listen       80; #端口 可自行修改 如8080
    server_name  192.168.x.x; #没有域名的话直接填写公网IP或内网IP

    root   /var/www/html; #网站路劲
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /var/www/html; #网站路劲
    }
#php配置部分
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

重新启动 Nginx 以应用更改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart nginx

配置网站目录用户组和权限

因为目前php和nginx都是以nginx的身份运行,而我们的目录有时候权限归root所有。所以访问网站会出现404

首先检查php和ngxin的用户组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ps -ef | grep php
ps -ef | grep nginx

最后修改相应目录的用户组权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chown -R nginx:nginx /var/www/blog

然后再次重启php和nginx即可

配置PATHINFO

像Typecho一样,我们需要开启PATHINFONginx默认是不支持PATHINFO的,所以需要更改支持PATHINFO的主机的配置文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
location ~ ^(.+\.php)(.*)$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include        fastcgi_params;
    }

并配置etc/php.ini

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cgi.fix_pathinfo=1

最后重启nginx和php

目前遇到的问题就这么多了,后面遇到问题在说吧!

版权属于:逍遥子大表哥

本文链接:https://cloud.tencent.com/developer/article/1925173

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
微信公众号网页授权获取用户openid
最近一个项目是在微信公众号内二次开发,涉及到微信公众号支付,根据文档要求想要支付就必须要获取到用户的openid。
庞小明
2018/09/19
17.1K0
微信公众号网页授权获取用户openid
纵里寻她千百度,暮然回首,那人却在灯火阑珊处(微信三方登陆)
小插曲就是app做微信三方登陆是很久之前,后面又添加了PC的微信三方登陆,而文档上说unionid是同一个账号下不同应用统一的,但是app拿的是
思梦php
2018/02/08
7380
微信小程序获取unionid与openid
unionid来区分用户的唯一性,在相同微信开放平台帐号下的移动应用、网站应用、小程序、公众号,用户的unionid是唯一的。也就是说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
ITer.996
2019/08/28
6.4K0
微信小程序获取unionid与openid
微信公众号网页授权登录[通俗易懂]
微信公众号网页授权登录: 前段时间做了一个微信公众号的项目,就是微信公众号的菜单点击我的个人中心,就向用户授权登录 获取用户的信息,进行业务逻辑的操作,微信公众号官方文档,这是我写的文章,里面有很多微信的官方 文档,希望对大家有用:https://blog.csdn.net/qq_41971087/article/details/82466647 在微信公众号官方文档中,看到微信页面开发,
全栈程序员站长
2022/09/05
2.3K0
微信公众号网页授权登录[通俗易懂]
微信网页授权access_token与全局access_token的区别
记一下网页授权access_token与全局access_token的区别 # 次数限制 网页授权无限次数 全局access_token有2000次每日限额 # 用途 网页授权access_token 网页授权特有 通过code换取 有效期7200秒 全局access_token 调用基础接口的全局唯一凭证 有效时间2小时 最多调用2000次/每日 # 使用范围 网页授权只能获取到对应的微信用户信息,与微信用户是一对一 全局token可以获取所有用户信息 # 获取用户信息 网页授权获取用户基本信息可以不要求
薛定喵君
2020/05/19
2.1K0
微信公众号网页授权登录
本节讲解一下微信公众号开发之-微信网页授权,此开发主要是针对于在微信公众号内打开链接,请求获取用户登录信息。在此之前开发者需要做token验证、有网页授权登录权限。
申霖
2019/12/27
4.7K0
微信公众号网页授权登录
微信公众号开发——2、微信网页开发
在公众号平台下,自定义菜单,添加菜单,并选择菜单内容跳转到指定页面地址即可(需认证后方可添加页面地址,个人账号暂不支持认证)。
全栈程序员站长
2022/09/01
7.4K0
[小程序]微信小程序登陆并获取用户信息
1.小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口
唯一Chat
2019/09/10
2.1K0
[小程序]微信小程序登陆并获取用户信息
微信公众号系列之获取AccessToken
对于暂时没有这些权限的微信公众号,开发者可以申请测试账号来体验和测试微信公众平台的所有高级接口功能
SmileNicky
2022/05/07
3.7K0
微信公众号系列之获取AccessToken
微信OAuth授权获取用户OpenId-JAVA(个人经验)
源码在这里。https://zb.oschina.net/market/opus/1444646_161 维护服务器。一份5元。自愿购买
小帅丶
2018/02/09
7.9K0
微信OAuth授权获取用户OpenId-JAVA(个人经验)
微信小程序模板消息详解
先放代码 wxml: <form name='pushMsgFm' report-submit bindsubmit='orderSign'> <view> 单号: 0</view> <view> 商家名称: 腾讯早餐店</view> <view>实付金额:66元</view> <view>物品名称:包子</view> <view>付款金额:68元</view> <view>付款时间: 2018年1月1日 </view> <button form-ty
李文杨
2018/03/14
2.5K0
微信小程序模板消息详解
PHP实现网站微信扫码登录,已封装直接可以使用
PHP实现网站微信扫码登录,这是一个非常简单而使用的封装方法,虽然不是最好的,但是可以实现,你可以在原来的基础上继续优化。直接看代码把
程序猿的栖息地
2022/04/29
1.3K0
微信公众号授权登陆PHP
在微信公众号请求用户网页授权之前,要先到公众平台官网中修改授权回调域名 正式公众号:开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息修改授权回调域名 测试公众号:直接在首页 - 功能服务 - 网页账号中修改回调域名
RtyXmd
2018/08/30
5.1K0
微信公众号授权登陆PHP
Yii2.0实现微信公众号后台开发
1.用户授权接口:获取access_token、openid等;获取并保存用户资料到数据库
botkenni
2019/09/02
9430
一文入门微信公众号和小程序
抽出来一点时间,梳理一下微信公众号和小程序应用的实践,梳理总结的一点心得体会,公众号和小程序产品定位不同,公众号开发的权限和自由度比较高,消息事件类型丰富,而小程序更注重的体验,认证权限也相对严格,发布时需要审核和发版等等。
stark张宇
2024/12/17
2460
【微信生态圈】微信体系中的access_token有哪些?
access_token是公众号/小程序的全局唯一接口调用凭据,公众号/小程序调用各接口时都需使用access_token。开发者需要进行妥善保存。 access_token的存储至少要保留512个字符空间。 access_token的有效期目前为2个小时,需定时刷新。
烟雨平生
2023/09/22
8060
【微信生态圈】微信体系中的access_token有哪些?
Thinkphp5实现微信网页授权登录,保存用户信息到Mysql数据库
去新的公司上班有大半个月了,在公司负责一个项目手机端的官网,其中有一个需求就是要用到微信网页授权登录,今天整理了一下代码逻辑给大家分享出来,希望对大家有所帮助。
程序猿的栖息地
2022/04/29
3K0
Thinkphp5实现微信网页授权登录,保存用户信息到Mysql数据库
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
本次改进原文《【Uniapp】小程序携带Token请求接口+无感知登录方案》,在实际使用过程中我发现以下bug
德宏大魔王
2023/08/08
1.2K0
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
PHP获取小程序openid,10行代码快速获取小程序openid
通过上图我们可以看到我们成功的获取到了小程序的openid,而这里获取openid是借助php后台获取的。
编程小石头
2019/09/21
2.2K0
PHP获取小程序openid,10行代码快速获取小程序openid
微信小程序 接口调用讲解 (AccessToken、小程序码登录)
♘ 通过微信小程序实现扫码登录 ♘【网页版】使用小程序码登录 ♘ 通过扫小程序码实现网站登录功能
泥豆芽儿 MT
2022/05/10
16.6K0
微信小程序 接口调用讲解 (AccessToken、小程序码登录)
推荐阅读
相关推荐
微信公众号网页授权获取用户openid
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档