作为一名Linux系统运维人员或经常用到lnmp环境的朋友门,快速搭lnmp环境是必备的技能。
lnmp环境搭建全套安装文件。
##############################################################
Linux系统安装(点击详见Linux系统安装教程)
##############################################################
关闭防火墙和selinux
systemctl stop firewalld
#查看selinux状态
getenforce
#临时关闭selinux
setenforce 0
#永久关闭
vi /etc/selinux/config
# SELINUX=enforcing改为SELINUX=disabled
##############################################################
nginx 部署
##############################################################
1、安装所需依赖
yum -y install pcre pcre-devel gcc gcc-c++ openssl openssl-devel zlib zlib-devel
(pcre: 包括 perl 兼容的正则表达式库
openssl: 支持安全传输协议https(和财务有关系的请求会走的协议)
创建运行用户、组
useradd -M -s /sbin/nologin nginx
#Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限
2、上传安装包到local下
解压 tar -zxvf nginx-1.20.2.tar.gz
切换到解压目录下
cd /usr/local/nginx-1.20.2
执行安装命令
./configure
make&&make install
3、切换到安装目录
cd /usr/local/nginx/conf
找到nginx.conf文件,需修改端口
vim nginx.conf
server {
listen 80;(默认时80端口需要更改)
server_name localhost;
4、启动nginx服务
cd /usr/local/nginx/sbin
启动命令
./nginx
5.查看nginx是否启动成功
ps -ef|grep nginx
6、设置防火墙,开放8066端口
查看防火墙是否开放过此端口
firewall-cmd --list-all
开放端口
firewall-cmd --zone=public --add-port=8088/tcp --permanent
一定要重启防火墙
firewall-cmd --reload
7、设置开机自动启动
切换到/lib/systemd/system/目录,创建nginx.service文件vi nginx.service
# cd /lib/systemd/system/
# vim nginx.service
文件内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
退出并保存文件,
执行systemctl enable nginx.service 使nginx开机启动
systemctl start nginx.service 启动nginx
systemctl stop nginx.service 结束nginx
systemctl restart nginx.service 重启nginx
#########################################################
mysql 部署
#########################################################
1.删除原有的mariadb,不然mysql装不进去
查询MAriaDB命令 rpm -qa|grep mariadb
删除 rpm -e --nodeps mariadb-libs、
rpm -e --nodeps mariadb-devel
(yum -y remove mysql 如需要清除服务器上以前安装过的MySQL可执行此命令,执行前一定要备份好数据库)
2、安装MySQL依赖libaio包
yum install libaio
3、上传MySQL安装包
cd /usr/local/
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql
4、给MySQL安装目录赋予访问权限并创建MySQL组和用户
进入MySQL8目录下赋予777权限(777 读写执行)
chmod -R 777 /usr/local/mysql 意思就是将mysql8目录下所有文件都给予最高权限
创建MySQL用户组
groupadd mysql
创建mysql用户,-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限:
useradd -m -g mysql -s /bin/false mysql
添加用户mysql到组mysql中
chown -R mysql:mysql ./
5、修改MySQL配置文件
在mysql8目录中新建文件夹mysqldb,这个文件夹在mysql的配置中将会用到,和windows系统中通过解压安装的方式的意义是一样的:
cd /usr/local/mysql
mkdir mysqldb
修改配置文件
vi /etc/my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
6、安装MySQL并启动MySQL服务
进入到MySQL bin目录下,执行安装,安装完成会生成一个随机密码要记录一下,第一次登录要使用
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/mysqldb --user=mysql --initialize
##备用##./mysqld --initialize --console
随机产生的密码 r;,)eju=d9qV 启动服务
mysql.server服务在安装目录的support-files目录下,执行以下指令进行启动:
cd /usr/local/mysql/support-files
chmod -R 777 /usr/local/mysql
./mysql.server start
7、添加MySQL到系统进程中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
8、设置MySQL服务开机自动启动
chmod +x /etc/init.d/mysql
旧的启动方法
chkconfig --add /etc/init.d/mysql
chkconfig --level 345 mysql on
新的自动启动方法
systemctl enable mysql
9、修改root用户原始密码
添加环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
这样可以是mysql命令被识别
mysql -uroot -p #输入上边记录的密码
alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
10、设置允许远程登录 (需要登录MySQL执行)
use mysql;
update user set user.Host='%'where user.User='root';
flush privileges;
quit;
执行完以上语句后要重新启动服务才能生效
systemctl restart mysql
service mysql restart
查看MySQL服务是否启动成功
systemctl status mysql
如出现active(running则表示服务是启动的)
11、设置防火墙,开放3306端口
查看防火墙是否开放过此端口
firewall-cmd --list-all
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
一定要重启防火墙
firewall-cmd --reload
12、用 Navicat客户端链接测试
##########################################################
php 部署
##########################################################
1、下载安装包,这里安装php
2、上传到local并解压
cd php-版本号
3、安装必备依赖
yum -y update
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libzip gcc-c++
4、进行预编译
cd /usr/local/php。。。
./configure --prefix=/usr/local/php --enable-dba --enable-fpm --enable-dom --enable-pdo --enable-exif --enable-intl --enable-soap --enable-pcntl --enable-shmop --enable-bcmath --enable-filter --enable-session --enable-sockets --enable-calendar --enable-mbstring --enable-simplexml --disable-fileinfo --with-bz2 --with-cdb --with-curl --with-pear --with-zlib --with-mhash --with-iconv --with-mysqli --with-openssl --with-pdo-mysql --with-mysql-sock --with-openssl-dir
##./configure --prefix=/usr/local/php --enable-fpm
(--prefix=/home/php #这里是指定安装目录
--enable-fpm #这里是PHPFastCGI管理器,为了后面Nginx能解析PHP)
5、编译&&安装
make && make install
6、配置并启动
cd /usr/local/php/ #先进入安装目录
cp ./etc/php-fpm.conf.default ./etc/php-fpm.conf #配置文件
vim /usr/local/php/etc/php-fpm.conf
将;pid = run/php-fpm.pid 前面的;分号删掉
#配置文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
#./sbin/php-fpm #启动
#ps -ef|grep php-fpm #查看启动状态
7、配置启动服务
//拷贝php-fpm脚本至/etc/init.d目录
cp /usr/local/php-7.4.22/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
//设置权限并启动php-fpm:
chmod 755 /etc/init.d/php-fpm
/etc/init.d/php-fpm start
// php-fpm以服务的方式启动、停止和重启:
service php-fpm start
service php-fpm stop
service php-fpm reload
设置php-fpm开机自启:
1 vim /usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php-fpm - FastCGI process manager
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStartPre=/usr/local/php/sbin/php-fpm -t -c /usr/local/php/php.ini
ExecStart=/usr/local/php/sbin/php-fpm -c /usr/local/php/php.ini
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2 systemctl enable php-fpm
#############################
8、使用Nginx解析PHP
进入到nginx安装目录 cd /usr/local/nginx/
修改配置文件 vim ./conf/nginx.conf
server {
listen 8088;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.php index.html index.htm;
}
修改路径
把scripts改为 document_root
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
(1)增加index.php
在 /usr/local/php/html路径下增加index.php 文件进行测试
index.php内容如下
<?php echo phpinfo(); ?>
2、测试与mysql数据库连接
<?php
header("content-type:text/html;charset=utf-8");
$servername = "192.168.0.188";
$username = "root";
$password = "123456";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
###############################可能遇到的问题解决方案#########################
1、关闭了selinux之后,reboot虚拟机,在开机页面报错“fail to load selinux policy”。解决方法就是在开机选择centos内核那一步的时候
,在选项上按“E”按键
。进入编辑界面,在“UTF-8”位置的最后输入“selinux=0”,然后ctrl+x重启。之后键入命令,
#删除selinux
yum remove selinux-policy
#安装selinux
yum install selinux-policy