QQ登录

只需一步,快速开始

终极精品

查看: 1672|回复: 0
打印 上一主题 下一主题

[网络技术] 在CentOS7中部署安装Nginx+PHP7.3+MySql8.0过程

[复制链接]
[至尊红钻3级]发帖数量≥1000篇 [至尊黄钻5级]威望≥3000点 [至尊蓝钻3级]在线时间≥800小时 [至尊绿钻5级]贡献度≥3000点 [至尊紫钻6级]金币≥200000个 [未点亮至尊粉钻]精华贴数不足10贴 [未点亮至尊黑钻]活跃不足8个
 等级: 
 级别: 管理员
 UID:  1   [未点亮普号显示]钻石不足3个
 积 分: 407416
 威 望: 3806
 贡 献: 3745
 活 跃: 0
 发 贴: 1401 (4)
 终极币: 394653  
性 别: I'm 火星人!
阅读权限: 200
在线时长: 1151 小时
注册时间: 2014-7-25
最后登录: 2025-4-29
go
楼主
发表于 2020-11-30 00:09:59 |只看该作者 |倒序浏览

查看完整版请注册登录浏览

您需要 登录 才可以下载或查看,没有帐号?点击注册

x

本文就记录使用CentOS7安装Nginx还有PHP7.3及MySQL8.0 的过程。MySQL8.0安装好之后会有一些坑,导致PHP无法正常连接到数据库,本文也将这些解决方法梳理记录一下。

安装 Nginxyum install nginx -y

安装之后可以到目录:/etc/nginx 使用 VIM 编辑 nginx.conf 配置文件。

例如,可以去除对 IPV6 地址的监听:

server {    listen 80 default_server;    #listen [::]:80 default_server;   #这句代码最前面加个#号即可去掉 IPV6 的监听    server_name  _;    root         /usr/share/nginx/html;}

此时已经完成最基本的 Nginx 配置,可开启 Nginx 服务:

nginx

此时,可访问服务器外网 IP 地址来确认是否已经安装成功。安装成功会正常显示网页,否则会出现无法打开。

设置 Nginx 为开机自启:

systemctl enable nginx.service安装 MySQL8.0wget rpm -ivh mysql80-community-release-el7-1.noarch.rpm

执行安装命令:

yum install mysql-server -y

安装完成后开启 MySQL:

systemctl start mysqld

设置开机自启:

systemctl enable mysqld.service

由于 MySQL 的安全策略,安装完成后有一个随机的默认密码。可以使用命令查看这个密码:

cat /var/log/mysqld.log | grep "generated for root@localhost"

此时会返回默认的随机密码,如:

A temporary password is generated for root@localhost: ******

返回的 ****** 就是你的随机密码了。

此时有一个坑,使用默认的这个账号,即 root 加默认随机密码配置到 PHP 中,是无法正常连接数据库的。例如报错:

php Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

这是因为 MySQL8.0 的新特性。安全策略问题,默认的密码验证插件从以前的 mysql_native_password 改成了 caching_sha2_password。

所以解决方法就是,设置 MySQL8.0 的默认密码验证插件。

先进入到目录:/etc 使用 VIM 编辑 my.cnf 文件。在文件中加入一句代码:

default_authentication_plugin=mysql_native_password

完成编辑后需要重启一下 MySQL:

systemctl restart mysqld

然后使用 root 账号创建新用户并授权,执行命令:

mysql -u root -p

执行命令后需要输入密码,这个密码就是默认的随机密码。本文上方有方法查看。

进入到 MySQL 后,需要修改 root 账号的默认随机密码。执行命令修改:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Passbubaijun.com99&&';

注意:密码必须有数字+大写字母+小写字母+字符,不然会报错。

修改密码后可执行命令创建一个新用户:

create user 'bubaijun_com'@'localhost' identified by 'Passbubaijun.com99&&';

其中,bubaijun_com 是用户名,Passbubaijun.com99&& 是密码。

完成创建新用户后,还需要给该用户授权:

grant all on *.* to 'bubaijun_com'@'localhost' with grant option;

完成后可使用命令退出 MySQL:

exit

此时,PHP 中配置该用户及密码即可正常连接数据库。

安装 PHP

安装 EPEL 源:

yum install epel-release

安装 REMI 源:

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

安装 Yum 源管理工具:

yum install yum-utils

安装 PHP7.3

yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xmll

设置开机自启:

systemctl enable php73-php-fpm

启动PHP:

systemctl start php73-php-fpm配置及运行一个网站

进入目录:/etc/nginx/conf.d 使用 VIM 编辑 test.conf 文件(使用 VIM 命令,不存在则会自动创建文件)

server {    # 监听 HTTP 协议默认的 [80] 端口。    listen 80;    # 绑定主机名(域名)。    # server_name bubaijun.com;    # 站点根目录。    root /usr/share/php;     # 添加几条有关安全的响应头;与 Google+ 的配置类似,详情参见文末。    add_header X-Frame-Options "SAMEORIGIN";    add_header X-XSS-Protection "1; mode=block";    add_header X-Content-Type-Options "nosniff";     # 站点默认页面;可指定多个,将顺序查找。    index index.html index.htm index.php;     # 指定字符集为 UTF-8    charset utf-8;     # Laravel 默认重写规则;删除将导致 Laravel 路由失效且 Nginx 响应 404。    location / {        try_files $uri $uri/ /index.php?$query_string;    }     # 关闭 [/favicon.ico] 和 [/robots.txt] 的访问日志。    # 并且即使它们不存在,也不写入错误日志。    location = /favicon.ico { access_log off; log_not_found off; }    location = /robots.txt  { access_log off; log_not_found off; }     # 将 [404] 错误交给 [/index.php] 处理,表示由 Laravel 渲染美观的错误页面。    error_page 404 /index.php;     # URI 符合正则表达式 [.php$] 的请求将进入此段配置    location ~ .php$ {        # 配置 FastCGI 服务地址,可以为 IP:端口,也可以为 Unix socket。        fastcgi_pass 127.0.0.1:9000;        # 配置 FastCGI 的主页为 index.php。        fastcgi_index index.php;        # 配置 FastCGI 参数 SCRIPT_FILENAME 为 $realpath_root$fastcgi_script_name。        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;        # 引用更多默认的 FastCGI 参数。        include fastcgi_params;    }    # 以上配置将所有 URI 以 .php 结尾的请求,全部交给 PHP-FPM 处理。     # 除符合正则表达式 [/.(?!well-known).*] 之外的 URI,全部拒绝访问    # 也就是说,拒绝公开以 [.] 开头的目录,[.well-known] 除外    location ~ /.(?!well-known).* {        deny all;    }}

配置完成后需要重启 Nginx:

systemctl restart nginx.service

进入目录 /usr/share/php 使用 VIM 命令编辑 test.php 并写入代码:

<?php    phpinfo();

再回到目录 /etc/nginx 使用 VIM 打开 nginx.conf 文件。将 server 代码段全部删掉。

此时解析域名后访问域名或服务器外网 IP + test.php 即可看到 PHP 的信息。

至此,整个环境的配置已经完成。如果无法访问,而且是使用阿里、腾讯等 IDC 请到安全组看看是否配置端口。

安装 Composer

除此之外,如果需要用到 Composer 则需要另外安装了。执行命令:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"php composer-setup.php

执行两句命令后即可使用 Composer.

如果安装过程中出现报错:

-bash: php: command not found

说明 PHP 的环境变量没设置,可以通过 test.php 也就是 phpinfo() 函数 查看 PHP 安装路径。比如我的路径是 /opt/remi/php73/root/usr 那就可以执行以下命令设置环境变量:

export PATH=$PATH:/opt/remi/php73/root/usr/bin

设置后还需要执行命令使配置生效:

source /etc/profile
分享到: QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏0 支持支持0 反对反对0
宣传推广终极精品资源www.chnspy.com提升下载权限1...
您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

QQ|Archiver|手机版|小黑屋|终极精品资源 ( 版权所有:广州汉鸿信息科技有限公司 粤ICP备15041466号

GMT+8, 2025-5-9 07:52 , Processed in 0.158835 second(s), 28 queries .

Powered by Discuz! X3.2

© 2015-2016 www.chnspy.com.

快速回复 返回顶部 返回列表