lnmp一键部署脚本

本文详细介绍了如何编写LNMP(Linux, Nginx, MySQL, PHP)的一键部署脚本,包括创建基础环境、解决服务冲突和依赖关系,以及逐个部署Mysql、Nginx和PHP的过程。脚本旨在确保在各种环境下执行完毕即可完成环境部署。" 132486503,19694580,使用Boost库创建和访问共享内存,"['C/C++', 'Boost库', '进程通信']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LNMP一键部署脚本

LNMP代表的是:linux系统下 nginx+mysql+php 网站服务器架构

一键部署的意思是,执行脚本,解决所有依赖关系,没有报错。脚本执行完成,环境部署完成

所以在做一键部署脚本的时候需要考虑到基础环境和环境搭建两个方面

  • 首先需要创建基础环境 创建基础环境比环境搭建重要 如果基础环境都没创建好 环境部署方面搭建的再好无法运行也没有用

不同的服务部署脚本需要创建的基础环境也不同 竟然咱们是lnmp脚本就需要考虑nginx mysql php三个服务 想要运行你脚本的机器如果安装过这些服务怎么办 如何解决冲突问题和依赖关系 能在各种情况下做到脚本执行完成,环境部署完成.

 

  • 环境搭建

1.Mysql

首先将mysql安装包解压到/usr/local/src/目录中

tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz -C /usr/local/src/

挪动位置 方便之后调用

mv /usr/local/src/mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql

cd /usr/local/mysql/

创建mysql用户 并检查该用户是否存在 若存在则删除并重新建立 创建datadir即/data/mysql 后续的数据库文件会放到此目录

useradd -s /sbin/nologin  mysql

if [ $? -eq 0 ];then

   rm -rf /data/mysql

   mkdir -p /data/mysql

   chown -R mysql:mysql /data/mysql/

else

   userdel -r mysql

   rm -rf /sbin/nologin

   useradd -s /sbin/nologin  mysql

   rm -rf /data/mysql

   mkdir -p /data/mysql

   chown -R mysql:mysql /data/mysql/

fi

下载需要的软件包

yum install perl-Data-Dumper.x86_64 perl-XML-Dumper.noarch net-tools -y

--user=mysql : 定义数据库以mysql用户运行

--datadir=/data/mysql/ : 定义数据库的安装目录为/data/mysql/

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/

复制mysql安装包里配置文件至/etc/my.cnf

cp support-files/my-default.cnf /etc/my.cnf

复制mysql安装包里启动脚本文件并修改其权限

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

修改启动脚本

sed -i '47c datadir=/data/mysql' /etc/init.d/mysqld

将mysqld服务加入到系统服务列表中并设置开机自启

chkconfig --add mysqld

chkconfig  mysqld on

启动服务 查看是否启动成功(3306端口)

service mysqld start

netstat -ntpl

 

2.Nginx

将nginx压缩包解压到/usr/local/src/目录中

tar -zxvf nginx-1.12.2.tar.gz -C /usr/local/src/

下载nginx编译安装需要的软件包

yum install net-tools gcc gcc-c++ openssl-devel zlib-devel zlib pcre-devel -y

进入nginx解压后的目录,编译安装PHP服务

cd /usr/local/src/nginx-1.12.2

./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx

make && make install

创建软链接斌启动nginx服务 查看nginx是否启动(80端口)

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx -t

nginx

netstat -ntpl

 

3.php

将libmcrpt和php解压到/usr/local/src/目录下

tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/local/src/

tar -zxvf php-5.6.27.tar.gz -C /usr/local/src/

下载需要的安装包

yum -y install net-tools gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-devel

进入libmcryp解压后目录,编译安装该服务

cd /usr/local/src/libmcrypt-2.5.8

./configure --prefix=/usr/local/libmcrypt && make && make install

进入php解压后的目录,编译安装PHP服务

cd /usr/local/src/php-5.6.27

./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts

make && make install

压缩包中提供了PHP环境需要用到的模板文件,需要对文件进行改名后才能使用,复制文件并改名

cp php.ini-production /etc/php.ini

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

赋予文件执行权限

chmod +x /etc/init.d/php-fpm

添加PHP服务到启动列表,并设置开机启动

chkconfig --add php-fpm

chkconfig php-fpm on

修改PHP的主配置文件php-fpm.conf

cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

sed -i '149c  user = nginx' /usr/local/php5.6/etc/php-fpm.conf

sed -i '150c  group = nginx' /usr/local/php5.6/etc/php-fpm.conf

启动php服务并查看服务是否启动成功(9000端口)

service php-fpm start

netstat -ntpl

 

 

#目录位置

Nginx:/usr/local/nginx/

MySQL:/usr/local/mysql/

PHP:/usr/local/php5.6

 

#配置文件:

Nginx主配置文件:/usr/local/nginx/conf/nginx.conf

MySQL配置文件:/etc/my.cnf

PHP的主配置文件:/usr/local/php5.6/etc/php-fpm.conf

 

状态管理

Nginx状态管理:/usr/local/nginx/sbin/nginx (-t 启动  -s reload 重启 -s stop 关闭)

MySQL状态管理:/etc/init.d/mysqld (start 启动 stop 关闭)

PHP状态管理:/etc/init.d/php-fpm (start 启动 stop 关闭)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值