Centos7 mini 配置 php7+nginx+mysql 最详细过程,为linux小白送福利

in web技术 with 7 comments 访问: 7,879 次

前言

本来不想写这篇的,因为网上都有,但是最近问关于这些环境配置的朋友有点多,于是整理一番,全部都是本人实战验证过的。

解决不能联网问题

新镜像安装完后经常发现没有网络,或者装虚拟机(桥接)发现没有自己的ip,或者yum install时出现“could not retrieve mirrorlist”等问题。

没有ip:
ip.png

yum失败:
yum.png

解决方法:

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

当然你的网卡可能叫别的名字,比如ifcfg-enp5s0f0什么的;
将ONBOOT改为yes,然后重新启动网络。

systemctl restart network

结果:
3s.png

ok,已经可以联网了,接下来进行搭建php环境。

更换yum源(可选操作)

参考 https://blog.csdn.net/weixin_34320159/article/details/92979013

开始搭建LNMP 之 nginx

推荐大家使用yum源来安装,方便快捷。
但是yum源中没有我们想要的nginx,那么我们就要增加一个nginx的yum源。
新建文件:

vi /etc/yum.repos.d/nginx.repo

复制如下内容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

然后保存退出,输入yum list nginx 查看:
nginx.png

ok,yum源配置成功了,直接yum安装即可:

yum install nginx

启动nginx:

systemctl start nginx

添加开机启动项:

systemctl enable nginx

ok, nginx最新版已经安装好了,访问一下本机80端口:
curl.png

开始搭建LNMP 之 MySQL5.7

首先安装mysql的rpm软件包,执行:

rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

安装成功后可以查看可用版本,执行:

yum repolist all | grep mysql

m.png

ok,安装MySQL:

yum install mysql-community-server

安装成功!
mm.png

接下来要注意了!

跟着我的顺序做,首先启动mysql

systemctl start mysqld

接下来获取mysql的默认初始密码,这里是因为mysql在5.7增强了安全机制,所以新安装后都有个初始密码:

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

m5.png

ok,复制这个初始密码登录mysql,并修改root密码:(由于MySQL5.7默认安装了密码安全检查工具,要求密码必须包含大小写字母、数字和特殊符号,并且长度不能少于8位,否则会报错,如下图)

m8.png

当然这里不推荐修改密码策略,数据库的密码就应该复杂一点,养成良好习惯。

为安全考虑,root是不允许远程连接的,于是我们添加一个新用户并授予远程登录权限:

GRANT ALL PRIVILEGES ON *.* TO 'litblc'@'%' IDENTIFIED BY 'Litblc.com.2017' WITH GRANT OPTION;

刷新:

FLUSH PRIVILEGES;

mmm5.png

用户名为litblc,密码为Litblc.com.2017的远程用户建立好了,运行select host, user from mysql.user可以查看所有用户与授权主机信息:

q5.png

设置MySQL开机启动:

systemctl enable mysqld
systemctl daemon-reload

最后我们退出mysql来修改一下他的配置文件,使他默认使用utf8编码:

vi /etc/my.cnf

在[mysqld]下添加编码配置

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

最后重启生效:

systemctl restart mysqld

ok, 接下来开始安装php7

开始搭建LNMP 之 php

更新:CentOS7 升级PHP到7.2

第一步依然是安装php的rpm软件包

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安装php7以及他的一些扩展(扩展可以根据自己需求添加)

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysqlnd.x86_64 php70w-pdo.x86_64 php72w-xml.x86_64 php70w-devel 

yum install php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-gd.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-mcrypt.x86_64 php72w-mysqlnd.x86_64 php72w-pdo.x86_64 php72w-xml.x86_64 php72w-devel

安装php-fpm:

yum install php70w-fpm php70w-opcache

启动、开机启动php-fpm:

systemctl start php-fpm
systemctl enable php-fpm

ok,接下来配置nginx,使其解析php,vi /etc/nginx/conf.d/default.conf,应该有如下一段被注释掉的代码,打开并修改为:

    root  /usr/share/nginx/html;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

重启nginx:systemctl restart nginx

到nginx解析目录创建phpinfo.php:

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

<?php
    phpinfo();

保存退出。

接着就是见证奇迹的时刻了,打开我们本地的浏览器,输入http://192.168.9.138/phpinfo.php,是否见到了熟悉的界面呢?
妈的我没见到,防火墙拒绝了,那么很好,我们就一步到位,再来配置个防火墙。

开始搭建LNMP 之 iptables

首先关闭SELUNUX :

vi /etc/selinux/config

注释如下配置:

 SELINUX=enforcing 
 SELINUXTYPE=targeted 

并增加一行:

 SELINUX=disabled 

ii.png

保存退出,使配置立即生效:

 setenforce 0

关闭firewalld并禁止开机启动:

systemctl stop firewalld

systemctl disable firewalld

接下来安装iptables防火墙 :

yum install iptables-services

编辑防火墙配置文件,添加80和3306端口:

vi /etc/sysconfig/iptables 

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

ip6.png

保存退出,重新启动防火墙使配置生效,并设为开机启动项:

systemctl restart iptables
systemctl enable iptables

ok,大功告成,访问我们的phpinfo.php:

dd.png

测试远程数据库连接:

ycmysql.png

全部正常!至此,配置完毕。

composer && nodejs

安装composer:

https://getcomposer.org/download/

// 放到全局环境变量里,并添加执行权限
mv composer.phar /usr/local/bin/composer

设置中国全量镜像

composer config -g repo.packagist composer https://packagist.phpcomposer.com

// 推荐使用阿里云的,packagist.phpcomposer.com最近不稳定
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer self-update
composer clear-cache

composer.png

安装nodejs:

可以去官网 https://nodejs.org/dist/ 查找自己想要安装的版本,这里我以最新的LTS版本6.11.2为例安装。

npm.png

注意下载的是什么文件,推荐使用编译好的如下方式,楼主自己编译的时候曾经把服务器干挂了,真是人生头一回。

使用wget下载压缩包,若没有wget命令,则需要先安装 yum install wget

wget https://nodejs.org/dist/v6.11.2/node-v6.11.2-linux-x64.tar.xz

解压 :

tar xvJf node-v6.11.2-linux-x64.tar.xz

之后进入到bin目录,将node 和 npm 设为全局执行:

cd  node-v6.11.2-linux-x64/bin
ln -s /usr/node/node-v6.11.2-linux-x64/bin/node  /usr/local/bin/node
ln -s /usr/node/node-v6.11.2-linux-x64/bin/npm  /usr/local/bin/npm

这里 /usr/node/node-v6.11.2-linux-x64这个目录是你自己解压node文件的目录,我的放在/usr/node

ok, 执行 node -v 和 npm -v 可以查看到版本号,至此,基本开发环境已经配置完毕。

补充 :使用全局淘宝镜像地址,使用cnpm命令代替npm :

npm install -g cnpm --registry=https://registry.npm.taobao.org

全文完

赞赏支持
Responses
  1. yinminqian

    谢谢

    Reply
    1. Reply
  2. 刘伟鹏

    真的很不错,已经不知道怎么去形容了,我 也自己看教程学着搭环境,没有一个教程能和这篇博客媲美的

    Reply
    1. lee
      @刘伟鹏

      就是牛B

      Reply
    2. @刘伟鹏

      谢谢,都是自己亲力亲为的

      Reply
  3. Clark

    cool~
    great help for beginer...
    greatt help for review...

    Reply
    1. @Clark

      Good luck!

      Reply