LNMPA 中PHP 连接MySQL,公网访问

9 篇文章 0 订阅

一、前言

本文承接上一篇文章Centos 7 nginx+php 实现公网访问,实现LNMPA的环境配置。

在前文中,【4.3 修改端口】涉及了修改nginx 端口的问题,这里做一个补充。

问题说明:
LNMPA 中的是Apache ,也就是前文中安装的httpd 服务。而该服务的默认端口就是80 端口,nginx 的默认端口也是80 端口,因此同时安装这两者就必然会产生端口冲突的问题。
解决方法:
修改其中任意一个的端口。

二、安装mysql

2.1 安装数据库

CentOS 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包,但 CentOS 7 已使用了 MariaDB 替代了默认的MySQL。
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

因此,我们安装的将是Mariadb,而不是传统的MySQL 数据库。
输入以下命令:

yum install -y mariadb mariadb-server

安装完成后启动数据库:

systemctl start mariadb.service

2.2 修改root 密码

使用root 用户进行免密登录:

mysql -u root

安装完成后,root 的密码默认是空的。

因此进入数据库后,首先需要设置root 用户的密码:

set password for 'root'@'localhost'=password('root');

该命令的作用是设置root 的密码为 root。

2.3 授权远程登录

按住【Ctrl】+【c】退出数据库登录,输入以下命令:

mysql -u root -p

输入root 密码后即可登录数据库。
我们是在服务器上进行的环境配置,如果sql 操作也在服务器上进行的话太过不方便,因此,开启MySQL 远程连接就显得尤为重要。输入以下命令:

grant all on *.* to root identified by 'root';

其中,第一个root 表示用户名 ;第二个root 表示“远程连接”的密码。
该命令的作用是:允许root 用户以root 的身份凭证进行远程登录,登录后可以连接任意数据库,进行任意操作(增删查改、授权等)。
授权后进行权限的刷新:

flush privileges;

重启MySQL 后就可以在navicat 、phpmyadmin 等上进行登录了。

systemctl restart mariadb.service 

2.4 创建测试的数据表

在phpmyadmin 进行登录后,进入test 数据库新建了一个名为test 的数据表。
在这里插入图片描述
该数据表中仅有一条测试数据:
在这里插入图片描述

三、PHP连接MySQL

3.1 编写测试文件

在nginx 的php 目录下新建一个php 文件:

vi /usr/share/nginx/html/mysqltest.php

在文件中添加以下内容:

<?php
header("Content-type: text/html;charset=utf-8");

$servername = " ";    //公网IP
$username = "root";
$password = "root";
$dbname = "test";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if(!$conn){
  die("Connection failed: " . mysqli_connect_error());
}

$conn->query("set character set 'utf8'");
$sql = "select * from test";    //表名
$result = $conn->query($sql);
if($result == false){
  die("query error!");
}

if($result->num_rows > 0){
   while($row = mysqli_fetch_array($result)){
      echo "通过php读取数据库:" . $row["name"] ;    //列名
   }
}
else{
   echo "no message!";
}

$conn->close();

?>

保存退出。

3.2 连接测试

输入以下命令:

curl localhost:88/mysqltest.php

运行结果为空,这是为什么呢?
其实,到目前为止,PHP 和Mysql 仍然是两个独立的服务,两者并未产生关联。
就如同在Java 中你没有导入 mysql-connector-java.jar 包就进行MySQL 连接一般,这是不可能有效果的。

3.3 安装php-mysql

输入以下命令:

yum -y install php-mysql

安装完成后启动该服务:

systemctl restart php-fpm

3.4 再次连接MySQL

在Windows 主机的浏览器地址栏输入

公网IP:88/mysqltest.php

运行结果如下:
在这里插入图片描述
可以看见,此次连接已经成功访问到数据库内的数据了。

四、错误日志文件

nginx 的错误日志文件:/var/log/nginx/error.log
mysql 的错误日志文件: /var/log/mariadb/mariadb.log
php-fpm 的错误日志文件:/var/log/php-fpm/www-error.log
apache 的错误日志文件: /var/log/httpd/error_log
若在环境配置过程中出现什么差错,可以查看以上日志文件进行错误检查。

至此,本文结束。我是陈冰安,一个Java学习者。欢迎关注我的公众号【暗星涌动】,愿与你一同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗星涌动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值