CentOS 8 编译安装 LNMP

  • 实验环境 CentOS 8.3.2011
  • 防火墙及 SElinux 均为关闭状态

  • 首先安装 nginx
  • 从官网上下载当前最新版本

  • 安装依赖包
  • yum -y install zlib zlib-devel pcre pcre-devel openssl openssl-devel gd gd-devel
  • 编译的时候如果提示 
  • ./configure: error: the HTTP rewrite module requires the PCRE library.

  • ./configure: error: SSL modules require the OpenSSL library.

  • 就是没有相应的依赖包导致的报错

  • 创建用户
  • useradd -s /sbin/nologin -M nginx

  • cd nginx-1.19.9/
  • ./configure --prefix=/usr/local/nginx1.19.9 --user=nginx --group=nginx \

    --with-http_ssl_module --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_realip_module --with-http_gzip_static_module \

    --with-pcre --conf-path=/etc/nginx/nginx.conf \

    --error-log-path=/var/log/nginx/error.log \

    --http-log-path=/var/log/nginx/access.log --with-debug \

    --with-http_image_filter_module

  • 确认没有报错接下来 make 安装
  • make && make install

  • 成功安装后可以查看到相关信息

  • 接下来设置环境变量
  • echo "export PATH=/usr/local/nginx-1.19.9/sbin:$PATH" > /etc/profile.d/NMP.sh
  • source /etc/profile.d/NMP.sh
  • exec bash
  • 编辑一下 nginx 的配置文件
  • vim /etc/nginx/nginx.conf

   server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html/;
        include /etc/nginx/default.d/*.conf;
        index index.php index.html;

        location ~ \.php$ {
        root /usr/share/nginx/html/;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include          fastcgi_params; 
        }

  • 生成service文件:
    vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx-The High-performance HTTP Server
After=network.target

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

[Install]
WantedBy=multi-user.target

  • 重新加载服务文件后启动 nginx

  • 设置开机启动

  • 重启服务器验证是否开机启动


  • 接下来编译安装 mariaDB
  • 首先从官网上下载目前最新版本

  • wget https://mirrors.ustc.edu.cn/mariadb//mariadb-10.5.9/source/mariadb-10.5.9.tar.gz
  • tar xf mariadb-10.5.9.tar.gz

  • 编译安装之前的准备工作
    首先创建用户
    useradd -M -s /sbin/nologin mysql
  • 创建目录
  • mkdir /usr/local/mysql && mkdir -p /data/mysql
  • chown -R mysql.mysql /usr/local/mysql && chown -R mysql.mysql /data/mysql
  • 安装编译安装的包组及准备相关文件

  • yum -y install bison zlib zlib-devel pcre pcre-devel libcurl libcurl-devel libarchive boost boost-devel gcc gcc-c++ cmake ncurses ncurses-devel gnutls gnutls-devel libxml2 libxml2-devel openssl openssl-devel libevent libevent-devel libaio libaio-devel ncurses ncurses-devel jemalloc jemalloc-devel centos-release ncurses-compat-libs 
  • 一定要确保成功安装依赖包,不然后面会报错,需要用得到的 yum 源

  • 使用 cmake 编译
  • cmake . \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/data/mysql/ \
    -DSYSCONFDIR=/etc/ \
    -DMYSQL_USER=mysql \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
    -DWITH_DEBUG=0 \
    -DWITH_READLINE=1 \
    -DWITH_SSL=system \
    -DWITH_ZLIB=system \
    -DWITH_LIBWRAP=0 \
    -DENABLED_LOCAL_INFILE=1 \
    -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \           [MySQL安装的根目录]
-DDEFAULT_CHARSET=utf8 \                            [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \               [设置默认字符校对]
-DENABLED_LOCAL_INFILE=1 \                          [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \                              [编译时允许自主下载相关文件]
-DEXTRA_CHARSETS=all \                              [使MySQL支持所有的扩展字符]
-DSYSCONFDIR=/etc \                                 [MySQL配置文件所在目录]
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \                   [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                   [MySQL的数据库引擎]
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \                 [MySQL的数据库引擎]
-DWITH_DEBUG=0 \                                    [禁用调试模式]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                    [MySQL的数据库引擎]
-DWITH_MYISAM_STORAGE_ENGINE=1 \                    [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                  [MySQL的数据库引擎]
-DWITH_PARTITION_STORAGE_ENGINE=1  \                [MySQL的数据库引擎]
-DWITH_READLINE=1 \                                 [MySQL的readline library]
-DWITH_SSL=system \                                 [通讯时支持ssl协议]
-DWITH_ZLIB=system \                                [允许使用zlib library]
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \                       [MySQL数据库文件存放目录]
-DMYSQL_USER=mysql \                                [MySQL用户名] 
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \       [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \                             [MySQL的监听端口]
-DMYSQL_MAINTAINER_MODE=0

  • 编译顺利完成后开始安装,如果有报错,确定上面需要的依赖包都成功安装!
  • rm -f ./CMakeCache.txt
  • make && make install

  • 设置环境变量
  • echo "export PATH=/usr/local/mysql/bin/:$PATH" > /etc/profile.d/NMP.sh
  • source /etc/profile.d/NMP.sh
  • 生成基本库
  • /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql --user=mysql

  • vim /etc/my.cnf
  • 编辑配置文件,添加或修改以下内容

[mysqld]

basedir=/usr/local/mysql/

datadir=/data/mysql/

port=3306

socket=/tmp/mysql.sock

pid-file=/data/mysql/192_168_2_31.pid   #计算机名.pid

[mysqld_safe]
log-error=/data/mysql/error.log

  • cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  • 设置开机启动
  • chkconfig --add mysqld
  • systemctl start mysqld

  • 重置 mysql  设置
  • /usr/local/mysql/bin/mysql_secure_installation   
  • mysql -uroot -p

  • 如果不想编译,可以从官网上下载编译好的文件包,相当于“绿色版”,但是注意还是要安装依赖包,不然运行会报错

  • yum -y install bison zlib zlib-devel pcre pcre-devel libcurl libcurl-devel libarchive boost boost-devel gcc gcc-c++ cmake ncurses ncurses-devel gnutls gnutls-devel libxml2 libxml2-devel openssl openssl-devel libevent libevent-devel libaio libaio-devel ncurses ncurses-devel jemalloc jemalloc-devel centos-release ncurses-compat-libs 

  • 注意包的大小和MD5

  • 解压缩到指定的文件夹,事先创建好用户、目录及赋予目录权限

  • tar xf mariadb-10.5.9-linux-systemd-x86_64.tar.gz -C /usr/local/mysql/
  • 查看解压缩后文件夹大小 
  • du -sh /usr/local/mysql/

  • 进入该目录,修改权限

  • 设置环境变量
  • echo "export PATH=/usr/local/mysql/bin/:$PATH" > /etc/profile.d/NMP.sh
  • source /etc/profile.d/NMP.sh
  • exec bash
  • 生成 mysql 基本库
  • /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql --user=mysql
  • chown -R mysql: /data/mysql
  • 编辑配置文件,vim /etc/my.cnf
  • [mysqld]
    basedir=/usr/local/mysql/
    datadir=/data/mysql/
    port=3306
    socket=/tmp/mysql.sock

    [mysqld_safe]
    log-error=/data/mysql/error.log

  • 启动 mysql
  • /etc/init.d/mysqld start
  • 重置 mysql 设置,这一步必须要在启动 mysql 服务后运行
  • /usr/local/mysql/bin/mysql_secure_installation   
  • 登陆数据库
  • mysql -uroot -p
  • 设置开机启动
  • chkconfig --add mysqld
  • systemctl is-enabled mysqld

  • 新建用户 ,测试 远程登陆
  • GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY '123456';

    flush privileges;


  • 下面开始安装 PHP,从官网上下载当前最新版

  • 安装必要的依赖包
  • yum -y install gcc automake autoconf libtool make libxml2 libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel sqlite-devel oniguruma-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel unzip zip libzip libzip-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl libcurl-devel ncurses openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel oniguruma oniguruma-devel sqlite-devel php-opcache
  • mkdir /etc/php8
  • ./configure \
    --prefix=/usr/local/php8 --exec-prefix=/usr/local/php8 --bindir=/usr/local/php8/bin --sbindir=/usr/local/php8/sbin \
    --includedir=/usr/local/php8/include --libdir=/usr/local/php8/lib/php --mandir=/usr/local/php8/php/man \
    --with-config-file-path=/etc/php8 --with-config-file-scan-dir=/etc/php8 \
    --with-mysql-sock=/tmp/mysql.sock --with-mysqli=shared,mysqlnd --with-mhash \
    --with-openssl --with-curl --with-ldap-sasl --with-xsl --enable-mysqlnd --with-freetype --enable-gd --with-kerberos --with-libdir=lib64 \
    --with-pdo-mysql --with-pdo-sqlite --with-iconv --with-zlib --with-zip -with-bz2 --enable-static --with-jpeg \
    --disable-debug --disable-rpath --enable-shared --with-pear --enable-pdo --enable-cli --enable-intl --enable-calendar \
    --with-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp \
    --enable-pcntl --enable-sockets --enable-soap --without-pear --with-gettext --enable-session \
    --enable-opcache --enable-fpm --without-gdbm --disable-fileinfo --with-fpm-user=www --with-fpm-group=www

  • make && make install

  • 测试php8安装是否成功:

  • 设置环境变量

echo "export PATH=/usr/local/php8/bin/:$PATH" > /etc/profile.d/NMP.sh

source /etc/profile.d/NMP.sh

exec bash

  • 生成php.ini配置文件:

  • 生成www.conf配置文件并编辑该配置文件内容

  • 生成php-fpm的配置文件

  • 生成php-fpm启动文件,并启动 php

  • 编辑 nginx 配置文件打开PHP支持

  • 最后重启验证

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值