LNMP 环境搭建(nginx+mysql+php)
本教程是在CentOS 7 下运行的
前期准备
yum -y install gcc gcc-c++ autoconf pcre-devel make automake
yum -y install wget httpd-tools vim
systemctl disable firewalld #(永久关闭防火墙)
安装 nginx 服务器
1、检测 yum 是否已经存在
yum list | grep nginx
如果返回值 nginx的版本说明yum源中已经存在nginx 否则我们要进行一下配置
2、配置yum源
vim /etc/yum.repos.d/nginx.repo
最新的 yum 源配置可以去nginx的官网寻找 (先点击download,在下载页点击stable and mainline)
(本教程中的配置信息)按 i
编辑进入编辑模式
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
3、安装nginx
yum -y install nginx
4、查看nginx的安装版本
nginx -v
返回nginx版本则说明安装成功
安装Mysql
下载mysql的离线压缩包,不推荐使用yum直接安装
链接:https://pan.baidu.com/s/1o4kANL4EQ5gq4DM5T3-fJg
提取码:aoem
上传到linux 的 / 根目录 然后解压
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
移动解压后的文件夹,并且重命名
mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql
创建mysql用户组和用户并修改权限
groupadd mysql
useradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
配置my.cnf
vim /etc/my.cnf
内容如下
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
初始化数据库
进入mysql的bin目录
cd /usr/local/mysql/bin/
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
如执行后报错内容为 ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
我们需要安装libaio
再次初始化
yum install libaio
查看默认密码并记录
,我们一会要用它修改为自己的密码
cat /data/mysql/mysql.err
启动mysql 并更改root密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动
service mysql start
ps -ef|grep mysql #查看mysql的进程可以不执行这句
修改mysql的默认密码
首先登录mysql,前面的那个是随机生成的。
./mysql -u root -p #bin目录下(密码支持粘贴-密码不可见 * 号都没有)
再执行下面三步操作,然后重新登录。
SET PASSWORD = PASSWORD('123456'); #(123456)是你要设置的mysql密码
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
解决远程登录
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
如果不希望每次都到bin目录下使用mysql命令则执行以下命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
设置mysql开机自启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
systemctl enable mysqld
命令执行完成后,我们重新连接服务器即可
声明:以上数据库的安装教程来自 蛇皮蛋蛋
PHP环境安装
1、更新 yum 源
运行以下命令添加IUS源(下面的命令是模板,不是运行命令)。
#运行命令前,请将<版本号>替换为当前可用的版本号。
yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-<版本号>.ius.centos7.noarch.rpm
本教程中使用的命令如下
yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-15.ius.centos7.noarch.rpm
-
查找可用版本号的方法如下:
访问ius community网站。
在搜索框中输入ius-release
选择带有centos7的版本。红框中的内容即为可用的版本号,如下图所示。
image.png 运行以下命令添加Webtatic源。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
- 运行以下命令安装PHP。
yum -y install php70w-devel 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-pdo.x86_64 php70w-mysqlnd php70w-fpm php70w-opcache php70w-pecl-redis php70w-pecl-mongodb
- 如果报错
Cannot find a valid baseurl for repo: ius/x86_64,
请尝试运行以下命令编辑文件/etc/yum.repos.d/ius.repo
。
vi /etc/yum.repos.d/ius.repo
-
按键盘i键进入编辑模式,去掉#baseurl=https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/$basearch前方的注释符号
#
并再次安装
修改后,如下图所示:
image.png 查看php版本
php -v
配置nginx
- 运行以下命令备份Nginx配置文件。
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
- 运行以下命令打开Nginx配置文件。
vim /etc/nginx/conf.d/default.conf
- 在
server
大括号内,添加下列配置信息。
#添加下列信息,配置Nginx通过fastcgi方式处理您的PHP请求
location ~ .php$ {
root /usr/share/nginx/html; #将/usr/share/nginx/html替换为您的网站根目录,本教程使用/usr/share/nginx/html作为网站根目录
fastcgi_pass 127.0.0.1:9000; #Nginx通过本机的9000端口将PHP请求转发给PHP-FPM进行处理
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; #Nginx调用fastcgi接口处理PHP请求
}
- 重启nginx 服务
systemctl start nginx
# 或者
nginx -s reload
- 运行一下命令设置nginx 开机自启
systemctl enable nginx
配置php
- 在网站根目录新建一个php 文件
vim /usr/share/nginx/html/phpinfo.php
- 输入下列内容。
- 启动 php-fpm
php-fpm
# 或者
systemctl start php-fpm
- 运行以下命令设置PHP-FPM开机自启动。
systemctl enable php-fpm
测试
在浏览器中输入ip + /phpinfo.php
返回结果如下图所示,表示LNMP环境部署成功。