超简单易懂的LNMP架构

    科技2024-03-18  87

    LNMP架构安装

    1. Nginx的安装与配置1.1 Nginx的工作原理1.2 Nginx的配置 2. Mysql的安装与配置3.0 PHP的安装和配置

    1. Nginx的安装与配置

    1.1 Nginx的工作原理

    Nginx 由内核和模块组成。

    Nginx 本身做的工作实际很少,当它接到一个 HTTP 请求时, 它仅仅是通过查找配置文件将此次请求映射到一个 location block,而此 location 中所配 置的各个指令则会启动不同的模块去完成工作,因此模块可以看做 Nginx 真正的劳动工作者。

    Nginx 的模块从结构上分为核心模块、基础模块和第三方模块:

    核心模块:HTTP 模块、EVENT 模块和 MAIL 模块;

    基础模块:HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块;

    第三方模块:HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key 模 块。

    1.2 Nginx的配置

    上传nginx-1.15.9.tar.gz 到opt目录下

    yum -y install gcc gcc-c++ make pcre-devel zlib-devel ###预先安装好需要的环境 useradd -M -s /sbin/nologin nginx cd /opt tar zxvf nginx-1.15.9.tar.gz cd nginx-1.15.9/ ./configure --prefix=/usr/local/nginx ##指定位置 --user=nginx ###用户 --group=nginx ##组用户 --with-http_stub_status_module make -j3 make install ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ls -l /usr/local/sbin/nginx nginx netstat -anpt |grep nginx ###如果找不到netstat vim /lib/systemd/system/nginx.service ##添加Nginx系统服务 [Unit]Description=nginx ### 描述用的什么网页服务 After=network.target ### 描述服务类型 [Service]Type=forking ### 后台运行形式 PIDFile=/usr/local/nginx/logs/nginx.pid ###PID文件位置 ExecStart= /usr/local/nginx/sbin/nginx ##启动服务 ExecrReload= /usr/bin/kill -s HUP $MAINPID ###根据PID重载配置 ExecrStop= /usr/bin/kill -s QUIT $MAINPID ###根据PID终止进程 PrivateTmp=ture [Install] WantedBy=multi-user.target chmod 754 /lib/systemd/system/nginx.service systemctl start nginx.service systemctl enable nginx.service

    2. Mysql的安装与配置

    #########安装mysql######

    yum -y install \ ncurses \ ###字符终端函数库 ncurses-devel \ bison \ ##解析器 cmake useradd -s /sbin/nologin mysql

    编译安装 ###上传mysql-boost-5.7.20.tar.gz到opt目录下###

    cd /opt tar xzvf mysql-boost-5.7.20.tar.gz cd /opt/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_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 \ ##c++库 -DWITH_SYSTEMD=1 ###自己的id号 make && make install chown -R mysql:mysql /usr/local/mysql/ ####配置选项含义### 1、DCMAKE_INSTALL_PREFIX:指定将 mysql 数据库程序安装到某目录下,如目录/usr/local/ mysql。 2、DSYSCONFDIR:指定初始化参数文件目录 3、DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。 4、DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci是适用于 UTF-8 字符集的通用规则。 5、DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。

    #####建立调整配置文件########

    vi /etc/my.cnf [client] port = 3306 default-character-set=utf8 socket = /usr/local/mysql/mysql.sock [mysql] port = 3306 default-character-set=utf8 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.sockserver-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

    chown mysql:mysql /etc/my.cnf

    #######设置环境变量####

    echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile echo 'export PATH' >> /etc/profile source /etc/profile cd /usr/local/mysql/ bin/mysqld \ ###初始化数据库 --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ systemctl enable mysqld systemctl start mysqld systemctl status mysqld netstat -anpt | grep 3306

    mysqladmin -u root -p password 回车第一个直接回车,到第二个new passwd 输入密码,回车,再次确认密码//刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

    mysql -u root -p ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123

    3.0 PHP的安装和配置

    ####################安装PHP环境#####

    yum -y install \ libjpeg \ libjpeg-devel \ libpng libpng-devel \ freetype freetype-devel \ ###字体样式 libxml2 \ libxml2-devel \ zlib zlib-devel \ curl curl-devel \ ###定位远程资源openssl openssl-devel

    编译安装

    cd /opt tar xjvf php-7.1.10.tar.bz2 cd 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 \ ###开启ftp服务 --enable-pdo \ ###连接数据库的驱动 --enable-tokenizer \ ###身份认证令牌 --enable-zip ##压缩 make && make install cp php.ini-development /usr/local/php/lib/php.ini vi /usr/local/php/lib/php.ini mysqli.default_socket = /usr/local/mysql/mysql.sock date.timezone = Asia/Shanghai

    配置及优化FPM模块

    cd /usr/local/php/etc/ cp php-fpm.conf.default php-fpm.conf cd /usr/local/php/etc/php-fpm.d/ cp www.conf.default www.conf cd /usr/local/php/etc/ vi php-fpm.conf ;pid = run/php-fpm.pid 搜到这一段 ;user = nginx 自己手打的 ;group = nginx 自己手打 /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php-ini netstat -anpt |grep 9000 ln -s /usr/local/php/bin/* /usr/local/bin/ ps aux |grep -c "php-fpm"

    编辑测试页

    vi /usr/local/nginx/html/index.php <?php phpinfo(); ?> systemctl restart nginx.service

    在浏览器上面测试一下

    Processed: 0.018, SQL: 8