Linux系统lnmp环境部署,保姆级安装教程

作为一名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


 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温柔-的-女汉子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值