运维实战 LNMP框架安装

架构简介

LAMP=Linux+Apache+Mysql+PHP
LNMP=Linux+Nginx+Mysql+PHP

LAMP是一个多C/S架构的平台,虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,慢慢的被组合成为了一种解决方案.

实际上其中的每一个部分还可以根据业务或者操作系统需求进行调换,如Linux也可以改成Windows,Apache改为Nginx就变成了LNMP架构等等,这里采用了Nginx因此简称也就改成了LNMP.

项目所需打包文件

前期准备

MySQL的安装

这里使用的是社区版本mysql-boost-5.7.31,原因只是因为5.7在生产环境中用的更多而已.

与之前的类似不过这里解压后会发现没有configure,因为MySQL使用的是cmake而不是make.

##安装cmake
yum install -y cmake

##如果过程中出错则安装缺失的依赖包
##重新执行编译前请清楚cmake产生的缓存文件避免从停止处开始导致出现错误
yum install -y ncurses-devel.x86_64 
yum install -y gcc-c++
yum install -y bison
rm -fr CMakeCache.txt

##编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=/mnt/mysql-5.7.31/boost/boost_1_59_0

##参数解释
DCMAKE_INSTALL_PREFIX						安装路径
DMYSQL_DATADIR								数据库存放目录
DMYSQL_UNIX_ADDR							Unix Socket文件路径
DWITH_INNOBASE_STORAGE_ENGINE				加载的数据库引擎
DDEFAULT_CHARSET							受用UTF-8字符
DDEFAULT_COLLATION							检验UTF-8字符
DEXTRA_CHARSETS								安装字符集选项(选择所有)
DWITH_BOOST									指定Boost扩展源码路径

##安装
make && make install

##需要注意的文件
/usr/local/mysql/support-files/mysql.server		启动脚本
/etc/my.cnf										全局配置文件

MySQL的初始化

##复制启动脚本到init.d并为以后的使用做准备
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
mv /etc/init.d/mysql.server /etc/init.d/mysqld

##创建供MySQL使用的系统用户mysql,指定加目录并设定免登录
useradd -M -d /usr/local/mysql/ -s /sbin/nologin mysql

##修改my.cnf,正确设置其中的数据目录和socket位置
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
symbolic-links=0

##初始化数据目录并指定私有用户
##因为使用的命令位于/usr/local/mysql/bin中,为了便于以后使用我们修改.bash_profile中的系统变量并使之生效
##初始化时会生成随机密码,记录下来下文会使用
vim ~/.bash_profile 
source ~/.bash_profile
mysqld --initialize --user=mysql

##启动MySQL,为了进行安全初始化
/etc/init.d/mysqld start
mysql_secure_installation

##初始化结束后,就可以正常使用了
mysql -pwestos

PHP的安装

目前生产环境PHP主流依然是用7,因此这里也用7作为实验版本.

##安装bzip2并解压源码包
yum install -y bzip2
tar jxf php-7.4.12.tar.bz2 

##编译安装
cd php-7.4.12/
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx  --with-curl --with-iconv --with-mhash --with-zlib --with-openssl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-debug --enable-sockets --enable-soap --enable-inline-optimization --enable-xml --enable-ftp --enable-gd --enable-exif --enable-mbstring  --enable-bcmath --with-fpm-systemd

make
make install

##如果缺少依赖则进行安装
yum install systemd-libs.x86_64 -y
yum install libxml2-devel.x86_64 -y
yum install sqlite-devel.x86_64 -y
yum install libcurl-devel.x86_64 -y
yum install libpng-devel.x86_64 -y

##缺少oniguruma-devel-6.8.2-1.el7.x86_64但是官方源并不包含
##从网络独立下载符合需求的版本后安装
yum install -y oniguruma-*

参数的含义

--prefix						安装路径

--with-config-file-path			主配置文件目录

--enable-fpm					激活FPM的管理器

--with-fpm-user=nginx			以nginx身份运行,如果不设置则默认用户为Apache

--with-curl						启用curl模块

--with-iconv					启用iconv

--with-mhash 					启用M哈希加密

--enable-mysqlnd 				启用mysqlnd驱动

--with-mysqli 					启用mysqli驱动

--disable-debug 				关闭debug

--enable-soap 					启用soap动态模块

--enable-inline-optimization	性能优化

--with-fpm-systemd 				生成systemd的启动脚本
##添加/usr/local/lnmp/php/sbin进环境变量并激活
vim ~/.bash_profile 
source ~/.bash_profile

##使用模板编写配置文件
cp /usr/local/lnmp/php/etc/php-fpm.conf.default /usr/local/lnmp/php/etc/php-fpm.conf
cp /usr/local/lnmp/php/etc/php-fpm.d/www.conf.default /usr/local/lnmp/php/etc/php-fpm.d/www.conf
vim php-fpm.conf
vim www.conf

##从源码包复制主配置文件模板并修改
cp /mnt/php-7.4.12/php.ini-production /usr/local/lnmp/php/etc/php.ini

##从源码包复制init.d需要的启动脚本
##从源码包复制systemd需要的service文件
cp /mnt/php-7.4.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm 
cp /mnt/php-7.4.12/sapi/fpm/php-fpm.service /usr/lib/systemd/system

##启动方式
1)
/etc/init.d/php-fpm start
/etc/init.d/php-fpm stop
2)
systemctl daemon-reload 
systemctl start php-fpm.service 

如果直接使用systemctl start php-fpm.service会发现执行出错,原因是系统启用了保护,编辑php-fpm.service即可

vim php-fpm.service 

##注释掉ProtectSystem
;ProtectSystem=full

systemctl daemon-reload 
systemctl start php-fpm.service 

修改php.ini

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值