企业LNMP单点部署(源码编译安装)

一、企业LNMP单点部署

LNMP是“Linux+Nginx+MySQL+PHP”的简称

服务器IP部署的应用
web服务器192.168.204.130Nginx+php-fpm+mysql-boost

部署LNMP

Nginx版本:nginx-1.14.2

PHP版本:php-7.2.12

MySQL版本:mysql-boost-5.7.31

将所有需要的软件包上传到/opt目录

所有解压操作都在/opt目录下进行

​关闭防火墙,关闭selinux

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config

1.源码编译安装nginx

1.1创建运行worker进程的用户

useradd -M -s /sbin/nologin www

1.2解压源码包并进入解压后生成的目录

tar xf nginx-1.14.2.tar.gz
cd nginx-1.14.2

1.3安装环境依赖包

yum -y install gcc gcc-c++ make pcre-devel zlib-devel openssl

1.4编写配置脚本

vim mynginx.sh

./configure \
--prefix=/usr/local/nginx \		
--user=www --group=www \ 		
--with-http_ssl_module \		
--with-http_stub_status_module \	
--with-http_rewrite_module \	
--with-http_realip_module \		
--with-http_gzip_static_module	

:wq		#按ESC返回命令模式,输入':'进入编辑模式,输入'wq'保存退出
选项说明
–prefix=/usr/local/nginx指定安装路径
–user=www --group=www指定运行worker进程用户和组
–with-http_ssl_module使用https协议进行通信,对通信的流量进行加密
–with-http_stub_status_module启用该模块以支持状态统计
–with-http_rewrite_module基于正则匹配实现重定向
–with-http_realip_module获取调度器转发的请求报文首部中真实客户端的IP
–with-http_gzip_static_module对HTTP包的内容做gzip预压缩

1.5为脚本赋予执行权限并执行

chmod +x mynginx.sh
./mynginx.sh

1.6编译&&安装

make -j2 && make install	#'-j2' 选项可以提升编译速度

1.7将nginx添加到环境变量

echo 'export PATH=/usr/local/nginx/sbin:$PATH' >> /etc/profile
source /etc/profile

1.8配置nginx做为系统服务

vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx web service
Documentation=http://nginx.org/en/docs/
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=default.target

:wq

1.9添加到开机启动项

systemctl enable nginx

2.源码编译安装MySQL

2.1删除系统自带的数据库

rpm -qa | grep mari*
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

2.2创建MySQL运行用户

useradd -M -s /sbin/nologin mysql

2.3解压源码包并进入解压后生成的目录

tar xf mysql-boost-5.7.31.tar.gz
cd mysql-boost-5.7.31

2.4安装环境依赖包

yum -y install \
cmake \
gcc gcc-c++ \
ncurses ncurses-devel \
libarchive \
libtirpc libtirpc-devel \
libaio-devel \
openssl openssl-devel
选项说明
cmakemysql需要cmake编译
gcc gcc-c++C语言编译器和C++编译器
ncurses ncurses-devel字符终端下有图形互动功能的动态库和开发工具
libarchive
libtirpc libtirpc-devel
libaio-devel
openssl openssl-devel

2.5编写配置文件

vim myconfig.sh

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SSL=system \
-DWITH_BOOST=boost

:wq
选项说明
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql指定MySQL安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data指定数据库文件存储路径
-DMYSQL_TCP_PORT=3306指定默认端口
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock指定套接字文件存储路径,数据库连接的文件
-DWITH_INNOBASE_STORAGE_ENGINE=1安装INNOBASE存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1安装PARTITION存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1安装FEDERATED存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1安装BLACKHOLE存储引擎
-DWITH_MYISAM_STORAGE_ENGINE=1安装MYISAM存储引擎
-DENABLED_LOCAL_INFILE=1启动LOCAL_INFILE
-DEXTRA_CHARSETS=all指定支持其他的字符集编码
-DDEFAULT_CHARSET=utf8mb4指定默认使用的字符集编码
-DDEFAULT_COLLATION=utf8mb4_general_ci指定默认的字符集校对规则
-DWITH_SSL=system使用系统上的自带的SSL库
-DWITH_BOOST=boost指定boost路径,由于这次安装的版本自带boost,所以只需填上名称即可

2.6为脚本赋予执行权限并执行

chmod +x myconfig.sh
./myconfig

2.7编译&&安装

make -j2 && make install

MySQL编译时间较长,根据主机性能,一般在15~30分钟左右。进度条不动的时候,可以新建一条远程连接,使用top命令查看编译进程是否仍在运行。

2.8修改安装目录属主、属组

chown -R mysql.mysql /usr/local/mysql

2.9初始化数据库

cd /usr/local/mysql
bin/mysqld --initalize --user=mysql --basedir=/usr/local/mysql datadir=/usr/local/mysql/data

初始化成功后,会生成一个初始密码

2.10添加到环境变量

echo 'PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

2.11添加到service服务管理&&设置开机自启

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql

2.12编写配置文件

vim /usr/local/mysql/my.cnf

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql
socket=/usr/local/mysql/mysql.sock

:wq

2.13启动数据库

service mysql start

2.14设置数据库管理员密码

/usr/local/mysql/bin/mysqladmin -uroot password '输入新密码' -p
Enter password:#输入初始密码(密码不会显示)

2.15登录数据库

mysql -uroot -p
Enter password:#输入设置的新密码

3.源码编译安装PHP

3.1安装环境依赖包

yum -y install \
gd \
libxml2 libxml2-devel \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
zlib zlib-devel \
curl-devel \
openssl-devel

3.2解压源码包并进入解压后生成的目录

tar xf php-7.2.12.tar.gz
cd php-7.2.12

3.3编写配置脚本

vim myphp.sh

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www --with-fpm-group=www \
--with-MySQL=/usr/local/mysql \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip 

:wq
选项说明
–prefix=/usr/local/php指定php安装路径
–with-config-file-path=/usr/local/php/etc指定php.ini文件的位置
–enable-fpm启用ftp模块,cgi方式安装
–with-fpm-user=www --with-fpm-group=www指定fpm运行用户和组
–with-MySQL=/usr/local/mysql指定mysql的安装位置,适用于集成环境,如果数据分离,则无需表明路径,启用mysql即可
–with-mysql-sock=/usr/local/mysql/mysql.sock指定mysql sock文件位置
–with-mysqli=/usr/local/mysql/bin/mysql_configmysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务, 而且还可以使访问数据库工作变得更加稳定
–with-zlib启用zlib库支持
–with-curl启用curl浏览工具支持
–with-gd启用gd库支持
–with-jpeg-dir启用jpeg图片支持
–with-png-dir启用png图片支持
–with-freetype-dir启用freetype字体库支持
–with-openssl启用openss
–enable-mbstring启用多字节、字符串支持
–enable-xml启用xml支持
–enable-session启用session会话选项,使用非常广泛
–enable-ftp启用ftp支持
–enable-zip启用zip压缩支持

php还有很多模块,比如memcache,redis,zend等等。php5以上版本开启了灵活的安装方式,有些模块你现在不安装也没关系,需要的时候再安装也可以,基本上无需重新编译就可以安装扩展模块

3.4为脚本赋予执行权限并执行

chmod +x myphp.sh
./myphp.sh

3.5编译&&安装

make -j2 && make install

3.6复制模板文件作为php的配置文件

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.defult /usr/local/php/etc/php-fpm.d/www.conf
cp /opt/php-7.2.12/php.ini-development /usr/lcoal/php/etc/php.ini

3.7添加到service服务管理&&设置为开机自启

cp /opt/php-7.2.12/php/sapi/fpm/init.d/php-fpm /etc/init.d/php-fpm
chkconfig --add php-fpm

3.8添加到环境变量

echo 'PATH=$PATH:/usr/local/php/bin' >> /etc/profile
source /etc/profile

4.Nginx+php-fpm配置

4.1修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

#在server段添加如下配置
root html;

#找到 'location /' 段,修改为如下
location / {
    #root html;
    index index.html index.htm;
}

#找到 'location ~ \.php$' 段,修改为如下
location ~ \.php$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

:wq

4.2重载nginx

service nginx reload

4.3编写测试文件

vim /usr/local/nginx/html/index.php

<?php
	phpinfo();
?>

:wq

4.4启动php-fpm

service php-fpm start

4.5浏览器访问测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值