前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos7 mini 配置 php7+nginx+mysql 最详细过程,为linux小白送福利

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

作者头像
躺平程序员老修
发布2023-09-05 15:51:21
3330
发布2023-09-05 15:51:21
举报
文章被收录于专栏:躺平程序员老修

CentOs7 mysql php nginx linux

前言

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

解决不能联网问题

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

没有ip:

ip.png
ip.png

yum失败:

yum.png
yum.png

解决方法:

代码语言:javascript
复制
vim /etc/sysconfig/network-scripts/ifcfg-ens33 

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

代码语言:javascript
复制
systemctl restart network

结果:

3s.png
3s.png

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

更换yum源(可选操作)

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

开始搭建LNMP 之 nginx

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

代码语言:javascript
复制
vi /etc/yum.repos.d/nginx.repo

复制如下内容:

代码语言:javascript
复制
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

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

nginx.png
nginx.png

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

代码语言:javascript
复制
yum install nginx

启动nginx:

代码语言:javascript
复制
systemctl start nginx

添加开机启动项:

代码语言:javascript
复制
systemctl enable nginx

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

curl.png
curl.png

开始搭建LNMP 之 MySQL5.7

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

代码语言:javascript
复制
rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

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

代码语言:javascript
复制
yum repolist all | grep mysql
m.png
m.png

ok,安装MySQL:

代码语言:javascript
复制
yum install mysql-community-server

安装成功!

mm.png
mm.png

接下来要注意了!

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

systemctl start mysqld

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

代码语言:javascript
复制
grep 'temporary password' /var/log/mysqld.log
m5.png
m5.png

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

m8.png
m8.png

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

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

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON *.* TO 'litblc'@'%' IDENTIFIED BY 'Litblc.com.2017' WITH GRANT OPTION;

刷新:

代码语言:javascript
复制
FLUSH PRIVILEGES;
mmm5.png
mmm5.png

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

q5.png
q5.png

设置MySQL开机启动:

代码语言:javascript
复制
systemctl enable mysqld
systemctl daemon-reload

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

代码语言:javascript
复制
vi /etc/my.cnf

在[mysqld]下添加编码配置

代码语言:javascript
复制
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

最后重启生效:

代码语言:javascript
复制
systemctl restart mysqld

ok, 接下来开始安装php7

开始搭建LNMP 之 php

更新:CentOS7 升级PHP到7.2

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

代码语言:javascript
复制
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以及他的一些扩展(扩展可以根据自己需求添加)

代码语言:javascript
复制
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:

代码语言:javascript
复制
yum install php70w-fpm php70w-opcache

启动、开机启动php-fpm:

代码语言:javascript
复制
systemctl start php-fpm
systemctl enable php-fpm

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

代码语言:javascript
复制
    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:

代码语言:javascript
复制
vi /usr/share/nginx/html/phpinfo.php

<?php
    phpinfo();

保存退出。

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

开始搭建LNMP 之 iptables

首先关闭SELUNUX :

vi /etc/selinux/config

注释如下配置:

代码语言:javascript
复制
 SELINUX=enforcing 
 SELINUXTYPE=targeted 

并增加一行:

代码语言:javascript
复制
 SELINUX=disabled 
ii.png
ii.png

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

代码语言:javascript
复制
 setenforce 0

关闭firewalld并禁止开机启动:

代码语言:javascript
复制
systemctl stop firewalld

systemctl disable firewalld

接下来安装iptables防火墙 :

代码语言:javascript
复制
yum install iptables-services

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

代码语言:javascript
复制
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
ip6.png

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

代码语言:javascript
复制
systemctl restart iptables
systemctl enable iptables

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

dd.png
dd.png

测试远程数据库连接:

ycmysql.png
ycmysql.png

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

composer && nodejs

安装composer:

代码语言:javascript
复制
https://getcomposer.org/download/

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

设置中国全量镜像

代码语言:javascript
复制
composer config -g repo.packagist composer https://packagist.phpcomposer.com


composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer self-update
composer clear-cache
composer.png
composer.png

安装nodejs:

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

npm.png
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 设为全局执行:

代码语言:javascript
复制
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 :

代码语言:javascript
复制
npm install -g cnpm --registry=https://registry.npm.taobao.org

全文完

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 解决不能联网问题
  • 更换yum源(可选操作)
  • 开始搭建LNMP 之 nginx
  • 开始搭建LNMP 之 MySQL5.7
  • 开始搭建LNMP 之 php
  • 开始搭建LNMP 之 iptables
  • composer && nodejs
  • 全文完
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档