栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

LNMP架构的源码编译以及yum安装

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LNMP架构的源码编译以及yum安装

目录

一、LNMP架构的编译安装

1. 安装nginx服务

2. 安装mysql服务

3. 安装配置php解析环境

4.部署Discuz!社区论坛web应用

二、LNMP架构的yum安装

1. 安装nginx

2. 安装mysql 5.7(mariadb)

3. 安装php7.2

4. 配置nginx支持php解析

5. 准备网页并测试

 6. 测试mysql

 总结


一、LNMP架构的编译安装

1. 安装nginx服务

(1)关闭防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled

(2)安装依赖包

[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make

(3)创建运行用户

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

(4)编译安装

[root@localhost ~]# cd /opt
[root@localhost opt]# tar zxvf nginx-1.12.0.tar.gz -C /opt
[root@localhost opt]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure 
> --prefix=/usr/local/nginx 
> --user=nginx 
> --group=nginx 
> --with-http_stub_status_module
[root@localhost nginx-1.12.0]# make -j 2 && make install

(5)优化路径

[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

(6)添加nginx系统服务

[root@localhost nginx-1.12.0]# vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[root@localhost nginx-1.12.0]# chmod 754 /lib/systemd/system/nginx.service
[root@localhost nginx-1.12.0]# systemctl start nginx.service
[root@localhost nginx-1.12.0]# systemctl enable nginx.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

2. 安装mysql服务

(1)安装mysql环境依赖包

[root@localhost nginx-1.12.0]# yum -y install 
> ncurses 
> ncurses-devel 
> bison 
> cmake

(2)创建运行用户

[root@localhost nginx-1.12.0]# useradd -M -s /sbin/nologin mysql

(3)编译安装

[root@localhost nginx-1.12.0]# cd /opt
[root@localhost opt]# tar zxvf mysql-boost-5.7.20.tar.gz
[root@localhost opt]# cd /opt/mysql-5.7.20/
[root@localhost mysql-5.7.20]# cmake 
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock 
> -DSYSConFDIR=/etc 
> -DSYSTEMD_PID_DIR=/usr/local/mysql 
> -DDEFAULT_CHARSET=utf8  
> -DDEFAULT_COLLATION=utf8_general_ci 
> -DWITH_EXTRA_CHARSETS=all 
> -DWITH_INNObase_STORAGE_ENGINE=1 
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 
> -DMYSQL_DATADIR=/usr/local/mysql/data 
> -DWITH_BOOST=boost 
> -DWITH_SYSTEMD=1
[root@localhost mysql-5.7.20]# make -j 2 && make install

(4)修改mysql配置文件

[root@localhost mysql-5.7.20]# vim /etc/my.cnf
#删除全部内容后编辑
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

(5)更改mysql安装目录和配置文件的属主数组

[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost mysql-5.7.20]# chown mysql:mysql /etc/my.cnf

(6)设置路径环境变量

[root@localhost mysql-5.7.20]# echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# source /etc/profile

(7)初始化数据库

[root@localhost mysql-5.7.20]# cd /usr/local/mysql/bin/
[root@localhost bin]# ./mysqld 
> --initialize-insecure 
> --user=mysql 
> --basedir=/usr/local/mysql 
> --datadir=/usr/local/mysql/data

(8)添加mysqld系统服务

[root@localhost bin]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost bin]# systemctl daemon-reload
[root@localhost bin]# systemctl start mysqld.service
[root@localhost bin]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.

(9)修改mysql的登录密码

[root@localhost bin]# mysqladmin -u root -p password "abc123"
Enter password: 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

(10)授权远程登录

[root@localhost bin]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

3. 安装配置php解析环境

(1)安装环境依赖包

[root@localhost bin]# yum -y install gd 
> libjpeg libjpeg-devel 
> libpng libpng-devel 
> freetype freetype-devel 
> libxml2 libxml2-devel 
> zlib zlib-devel 
> curl curl-devel 
> openssl openssl-devel

(2)编译安装

[root@localhost bin]# cd /opt
[root@localhost opt]# tar jxvf php-7.1.10.tar.bz2
[root@localhost opt]# cd php-7.1.10
[root@localhost php-7.1.10]# ./configure 
> --prefix=/usr/local/php 
> --with-mysql-sock=/usr/local/mysql/mysql.sock 
> --with-mysqli 
> --with-zlib 
> --with-curl 
> --with-gd 
> --with-jpeg-dir 
> --with-png-dir 
> --with-freetype-dir 
> --with-openssl 
> --enable-fpm 
> --enable-mbstring 
> --enable-xml 
> --enable-session 
> --enable-ftp 
> --enable-pdo 
> --enable-tokenizer 
> --enable-zip
[root@localhost php-7.1.10]# make -j 2 && make install

(3)路径优化

[root@localhost php-7.1.10]# ln -s /usr/local/php/bin/* /usr/local/bin/
[root@localhost php-7.1.10]# ln -s /usr/local/php/sbin/* /usr/local/sbin/

(4)调整php配置文件

php有三个配置文件,分别是:
主配置文件php.ini
进程服务配置文件php-fpm.conf
扩展配置文件www.conf

 调整主配置文件

[root@localhost php-7.1.10]# cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini
#在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件
[root@localhost php-7.1.10]# vim /usr/local/php/lib/php.ini

#1170行,修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
#939行,取消注释,修改
date.timezone = Asia/Shanghai

[root@localhost php-7.1.10]# php -m   #验证安装的模块
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
gd
hash
iconv
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]

调整进程服务配置文件

[root@localhost php-7.1.10]# cd /usr/local/php/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# vim php-fpm.conf

#17行,删除注释符号“;”
pid = run/php-fpm.pid

调整扩展配置文件

[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf

(5)启动php-fpm

PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
[root@localhost php-fpm.d]# netstat -anpt | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      33883/php-fpm: mast 
[root@localhost php-fpm.d]# cd /opt/php-7.1.10/sapi/fpm
[root@localhost fpm]# cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
[root@localhost fpm]# systemctl restart php-fpm.service

(6)配置nginx支持php解析

[root@localhost fpm]# vim /usr/local/nginx/conf/nginx.conf

#65行-71行,取消注释,修改第69行,将/scripts 修改为nginx的工作目录
        location ~ .php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  script_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

[root@localhost fpm]# systemctl restart nginx.service

(7)验证php测试页

[root@localhost fpm]# vim /usr/local/nginx/html/index.php


 (8)验证数据库工作是否正常

[root@localhost fpm]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 6
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> CREATE DATAbase bbs;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)

mysql> quit
Bye
[root@localhost fpm]# vim /usr/local/nginx/html/index.php


 

4.部署Discuz!社区论坛web应用

(1)解压论坛软件

[root@localhost fpm]# cd /opt
[root@localhost opt]# unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis

(2)新建web目录

[root@localhost opt]# cd /opt/dis/dir_SC_UTF8/
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/

(3)调整论坛目录的权限

[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/
[root@localhost bbs]# chmod -R 777 ./{config,data,uc_server,uc_client}

(4)安装bbs

 

 

(5)访问

用户访问页面:http://IP地址/bbs/index.php


管理访问页面:http://IP地址/bbs/admin.php

二、LNMP架构的yum安装

1. 安装nginx
[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

[root@localhost yum.repos.d]# yum install -y nginx
[root@localhost yum.repos.d]# nginx -v
nginx version: nginx/1.20.1
[root@localhost yum.repos.d]# systemctl start nginx
[root@localhost yum.repos.d]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

2. 安装mysql 5.7(mariadb)
[root@localhost yum.repos.d]# yum remove mariadb*

[root@localhost yum.repos.d]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
[root@localhost yum.repos.d]# yum -y install mysql57-community-release-el7-10.noarch.rpm
[root@localhost yum.repos.d]# yum -y install mysql-community-server
[root@localhost yum.repos.d]# systemctl start mysqld.service
[root@localhost yum.repos.d]# systemctl enable mysqld.service
[root@localhost yum.repos.d]# grep "password" /var/log/mysqld.log
#在日志文件中找出root用户的初始密码
2021-08-12T12:46:18.886611Z 1 [Note] A temporary password is generated for root@localhost: RGYWjmMOK3#Y
#初始密码为RGYWjmMOK3#Y
[root@localhost yum.repos.d]# mysql -u root -p
#登录mysql
Enter password: 
#输入密码RGYWjmMOK3#Y
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.35

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';
#密码设置要求有大小写字母、数字和符号组合
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to root@"%" identified by "Admin@123" with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@localhost yum.repos.d]# yum -y remove mysql57-community-release-el7-10.noarch
#为了防止每次yum操作都会自动更新,卸载这个软件

3. 安装php7.2
[root@localhost yum.repos.d]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
[root@localhost yum.repos.d]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@localhost yum.repos.d]# yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-redis
[root@localhost yum.repos.d]# systemctl start php-fpm
[root@localhost yum.repos.d]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[root@localhost yum.repos.d]# php -v
PHP 7.2.34 (cli) (built: Oct  1 2020 13:37:37) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.34, Copyright (c) 1999-2018, by Zend Technologies

4. 配置nginx支持php解析
[root@localhost yum.repos.d]# cd /etc/nginx/conf.d
[root@localhost conf.d]# vim default.conf
#删除29-35行注释符号#,将33行的/scripts修改为nginx的工作目录
    location ~ .php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  script_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }

[root@localhost conf.d]# systemctl restart nginx.service

5. 准备网页并测试
[root@localhost html]# vim index.php


 6. 测试mysql
[root@localhost html]# vim /usr/share/nginx/html/index.php


 总结

干货满满,建议收藏

码字不易,给个赞吧

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号