Centos7.2搭建最新版LNMP详细讲解 保证成功2019更新

前言

在搭建环境的过程中,笔者在网上看到了太多教程,各执一词,新手虽然能照猫画虎成功,但不明白背后的弯弯,难免会迷糊,所以结合搭建实际,总结了这篇教程。

一、难用的YUM

开篇为什么这么吐槽呢,因为笔者先前用的是ubuntu18,相比与centos的yum使用的是apt。用起来不要太爽,nginx,mysql,php,php-fpm,phpmyadmin都是apt install即可。yum难用的理由如下:
1、虽然配置了阿里源,remi源,epel源等,使用yum install要么提示找不到包,要么包太老旧,换了几个源都是这样。
2、命名不统一,同一个php7.2,有的源叫php72w,有的源叫php72-php,php-fpm的命名就更多,真是服了,centos也算是服务器端使用率最高的系统,如此混乱。
3、面对这样情况,笔者一度怀疑人生,但还是总结了最快安装的方法,新手直接按我这篇来就行了。

二、安装前的准备-配置selinux和防火墙

1,临时(永久)关闭selinux

为什么要关闭selinux(centos默认开启的安全加强的linux,详细问度娘),避免selinux的默认文件权限的限制,导致安装失败。操作如下:
查看SELinux状态命令:
  命令:/usr/sbin/sestatus -v
  如果SELinux status参数为enabled即为开启状态,disable为关闭
关闭SELinux方法:
  临时关闭(本次安装使用的方法,不用重启机器,重启后恢复):
  命令:setenforce 0
永久关闭:修改配置文件需要重启机器:
  修改/etc/selinux/config 文件(小白请自学vim操作)
  将SELINUX=enforcing改为SELINUX=disabled
  重启机器,如下命令都可以:
  reboot
  shutdown -r
  init 1

2,配置防火墙-开启关闭相关端口

经典工具iptables可以灵活的定义防火墙规则,功能非常强大。但是配置过于复杂,对新手不友好。建议使用ubuntu发行版的UFW(Uncomplicated Firewall不复杂的防火墙)的防火墙配置工具。
安装命令:yum install ufw
使用方法比较简单了:
首先启用ufw:
sudo ufw enable
开启禁止一切外部连接:
sudo ufw default deny
开启ssh用的22端口:
sudo ufw allow 22
开启web服务的80端口:
sudo ufw allow 80
是不是非常简洁~
如果你是远程登陆服务器的方式,开启后可能会导致putty,xshell等工具无法ssh连接。处理方法,在阿里云(腾讯云)的实例管理界面中登录ssh并开启22端口即可。

三、nginx的安装

1,通过源安装(推荐):

Nginx官方提供了最新Yum源(1.16版),
执行命令添加源:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
执行下列命令安装Nginx
sudo yum install nginx
启动Nginx
sudo systemctl start nginx.service
设置开机自动运行
sudo systemctl enable nginx.service
检查安装是否成功,在浏览器中输入服务器的地址,本机安装则输入172.0.0.1,回车:
会显示:welcome to nginx!

2,编译安装(新手不推荐)

看这篇:https://www.cnblogs.com/liaoxianfu/p/0ec6427a9b5fa9063022fac1c2561395.html

四、安装php7.2和php-fpm

1,yum安装

执行如下两个命令添加php最新的yum源:

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

先清理旧php版本:
yum -y remove php*
安装php72w和php-fpm等拓展件:
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
验证php是否安装成功:
php -v
验证对应的扩展是否安装成功:
php -m
设置php-fpm并检测php-fpm的运行状态
启动php-fpm
service php-fpm start
检查启动是否成功
service php-fpm status
设置开机自启动
systemctl enable php-fpm.service
检查开机自启动是否设置成功
systemctl list-dependencies | grep php-fpm

2,配置php-fpm使nginx能够解析php

配置文件为:/etc/php-fpm.d/www.conf
输入ps -aux|grep nginx: worker process
出现的进程用户名应该是:nginx(有的是www-data)
修改/etc/php-fpm.d/www.conf
使
user = nginx
group = nginx
修改完后应重启php-fpm使修改后的配置生效。
停止
systemctl stop php-fpm.service
重启
systemctl restart php-fpm.service

3,配置nginx解析php

进入配置目录:
cd /etc/nginx/conf.d
编辑配置文件:vim default.conf
修改server{ }里面内容如下:

location / {
        root   /var/www/html;
        index  index.html index.htm index.php;
      }

去掉下面这段前面的注释号#


location ~ \.php$ {
        root           /var/www/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;

        #注意下面这一行不同之处,需要修改:
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

重载配置文件nginx:使配置生效
nginx -s reload
不行的话:

nginx -s stop
nginx -c /etc/nginx/nginx.conf
4,测试

在网站根目录,一般为/var/www/html
新建文件index.php:vim index.php
内容如下:

<?php
   phpinfo();
?>

在浏览器输入:服务器ip(或本机测试ip 127.0.0.1)/index.php
会显示php的相关信息,表示成功。

四,安装mysql

1,使用源安装

安装mysql5.7的yum源
yum -y localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
检查mysql源是否安装成功
 yum repolist enabled | grep “mysql.-community.
安装mysql
yum -y install mysql-community-server install mysql-community-devel
启动mysql
service mysqld start
检查mysql启动是否正常
service mysqld status 或者 ps -ef | grep mysql
设置mysqld服务开机自启动
systemctl enable mysqld.service
检查mysqld开机自启动是否设置成功
systemctl list-dependencies | grep mysqld

2,更改mysql数据库的root密码

由于mysql5.7以后的增强了安全机制, 使用yum安装时不会让你输入密码,而是由系统自动生成一个随机的密码。
查看mysql的随机密码:
grep ‘temporary password’ /var/log/mysqld.log
使用查询得到的随机密码在终端登录:
mysql -u root -p
登录后修改密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你要设置的密码’;
quit
退出mysql客户端,用刚才修改的密码验证登录。

3,上一步登录不进去的解决方法

基本上,在上一步,即使获取了临时密码,也会被mysql禁止登录,怎么办呢
解决办法看这篇:
https://www.cnblogs.com/cpl9412290130/p/9583868.html

4,安装mysql图形界面管理工具phpmyadmin

进入安装网站根目录目录 cd /var/www/html
下载phpmyadmin到此目录:
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.5/phpMyAdmin-4.8.5-all-languages.tar.gz
解压:
tar zxvf phpMyAdmin-4.8.5-all-languages.tar.gz
删除压缩包:rm -f phpMyAdmin-4.8.5-all-languages.tar.gz
重新命名:
mv phpMyAdmin-4.8.5-all-languages phpMyAdmin
修改配置文件:
进入phpmyadmin:
cd /phpMyAdmin
重命名配置文件:
mv config.sample.inc.php config.inc.php
编辑配置文件:

vim config.inc.php

修改以下2处地方:
$cfg[‘blowfish_secret’] = ‘随意填一个授权密码,越长越好,不用记’;
c f g [ ′ S e r v e r s ′ ] [ cfg[&#x27;Servers&#x27;][ cfg[Servers][i][‘host’] = ‘127.0.0.1’;
访问:
之后在浏览器输入:你的ip/phpMyAdmin/index.php
回车之后你可能会面对第一个错误:
①phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied ()
原因:没有配置则不会生成session文件,配置的目录session.save_path不存在,或者是没有写入这个目录的权限
解决办法:
到路径/var/lib/php/session/,看看session目录有没有,没有手动建一个
再把这个路径的权限修改成777。

解决上个问题之后,终于看到phpmyadmin 的界面了,欣喜地输入前面设置的mysql密码,结果遇到第二个问题:
② 无法登录 MySQL 服务器:mysqli_real_connect(): (HY000/1862): Your password has expired. To log in you must change i t using a client that supports expired passwords.
这句话的意思是mysql 的密码过期了,解决办法如下:
使用原密码登录mysql:
mysql -u root -p
使用以下语句改密码:
123效果一样,使用一个即可
注意mysql默认使用强密码必须符合长度要求,且必须含有数字,小写或大写字母,特殊字符
①SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘你的密码’);
②SET PASSWORD = PASSWORD(‘你的密码’);
③ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’;
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
flush privileges;
如果你只想设置一个好记住的简单密码,先改成强密码,再按以下步骤,自己选择设置简单密码:
一般只设置这一项就可以了:
validate_password_policy=0;设置密码策略为只检测长度(但长度必须大于8)
密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG
再重置密码

以下为可选项:
validate_password_dictionary_file;
插件用于验证密码强度的字典文件路径。
validate_password_length;
密码最小长度,参数默认为8,它有最小值的限制,最小值为字母数字符合之和
validate_password_mixed_case_count;
密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count;
密码至少要包含的数字个数。

进入phpmyadmin后,看到警告消息:
变量 $cfg[‘TempDir’] (./tmp/)无法访问, phpMyAdmin无法缓存模板文件,所以会运行缓慢。
出现这个的原因是 phpmyadmin的安装目录, tmp目录不存在,或者存在但是权限不对。这是个缓存目录,可以加快phpmyadmin的运行,即使不理睬这个警告信息,也不会影响程序的执行。解决的方法就是创建一下这个目录,给予正确的读写权限即可
cd /var/www/html/phpMyAdmin
mkdir tmp
chmod 777 tmp

结束语:到这里,LNMP就搭建完成了,有问题请在下方留言我会尽量回复的。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值