详述如何搭建 LNMP 环境
目前主流的PHP开发环境组合是LAMP和LNMP,LAMP和LNMP是Linux + Apache/Nginx + Mysql + PHP的简称。
准备工作
安装wegt
==wegt== 是一个从网络上自动下载文件的*工具,支持通过 HTTP、HTTPS、FTP 三个最常见的TCP/IP协议下载,并可以可以使用HTTP代理
sudo yum install wget
安装net-tools
最小化安装CentOS7时如果无法使用==ifconfig==命令,则需要安装==net-tools==,如果是安装的CentOS6版本则无需安装
sudo yum install net-tools
CentOS 7.x 更换 yum 镜像
备份镜像
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.ustc.edu.cn/centos/
更新yum源
yum -y update
安装vim
sudo yum install vim
配置显示行号
vim ~/.vimrc
set nu #输入set nu 后保存退出
安装Nginx
安装依赖
- 安装 ==nginx== 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装==gcc-c++==。
- ==PCRE==是一个Perl库,中文"Perl兼容的正则表达式库"。安装Nginx是为了使Nginx支持具备URI重写功能的rewrite模块,如果不安装pcre库,则Nginx无法使用rewrite模块功能,Nginx的Rewrite模块功能几乎是企业应用必须
- ==zlib==库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库
- ==OpenSSL==是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。 nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要安装 OpenSSL 库
yum -y install gcc gcc-c++ zlib zlib-devel #安装gcc-c++依赖
yum -y install pcre pcre-devel openssl openssl-devel #安装openssl依赖
yum安装方式安装的pcre版本比较低,不过基本不影响使用
检查基础依赖包
上面的依赖安装完成后可以通过如下命令检查各个依赖安装是否成功
rpm -qa pcre pcre-devel
rpm -qa zlib zlib-devel
rpm -qa openssl openssl-devel
编译安装Nginx
\# 这里我们把安装包都放到了/usr/src目录下,便于统一管理
cd /usr/src #切换到软件包目录
wget https://nginx.org/download/nginx-1.16.1.tar.gz #下载nginx源码包
useradd nginx -s /sbin/nologin -M #创建nginx用户用于管理nginx程序
tar zxvf nginx-1.16.1.tar.gz #解压nginx源码包
cd nginx-1.16.1
#预编译
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx-1.14.1 \
--with-http\_v2_module \
--with-http\_ssl_module \
--with-http\_stub\_status_module
make && make install #编译 和 安装
cd /usr/local
ln -s nginx-1.16.1 nginx #创建nginx的软链接
安装说明
--prefix=PATH #设置安装路劲
--user=USER #进程用户权限
--group=GROUP #进程用户组权限
--with-http_stub_status_module #激活状态信息
--with-http_ssl_module #激活ssl功能
配置环境变量
vim /etc/profile #编辑环境变量文件
export PATH=/usr/local/nginx/sbin:$PATH #在文件末尾插入该行语句
source /etc/profile #保存并退出,加载环境变量文件
配置开机自启
vim /etc/rc.local
# Nginx开机自启
/usr/local/nginx/sbin/nginx &
Nginx常用命令
/usr/local/nginx/sbin/nginx -t # 检查Nginx配置语法是否有误
/usr/local/nginx/sbin/nginx #启动
/usr/local/nginx/sbin/nginx -s stop #立即停止
/usr/local/nginx/sbin/nginx -s quit #平滑停止
/usr/local/nginx/sbin/nginx -s reload #重载配置
/usr/local/nginx/sbin/nginx -s reopen #重开日志
服务启动检查
可以通过该命令查询80端口被谁占用
lsof -i :80
如果无法识别该命令,则需要安装 lsof
sudo yum install lsof
关闭防火墙
CentOS6:
service iptables stop 临时关闭
chkconfig --level 2345 iptables off 永久关闭
CentOS7:
systemctl stop firewalld.service #令关闭防火墙
systemctl disable firewalld.service #关闭防火墙开机自启动
通过浏览器输入IP测试是否成功
Mysql安装
先检查系统是否装有mysql
rpm -qa | grep mysql
返回空值,则说明没有安装
下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
//安装rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo
安装mysql
//安装可用命令
yum install mysql
//删除可用
yum remove mysql
//如有报错
yum install glibc.i686
yum list libstdc++*
重置密码
重置密码前,首先要登录
mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’(2),原因是/var/lib/mysql的访问权限问题。 下面的命令把/var/lib/mysql的拥有者改为当前用户:
chown -R openscanner:openscanner /var/lib/mysql
如果报==chown: 无效的用户: "openscanner:openscanner"==错误,更换命令,并用 ll 查看目录权限列表
# chown root /var/lib/mysql/
# ll
此时mysql目录的文件夹权限改为root
重启服务:
service mysqld restart
//重置登录密码
mysql -u root -p
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;
重启mysql服务使设置生效
加入以下命令行,为root添加远程连接的能力。链接密码为 “123456”(不包括双引号)
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
查询数据库编码格式,确保是 UTF-8
show variables like "%char%";
需要修改编码格式为UTF-8,导入数据库sql的时候,请确保sql文件为utf8编码 进入mysql命令行后 输入
set names utf8;
开放3306端口号
firewalld 防火墙(centos-7)运行命令,并重启:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
安装PHP
- 依次执行以下命令,更新 yum 中 PHP 的软件源
rpm -Uvh https://mirrors.cloud.tencent.com/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- 执行以下命令,安装 PHP 7.2 所需要的包
yum -y install mod_php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-mysqlnd php72w-fpm.x86_64
- 执行以下命令,启动 PHP-FPM 服务
systemctl start php-fpm
- 执行以下命令,设置 PHP-FPM 服务为开机自启动
systemctl enable php-fpm