LNMP环境介绍
- LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP。
- MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,这样就增加了速度并提高了灵活性。(数据包括用户名、密码、文章内容等)
- PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。用PHP开发的网站:qq.com、baidu.com、google.com、ask.apelearn.com(部分或整体用到php)
- Nginx是一个小巧而高效的Linux下的Web服务器软件。
Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
用户访问服务器,最先接收请求的就是Nginx,有静态的请求会处理图片、js、css等,有动态的请求即php的请求,但是不处理,把php的请求转给后面的php-fpm
优点
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
- php-fpm会处理php相关的请求(即动态的请求)
静态,指的是Nginx可以直接处理的图片、js、css、视频、音频、flash等等
动态,指的是那些需要和数据库打交道的请求。比如,用户登录过程,比如查看一篇文章,或者写一篇文章
Mariadb安装
-
MariaDB是MySQL关系数据库管理系统的一个复刻,由社区开发,有商业支持,旨在继续保持在GNU GPL下开源。MariaDB的开发是由MySQL的一些原始开发者领导的,他们担心甲骨文公司收购MySQL后会有一些隐患。
-
MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。
从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。
安装MariaDB 10.4.7
以下的命令检查上一条命令是否运行成功,结果为0代表成功,如第三步可用到:
echo $?
如果提示缺少一些依赖项或软件,真接yum,如:
yum install -y libaio libaio-devel
1. 下载程序
选择源码版会更复杂,下面的是普通版linux 64位
cd /usr/src
wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.4.7/bintar-linux-systemd-x86_64/mariadb-10.4.7-linux-systemd-x86_64.tar.gz
下载后将文件解压缩
tar -zxvf mariadb-10.4.7-linux-systemd-x86_64.tar.gz
将解压缩的文件放在工作路径和改名
mv mariadb-10.4.7-linux-systemd-x86_64 /usr/local/mysql
2. 安装准备工作
生成库文件目录,数据库储存数据的目录
mkdir -p /data/mysql //两层目录同时生成
增加使用mysql服务的帐号,即mysql服务的属主帐号为一个非root的帐号,当mysql被黑了拿到了这个非root帐号,对系统的影响没那么大
useradd -M -s /sbin/nologin mysql
改变库目录的owner, 安装或使用时mysql服务或帐号就可以自由的在里面生成文件
chown -R mysql:mysql /data/mysql
3. 安装,安装的是二进制包,只需./scripts,不需要make和make install
cd /usr/local/mysql
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
4. 启动服务
将服务启动脚本放到系统的启动库里
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
配置脚本文件
vi /ect/init.d/mysqld //填写路径
basedir=/usr/local/mysql
datadir=/data/mysql
修改配置文件
vi /etc/my.cnf //修改几个路径datadir = /data/mysql; pid-file = /data/mysql/mariadb.pid; socket = /tmp/mysql.sock; log-error = /data/mysql/mariadb.log
添加服务到启动项里,上面一步是必须的,而且文件权限要为755
chkconfig --add mysqld
添加后默认启动级别2-5为on,代表开机就会启动
启动服务,两个命令是同一个意思,mysqld放到启动库后就可以用命令2
/etc/init.d/mysqld start //1
service mysql start //2
检查是否启动
ps aux | grep mysql //结果行数大于2
netstat -ant //看到侦听3306端口
5. 启动客户端
/usr/local/mysql/bin/mysql -uroot
即可进入mysql的使用界面。
6. 其他操作
缩短命令长度
软链接方式
ln -s /usr/local/mysql/bin/mysql /usr/sbin/mysql
增加环境变量方式
echo “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
source /etc/profile
即可使用以下命令登陆mysql
mysql -uroot
设定密码:mysqladmin -uroot password “aminglinux”
再次登录: mysql -uroot -paminglinux
mysql -uroot -paminglinux -S/tmp/mysql.sock #通过socket的连接方式;
mysql -uroot -paminglinux -h192.168.222.128 -P3306 #通过IP和端口号的连接方式;
mysql -uroot -paminglinux -hlocalhost -P 3306 #IP没权限可以使用localhost;
整理的mysql5.6.43自动安装脚本
mysql的安装跟mariadb的安装基本上是一模一样。
是在全新的centos7系统上测试安装,所以不会缺少包,测试多次成功。
#! /bin/bash
cd /usr/local/src
yum install -y wget
wget -c http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.43-linux-glibc2.12-x86_64 ../mysql
cd ../mysql
useradd mysql
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
yum install -y perl-5.16.3-294.el7_6.x86_64
yum install -y perl-Data-Dumper
yum install -y libaio-devel
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
sleep 10
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
sed -r '45,48s/(basedir=)(.*)/\1\/usr\/local\/mysql/' -i /etc/init.d/mysqld
sed -r '45,48s/(datadir=)(.*)/\1\/data\/mysql/' -i /etc/init.d/mysqld
sed -r '2,3s/(datadir=)(.*)/\1\/data\/mysql/' -i /etc/my.cnf
sed -r '2,3s/(socket=)(.*)/\1\/tmp\/mysql.sock/' -i /etc/my.cnf
sed -r '12,13s/(log-error=)(.*)/\1\/var\/log\/mysql.log/' -i /etc/my.cnf
sed -r '12,13s/(pid-file=)(.*)/\1\/var\/run\/mysql.pid/' -i /etc/my.cnf
service mysqld start
if [ $? -eq 0 ]; then
echo "mysqld start successfully"
else
echo "fault"
fi