CentOS7 yum搭建LNMP与Redis环境

1、安装LNMP之前要安装EPEL,以便安装源以外的软件,如Nginx,phpMyAdmin等。

yum install epel-release

提示:EPEL,即Extra Packages for Enterprise Linux,企业版linux附加包。这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用,由Fedora项目维护,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源。

yum update

2、安装Nginx

yum install nginx 
systemctl start nginx #启动nginx 
systemctl enable nginx #设置开机启动

安装成功后,浏览器访问主机公网IP,或者本机的127.0.0.1,或者虚拟机ip。会出现以下界面
nginx访问默认页面
注意事项:因为我是在虚拟机上搭建的LNMP环境,网络适配器使用的是NAT模式,这样直接可以在本机上访问虚拟机的ip就可以直接访问到虚拟机上的网站。

  • 查看虚拟机的ip
 ip addr
  • 实际ip为ens33中的ip
    查看ip得治
  • nginx环境配置好后,本机上访问192.168.142.129/24
    nginx
  • 本机上访问192.168.142.129
    nginx
    访问以上两种ip出现的界面,都是ngnix环境安装好的标志。
    3、安装mysql
    在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
# 下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

mysql
可以改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。

vim /etc/yum.repos.d/mysql-community.repo

mysql_version
安装MySQL

yum install mysql-community-server

启动MySQL

service mysqld start

查看MySQL的启动状态

systemctl status mysqld

mysql_status
开机启动
systemctl enable mysqld
修改MySQL登陆密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

grep 'temporary password' /var/log/mysqld.log

mysql_pwd
获取到密码之后登陆MySQL进行修改

mysql -uroot -p
set password for 'root'@'localhost'=password('MyNewPass4!'); //默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。

4、安装PHP

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

//查看
yum search php71w

//安装php以及扩展
yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath php71w-pecl-redis.x86_64 -y

//开启服务
service php-fpm start

//开机自动启动
systemctl enable php-fpm

//重启nginx
service nginx restart

问题
我在配置的过程中始终无法重启nginx服务,每次重启都会提示nginx服务已存在。
解决办法

  • 查看nginx服务
ps -e | grep nginx

nginx_service

  • 结束进程
kill 4229
  • 重启nginx
service nginx restart

5、修改php配置
修改php.ini的配置

vim /etc/php.ini 

cgi.fix_pathinfo=1 #将注释去掉,开启PHP的pathinfo伪静态功能。

max_execution_time = 0  #脚本运行的最长时间,默认30秒

max_input_time = 300#脚本可以消耗的时间,默认60秒

memory_limit = 256M#脚本运行最大消耗的内存,根据你的需求更改数值,默认128M

post_max_size = 100M  #单提交的最大数据,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…默认8M

upload_max_filesize = 10M#上载文件的最大许可大小 ,默认2M

date.timezone = "Asia/Shanghai"  #修改时区

然后重启PHP

service php-fpm restart

PHP-FPM 监听9000 端口正常

netstat -npa | grep 9000

如下图
mysql_port
6、配置Nginx根目录
nginx 默认会引入 /etc/nginx/conf.d/*.conf 下面的配置

所以我们在 /etc/nginx/conf.d/ 下面建立 default.conf。

server {
    listen       80;
    server_name  localhost;
    #定义文件项目根路径
    root         /usr/share/nginx/html;
    location / {
        index index.php index.html error/index.html;
        autoindex  off;
    }
    location ~ \.php(.*)$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        include        fastcgi_params;
    }
    
    error_page 404 /404.html;
        location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

重启nginx

service nginx restart

7、测试
在/usr/share/nginx/html 目录下面建立一个info.php

<?php
    phpinfo();

然后访问 http://你的ip/info.php;
或者直接使用

curl localhost/info.php

无法访问php文件的解决办法
上面步骤执行过程中没有出现问题的话,除了无法访问php文件,html文件都可以正常访问的话,出错的地方就是在nginx的配置问题,主要在nginx的配置地方注意。

8、php-redis扩展与redis环境安装

1.redis安装

yum install redis
#开启6379端口,使外部可以访问
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#重启防火墙
systemctl restart firewalld
#查看端口列表
firewall-cmd --list-ports

修改redis配置

vi /etc/redis.conf
  • 将 bind 127.0.0.1 使用#注释掉,改为# bind 127.0.0.1(bind配置的是允许连接的ip,默认只允许本机连接;若远程连接需注释掉,或改为0.0.0.0)

  • 将 protected-mode yes 改为 protected-mode no(3.2之后加入的新特性,目的是禁止公网访问redis cache,增强redis的安全性)

  • 将 requirepass foobared 注释去掉,foobared为密码,也可修改为别的值(可选,建议设置)

#重启redis服务
service redis restart 

测试

#存值
redis-cli set hx value
#取值
redis-cli get hx

2.php-redis拓展安装

yum install php-redis

为php配置文件引入redis.so。
1.cd /usr/lib64/php/modules/
这个目录下有个redis.so
2.echo ‘extension=redis.so’ > /etc/php.d/redis.ini
然后vi /etc/php.d/redis.ini,去掉里面的单引号

注:如果按照本步骤4安装的php与其拓展的话,便不需要再安装php的redis拓展,只需安装在系统中安装下redis环境就可以了。

配置说明

#项目默认根目录
/usr/share/nginx/html

#修改php.ini的配置
vim /etc/php.ini 

#修改php-fpm的配置
vim /etc/php-fpm.d/www.conf 

#修改nginx的配置
vim /etc/nginx/conf.d/default.conf
vim /etc/nginx/nginx.conf
#重启nginx
service nginx restart

#平稳刷新
service nginx force-reload

#重启php
service php-fpm restart
           
#重启MySql
service mysqld restart
#查看防火墙是否开启
systemctl status firewalld

#开启
systemctl start firewalld 

#关闭
systemctl stop firewalld 

#查看所有开启的端口
firewall-cmd --list-ports

#防火墙开启端口访问
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:  --zone #作用域    --add-port=80/tcp #添加端口,格式为:端口/通讯协议    --permanent #永久生效,没有此参数重启后失效

参考文章:

LNMP环境搭建:
https://blog.csdn.net/Klaus_S/article/details/80815141?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

CentOS下php-redis与redis环境搭建:
https://www.cnblogs.com/SceneryHao/articles/10957063.html
CentOS下配置redis允许远程连接:
https://www.cnblogs.com/jinjiyese153/p/8600703.html

感谢原文作者的文章。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值