相关文章推荐
瘦瘦的电池  ·  javascript ...·  1 年前    · 
失眠的番茄  ·  国产化性能验证Unixbench-5.1.3 ...·  1 年前    · 
慷慨大方的显示器  ·  【CSS】一个div宽度或高度固定,另一个d ...·  1 年前    · 
风流倜傥的松球  ·  MATLAB可以打开gms文件吗,科学网—G ...·  2 年前    · 
Code  ›  Centos7/8 安装Nginx PHP7.X Mysql8.0开发者社区
nginx php root权限 php环境搭建
https://cloud.tencent.com/developer/article/1925173
耍酷的咖啡豆
1 年前
作者头像
逍遥子大表哥
0 篇文章

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

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > kali blog > Centos7/8 安装Nginx PHP7.X Mysql8.0

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

作者头像
逍遥子大表哥
发布 于 2021-12-27 09:30:22
461 0
发布 于 2021-12-27 09:30:22
举报

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

安装环境

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

安装Nginx

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

yum install epel-release

安装Nginx

yum install nginx

启动 Nginx 服务

systemctl start nginx

开机启动

sudo systemctl enable nginx

安装Mysql8.0

添加mysql库

yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

安装mysql

yum --enablerepo=mysql80-community install mysql-community-server

启动mysql

systemctl start mysqld.service

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

grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1

初始化数据库

sudo mysql_secure_installation

这里会提示输入root的密码,即上一步获得的默认密码。然后从新输入root密码,一路输 Y 即可。 不知道为什么,修改后程序不能连接登录。用下面命令重新修改root密码。

mysql -u root -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
systemctl restart mysqld #重启MySQL

安装 PHP

安装 Remi 存储库

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

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

yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64

你会看到这样的输出

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为例)

sudo yum-config-manager --enable remi-php74

安装php

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 user 和 group 变量默认为 apache 。我们需要将这些更改为 nginx 找到 listen php-fpm将通过 TCP 侦听特定主机和端口。我们想要更改此设置,使其侦听本地套接字文件,因为这会提高服务器的整体性能。

listen = /var/run/php-fpm/php-fpm.sock;

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

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

最后重启php-fpm

systemctl start php-fpm

配置 Nginx 以处理 PHP

目前的配置是无法访问php文件,我们还需要简单的配置下。 Nginx 有一个专用目录,我们可以在其中使用服务器块将每个托管网站定义为单独的配置文件。这类似于 Apache 的虚拟主机。 在默认安装中,此目录为空。我们将创建一个新文件作为此服务器上的默认 PHP 网站,它将覆盖/etc/nginx/nginx.conf文件中定义的默认服务器块。 在 /etc/nginx/conf.d 目录中打开一个新文件

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 以应用更改:

sudo systemctl restart nginx

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

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

ps -ef | grep php
ps -ef | grep nginx

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

chown -R nginx:nginx /var/www/blog

然后再次重启php和nginx即可

配置PATHINFO

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

location ~ ^(.+\.php)(.*)$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
 
推荐文章
瘦瘦的电池  ·  javascript 动态修改css样式方法汇总(四种方法) - 简书
1 年前
失眠的番茄  ·  国产化性能验证Unixbench-5.1.3_unixbench5.1.3.tgz_西瓜15的博客-CSDN博客
1 年前
慷慨大方的显示器  ·  【CSS】一个div宽度或高度固定,另一个div铺满剩余空间_div占满剩余宽度_qing_小诺的博客-CSDN博客
1 年前
风流倜傥的松球  ·  MATLAB可以打开gms文件吗,科学网—GMS-digitalmicrograph安装及使用(含分享安装包) - 付开星的博文..._吴端的博客-CSDN博客
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号