L指Linux,
N指Nginx,
M一般指MySQL,也可以指MariaDB,
P一般指PHP,也可以指Perl或Python
1.搭建LNMP准备
1.1关闭selinux,selinux是Linux 内核模块,也是 Linux 的一个安全子系统
setenforce 0 #临时关闭
selinux getenforce #查看临时关闭情况
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #永久关闭,重启电脑
1.2关闭防火墙
systemctl stop firewalld systemctl disable firewalld
1.3补充:
如果开机启用nginx提示如下:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
这是因为80端口被占用
使用命令:fuser -k 80/tcp 解除占用
2.搭建LNMP架构
2.1使用官方仓库安装Nginx
- 安装前:yum revmove nginx -y ##卸载旧版本nginx
- 调整yum源优先级
- rpm -qa yum-plugin-priorities
- yum install yum-plugin-priorities -y
- 配置yum源(目标从nginx官方下载如果不配置上面的优先级,默认从centos的官方下载.)
- vim /etc/yum.repos.d/nginx.repo
- 复制:
[nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 priority=1
- yum install nginx -y #从nginx官方下载. nginx -v查看nginx版本号 nginx -t 检查有没有语法错误
- 配置Nginx进程运行的用户
- useradd -u1111 www -s /sbin/nologin -M
- egrep "^user" /etc/nginx/nginx.conf
- sed -i '/^user/c user www;' /etc/nginx/nginx.conf
- egrep "^user" /etc/nginx/nginx.conf
- systemctl start nginx #启动nginx服务
- systemctl enable nginx #开机自启动
- netstat -lntup|grep nginx #查看nginx服务是否启动
- curl 127.0.0.1/index.html #测试nginx
2.2使用第三方扩展源安装php7.1
- 配置PHP安装源
- yum install epel-release -y
rpm -ql epel-release
wget https://mirror.webtatic.com/yum/el7/webtatic-release.rpm --no-check-certificate rpm -Uvh webtatic-release.rpm
rpm -ql webtatic-release-7-3
安装PHP及相关插件
- 卸载旧版本的php
- rpm -e $(rpm -qa|grep php) rpm -qa|grep php
- 安装PHP及相关插件(网络下载安装)
- yum install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd -y yum install php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd -y yum install php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb -y pwd
- 安装php7版本的软件(本地安装)
- tar xf php.zip
yum localinstall php/*.rpm -y
配置php-fpm用户与Nginx的运行用户保持一致
- sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf
egrep "^user|^group" /etc/php-fpm.d/www.conf #查看已配置的权限
- systemctl start php-fpm #启动php
systemctl enable php-fpm #开机启动php
netstat -lntup|grep php-fpm #查看是否启动php
2.3安装Mariadb/MySQL数据库
- 安装
yum install mariadb-server mariadb -y - 设置启动
- systemctl start mariadb #启动Mariadb
systemctl enable mariadb #开机启动Mariadb
netstat -lntup|grep mysql #查看是否启动Mariadb
给Mariadb配置登陆密码,并是新密码进行登录数据库
- mysqladmin password 'oldboy123' #设置密码
- mysql -uroot -poldboy123 #登录
3.LNMP架构配置及整体测试实战----搭建博客
3.1配置虚拟主机配置文件
- cd /etc/nginx/conf.d
- gzip default.conf
- vim 01_blog.etiantian.org.conf
-
server { server_name blog.etiantian.org; listen 80; root /data/blog; index index.php index.html; location ~ \.php$ { root /data/blog; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- nginx -t
- systemctl reload nginx
3.2创建站点目录
- 创建授权blog目录
- mkdir -p /data/blog
- chown -R www.www /data/blog
- 测试PHP服务
- cd /data/blog/
- cat >test.php<<EOF <?php phpinfo(); ?> EOF
- cat test.php
<?php phpinfo(); ?>
- 测试php连接mysql
- vim /data/blog/test_mysql.php
<?php $servername = "localhost"; $username = "root"; $password = "oldboy123"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "php连接MySQL数据库成功,oldboy安全8期"; ?>
- 主机访问http://10.0.0.7/test_mysql.php
- 测试
- index.html #验证nginx虚拟主机静态是否成功.
echo oldboy >index.html
curl 10.0.0.7 - test.php #访问.php的程序,看看nginx是否后抛给php,是否解析成功.
curl 10.0.0.7/test.php - test_mysql.php #访问.php的程序,看看nginx是否后抛给php,是否解析成功.是否连接数据库成功.
curl 10.0.0.7/test_mysql.php
- 域名测试
- windows中的hosts
路径:C:\Windows\System32\drivers\etc\hosts 添加内容:10.0.0.7 blog.etiantian.org - linux中的hosts
路径:vim /etc/hosts
添加内容:10.0.0.7 blog.etiantian.org
- 安装wordpress软件
- cd /data/blog #提前上传或下载latest-zh_CN.zip
- unzip latest-zh_CN.zip #解压
- mv wordpress/* #将wordpress文件夹下的文件移动到/data/blog中
- chown -R www.www /data/blog #授权
- 域名访问和地址访问都可以了
- 创建是数据库
- 方法1:浏览器访问blog.etiantian.org
- 数据库:test
- 用户:root
- 密码:oldboy123
- 主机:localhost
- 方法2:Linux访问数据库
- 创建数据库和用户: [root@oldboy blog]# mysql -uroot -poldboy123 #登录
- MariaDB [(none)]> create database blog; #创建库
- MariaDB [(none)]> grant all on blog.* to blog@'localhost' identified by 'oldboy123'; 授权库
- MariaDB [(none)]> flush privileges; #写入存储
- 数据库:blog
- 用户:blog
- 密码:oldboy123
- 主机:localhost