Centos7 搭建LNMP环境,使用phpMyadmin测试连接数据库(图文)
机器信息:
|
CentOS Linux release 7.6.1810 (Core) |
IP:192.168.1.31 |
Mysql+PHP+NGINX |
环境设置:
修改yum源(阿里云镜像站源- https://developer.aliyun.com/mirror/centos)
备份原源文件:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup:
下载阿里镜像源文件:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
运行yum makecache 生成缓存
注:确保wget已安装,如未安装,可以使用 yum –y install wget 进行安装
关闭SELINUX:
sed -i s#enforcing#disabled# /etc/selinux/config ## 永久设置
setenforce 0 ## 临时设置
getenforce ## 查看selinux状态 
关闭防火墙(默认情况下是开启的):
systemctl stop firewalld ### 关闭防火墙
systemctl status firewalld ###查看firewalld状态

systemctl disable firewalld ##取消开机自启动

systemctl list-unit-files |grep firewalld ## 查看firewalld是否开机启动

如果是需要放行端口的话,可以执行下(如80):
firewall-cmd --add-port=80/tcp –permanent
firewall-cmd --list-all ##进行查看

安装Nginx:
配置nginx的repo源
官方文档: http://nginx.org/en/linux_packages.html
根据官方文档提供的添加repo的方式,在/etc/yum.repos.d/下创建下nginx.repo,然后添加下repo源信息,如下图:

yum list nginx –showduplicates ## 查看nginx所有版本

yum -y install nginx-1:1.8.0 ##安装nginx 1.1.8.0
nginx –V 可以查看nginx安装的信息,其中configure arguments信息中有安装目录信息和nginx安装的模块信息

其中nginx.conf 是nginx主配置文件
其中内容指定
user ##nginx服务用户名,
worker_processes: ##工作进程数,
worker_connections ##单个工作进程数可以建立的连接数,因为当工作建立一个连接后,进程会打开一个副本,该设置还是会受到系统本身内部的进程可以打开的最大文件的设置影响(ulimit –a 可以查看),该值最大为65535
error_log 错误日志, 日志级别有[debug | info | notice | warn | error | crit | alert | emerg],级别越高记录的信息越少(详细程度从高到低),一般设置为warn | error | crit即可
debug:出现错误级别 info:普通信息 notice:一般重要情况 warn:警告信息 error:错误信息 crit:致命信息 alert:警报,需立即处理 emerg:紧急
events{} 事件模块, 使用指令来配置网络机制,某些参数可能会直接应用程序性能
use xx : nginx支持多种连接处理方法。特定方法的可用性取决于所使用的平台。在支持多种方法的平台上,nginx通常会自动选择最有效的方法。但是,如果需要,可以使用use指令显式选择连接处理方法
。
支持以下连接处理方法:
select —标准方法。支持模块是在缺少更有效方法的平台上自动构建的。的--with-select_module和 --without-select_module配置参数可以用来强制地启用或禁用该模块的版本。
poll —标准方法。支持模块是在缺少更有效方法的平台上自动构建的。的--with-poll_module和 --without-poll_module配置参数可以用来强制地启用或禁用该模块的版本。
kqueue —在FreeBSD 4.1 +,OpenBSD 2.9 +,NetBSD 2.0和macOS上使用的有效方法。
epoll —在Linux 2.6+上使用的有效方法。
该EPOLLRDHUP(Linux的2.6.17,glibc的2.8)和EPOLLEXCLUSIVE(4.5的Linux,glibc的2.24)标志1.11.3以来的支持。
一些较旧的发行版(如SuSE 8.2)提供了一些补丁,这些补丁为2.4内核增加了epoll支持。
/dev/poll —在Solaris 7 11/99 +,HP / UX 11.22+(事件端口),IRIX 6.5.15+和Tru64 UNIX 5.1A +上使用的有效方法。
eventport —事件端口,在Solaris 10+上使用的/dev/poll方法(由于已知问题,建议改用该方法)。
access_log ##访问日志
keepalive_timeout ##每个tcp连接最多可以保持的时间
include /etc/nginx/conf.d/*.conf ###站点配置文件

/etc/nginx/conf.d/ default.conf 文件:
其中listen 指的监听的端口
server_name 指配置基于名称的虚拟机
location 下的 root指的是web文件的目录
index 指 指定的首页文件
error_page 指的状态码为500 503等的错误页路径设置

启动nginx,并设置开机自启动,查看80监听:
systemctl start nginx ##启动nginx
systemctl enable nginx ##设置开机自启动


访问服务器ip(192.168.1.31),如下是修改了web的路径,自己创建的测试页面

注:
如果无法访问到web服务,可以参考下面方式去排除
1.检测nginx服务是否启动
2.是否是监听在80端口,如果有修改为其他端口.在ip后面加 :端口号,可以在外部,cmd中 telnet进行测试,看是否可以通
3.确保监听的端口服务器防火墙已经放行,或者防火墙处于关闭状态
4.确保监听的ip为0.0.0.0,或者内网ip,不是127.0.0.1(127.0.0.1是回环地址,外部无法访问),如果是127.0.0.1修改nginx配置文件 listen 在端口前加下0.0.0.0
安装Mysql数据库:
因为在centos7中是已经使用mariadb代替了mysql数据库,是无法使用yum的方式进行安装的,mariadb是兼容mysql的,也可以使用mariadb
yum –y install mariadb mariadb-server
如果需要安装mysql的话,可以通过和nginx一样的方式,通过添加mysql repo源的方式.进行下载(官网: https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/),内容如下图: 

注意:官网是
gpgcheck=1,本地copy的时候将gpgcheck=1改为gpgcheck=0,不要去本地下载,否则会报错如下: 
修改后,使用 yum -y install mysql-community-server 进行安装,安装完毕后,使用rpm 可以查看到已经按照完毕了

启动mysql,并设置自启动,
systemctl start mysqld ##启动mysql服务
systemctl enable mysqld ###设置开机自启动
netstat -lntup |grep 3306 ###查看mysql监听
查看mysql密码,:后的内容就是密码:
sudo grep 'temporary password' /var/log/mysqld.log

登陆mysql数据库.修改密码:
mysql -u root –p
ALTER USER
'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注: MySQL的 validate_password 插件默认安装。这将要求密码至少包含一个大写字母,一个小写字母,一位数字和一个特殊字符,并且密码总长度至少为8个字符。
或者使用mysql_secure_installation mysql安全向导,设置root密码.删除匿名用户等操作


注:在myqsl5.7或以上版本,在yum存储库的时候是已经执行了,如果再次执行会初始化数据库,且需要输入mysql
root密码进行验证
validate_password指定了密码的强度设置,可能对于只用用于搭建测试,有点麻烦,可以使用:
show variables like 'validate_password%'; 查看下相关设置,并修改下验证政策,如下:

set global validate_password_policy=0; ##设置策略为low
set global validate_password_length=6; ###设置密码长度为6



再使用alter修改密码即可
安装php:
yum list php --showduplicates |sort ##查看可以安装的php版本

执行 yum –y install php 进行安装
安装完毕后,使用php –v 查看安装的php版本信息

因为是php的文件数据,可以使用php-fpm进行解析请求客户端请求php文件
php-fpm: PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求,提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,php-fpm进程包含了2种进程,master进程和worker进程.其中master进程是用来进行监听服务并把接收到的请求分派给特定的worker进程.
安装php-fpm:
yum -y install php-fpm

systemctl start php-fpm ###启动php-fpm服务
systemctl enable php-fpm ## 设置开机自启动
netstat -lntup |grep 9000 ###查看php-fpm监听.默认是9000端口
注:安装启动完毕后,设置nginx配置文件,使其可以去解析php文件(注意文件每一行都有;号)
其中
location ~ \.php$ 指的是当结尾为.php文件时,执行下面的内容:
root 是指定的网站目录,如果不指定的话,回返回找不到文件的报错,如下图

fastcgi_pass 127.0.0.1:9000; 是设置的php-fpm服务监听的ip和端口
fastcgi_index; 如果请求的FastCGI URI以/结束,该指令设置的文件会被附加到URI的后面并保存在变量$fastcgi_script_name中(fastcgi_script_name 是指的脚本名称,其他相关可以查看下fastcgi_params文件)
include fastcgi_params; 调用fastcgi_params
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 指脚本文件请求的路径
设置完毕后,在网站目录下写一个phpinfo文件可以查看php信息,文件内容如下:

设置完毕后,重启nginx服务和php-fpm.确保正常运行后,访问phpinfo文件,会显示php相关信息,如下图:

phpMyadmin:
测试web连接数据库,可以使用phpMyadmin通过web的方式管理数据库测试下:
注:使用phpmyadmin需要php至少5.5及以上,上面yum安装的php为5.4,需要使用5.5及以上版本,可以参考下下面的链接进行升级:
https://www.cnblogs.com/nlbqdcn/p/13615476.html
先下载phpmyadmin到服务器内,官网如下:
phpmyadmin官网: https://www.phpmyadmin.net/donate/
下载phpmyadmin文件,进行解压,将解压文件放到访问web目录下,直接访问ip/phpmyadmin即可

phpmyadmin可能遇到的报错:

解决方法:
mkdir -p /var/lib/php/session
chmod -R 777 /var/lib/php/
vim /etc/php.ini
session.save_path = "/var/lib/php/session"


解决方法:
yum –y install php71w-mysql
安装完毕后 重启php-fpm即可
浙公网安备 33010602011771号