首页 > 技术文章 > centos7.4 yum搭建LNMP环境(centos7.4 Nginx 1.16 mysql 5.7 php 7.2)

llody 2019-05-14 14:46 原文

1、安装Nginx:

//1.使⽤用Nginx官⽅方提供的rpm包

[root@llody ~]# cat /etc/yum.repos.d/nginx.repo

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

//2.执⾏行行yum安装

[root@llody ~]# yum install nginx -y

[root@llody ~]# systemctl start nginx

[root@llody ~]# systemctl enable nginx

 

//测试Nginx是否可以访问:

 

 

 

 

 

当然,这里如果没做什么改动,访问的页面应该是Nginx默认首页。

 

 如果不能访问请关闭防火墙:

关闭: systemctl stop firewalld

禁止开机启动  : systemctl disable firewalld

2、使用第三方扩展epel源安装PHP7.2:

// 移除旧版 php

[root@llody ~]# yum remove php-mysql-5.4 php php-fpm php-common

// 安装扩展源

[root@llody ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-

7.noarch.rpm

[root@llody ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

// 安装 php72 版本

[root@llody ~]# yum -y install php72w php72w-cli php72w-common php72w-devel \

php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm \

php72w-mysqlnd php72w-opcache

// 启动 php

[root@llody ~]# systemctl start php-fpm

[root@llody ~]# systemctl enable php-fpm

 

3、安装mysql(mariadb):

//下载官⽅方扩展源, 扩展源集成mysql5.6、5.7、8.0,仅5.7仓库是开启

[root@llody ~]# rpm -ivh http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/

mysql57-community-release-el7-10.noarch.rpm

[root@llody ~]# yum install mysql-community-server -y

[root@llody ~]# systemctl start mysqld

[root@llody ~]# systemctl enable mysqld

//如果mysql登陆需要密码,请查看该⽂文件

[root@llody ~]# grep 'temporary password' /var/log/mysqld.log

//登陆mysql重新配置密码

[root@llody ~]# mysql -uroot -p'password'

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

 

没密码可以重新设置:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('llody');

遇到问题1:

登陆需要密码,按上述操作能解决:

问题2:

用远程工具(Navicat)无法远程连接,一直报1045:

解决方案:

1、linux防火墙未加3306端口

 

2、关闭firewalld防火墙:systemctl stop firewalld,systemctl disable firewalld

 

3、服务器上登录mysql,查看是否有地址限制,

 

use mysql; #进入mysql数据库

 

select host,user from user; #查询连接用户

 

grant all privileges on *.* to 'root'@'%' identified by '密码'; #授权连接地址

 

flush privileges; #立即生效

exit; #退出数据库

systemctl restart mysqld #重启服务

 

 

 

出现%表示成功,%也表示允许所有IP地址连接,也可以指定IP地址连接。

 

 

连接成功。

 

 

 

4、配置Nginx实现动态请求转发至PHP

 

 

替换Nginx自带的default.conf

[root@llody ~]# cat /etc/nginx/conf.d/php.conf

server {

server_name _;

listen 80;

root /soft/code;

index index.php index.html;

 

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /soft/code$fastcgi_script_name;

include fastcgi_params;

}

}

 

遇到问题1:一直报403

解决:1、chmod -R 755 /soft/code #赋予code文件件可读可写权限

2、查看本机selinux 是否开启

[root@llody code]# getenforce #查看状态

Enforcing

[root@llody code]# setenforce 0 #关闭selinux,临时关闭(不用重启)

[root@llody code]# getenforce #查看是否状态

Permissive

 

一直关闭:

修改配置文件 /etc/ selinux/config,将SELINUX=enforcing改为SELINUX=disabled

 

vim /etc/selinux/config

 

 

 

在/soft/code/新建以下php访问文件

 

 

 

5、配置PHP文件,测试连接mysql

// 使⽤用 mysqli 模块测试连接 mysql

[root@llody ~]# cat /soft/code/mysqli.php

<?php

$servername = "192.168.2.128";

$username = "root";

$password = "admin"; #没设置数据库密码就不填

 

//创建连接

$conn = mysqli_connect($servername,$username,$password);

 

//检测连接是否成功

if(!$conn){

die("连接失败:".mysqli_connect_error());

 

}

echo "连接成功";

 

?>

 

 

 

 

 

 

// 使⽤用 pdo 模块测试连接 mysql

[root@llody code]# vim mysqlpdo.php

<?php

$servername = "192.168.2.128";

$username = "root";

$password = "admin";

 

try{

 

$conn = new PDO("mysql:host=$servername;dbname=mysql", $username, $password);

 

echo "PDO连接成功";

 

 

}catch(PDOException $e)

{

echo $e ->getMessage();

echo "连接失败";

}

 

?>

 

 

 

 

 

 

 

推荐阅读