LNMP的安装与配置

nginx-1.16.0安装及配置:

第一步:前往官网下载nignx源码包

下载完毕后上传至服务器(先安装lrzsz)

yum -y install lrzsz

安装完毕后执行:

rz

找到nginx包后点击确定,即可上传成功

第二步:

解压:

tar zxvf nginx-1.16.0.tar.gz

进入:

cd nginx-1.16.0/

创建用户、用户组:

groupadd nginx

useradd -g nginx nginx -s /sbin/nologin

第三步:编译安装

1、检查环境

./configure --prefix=/usr/local/nginx

报错1:提示无PCRE(此步骤忘记截图,下边的报错都有截图,记住关键字PCRE即可)

yum -y install pcre-devel pcre

安装完毕后再次执行以上命令检查环境,无报错

2、安装

make && make install

3、安装完毕后开启服务

cd /usr/local/nginx/sbin

./nginx     开启成功

4、查看80端口是否启用

netstat -tunlp | grep 80

80端口开启就说明成功

5、创建自启动脚本,以后每次开机就可自动启动nginx

cd /lib/systemd/system/

vim nginx.service

添加以下信息:

[Unit]

Description=nginx service

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

6、开启开机自启

systemctl enable nginx.service

重启nginx服务

systemctl restart nginx.service

执行:

systemctl list-unit-files | grep nginx

nginx服务变为enabled即为成功开启开机自启

7、以上并没有对nginx的配置文件进行修改配置,有何需求自己可上网查阅资料进行修改!

mysql8.0.16安装及配置:

第一步:前往mysql官网下载源码包https://dev.mysql.com/downloads/mysql/

最好下载带boost的,安装时不需要再去单独下载

第二步:创建mysql用户、组 及data目录

groupadd mysql

useradd -g mysql mysql -s /sbin/nologin

第三步:创建好用户后将源码包上传至虚拟机中(使用lrzsz,若没有yum安装即可)

解压:

tar zxvf mysql-boost-8.0.16.tar.gz

进入:

cd mysql-boost-8.0.16

安装一些所需环境:

yum install gcc gcc-c++ cmake ncurses-devel bison

开始cmake检查环境(开始了报错之旅,我只将我的报错列出)

注意:每报一次错,都要删除CMakeCache.txt文件,然后重新cmake

cmake -DMYSQL_USER=mysql -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DFORCE_INSOURCE_BUILD=1 -DWITH_BOOST=/root/mysql-8.0.16/boost

报错1:cmake版本过低,安装高版本,自己找源码包装一下,最好装跟自己系统匹配的版本,比如我的是3.10.0的内核,就找3.10.0的cmake

网址:https://cmake.org/files/v3.10/    选择这个就ok

下载完毕后,上传至服务器,将bin目录下的所有文件复制到/usr/bin下

然后cmake -version 查看版本,升级到cmake-3.10.0即可,然后重新cmake检查环境。

报错2:根据提示,参数中加入 DFORCE_INSOURCE_BUILD=1 即可,但是要rm -rf mysql-8.0.16/CMakeCache.txt,接下来的报错也一样,每报一次错,都要删除CMakeCache.txt文件,然后重新cmake

报错3:gcc版本太低,需要升级到高版本

yum install centos-release-scl

yum install devtoolset-6

scl enable devtoolset-6 bash  #临时修改至6版本

gcc -v  #查看版本

echo "source /opt/rh/devtoolset-6/enable" >>/etc/profile  #永久修改

报错4:缺少Git   yum -y install git

报错5:没有指定boost,下载boost后参数中指定路径即可。(boost是一个可移植、提供源代码的c++库,作为标准库的后备,是C++标准化进程的开发引擎之一。)

报错6:未安装openssl-devel报错,执行yum -y install openssl-devel

报错7:提示未指定这几个参数,无大碍,只要不是error就ok

环境终于检查没问题了,可以进行编译安装了。。。

make -j 4 && make install

估计要等好久。。我编译安装半小时。。

第四步:

1、安装成功

2、将mysql下所有目录及文件的所有者所属组改为mysql

chown -R mysql:mysql /usr/local/mysql/

3、复制启动文件:

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

加入系统服务:

chkconfig --add mysqld

开机自启:

chkconfig mysqld on

将/usr/local/mysql/bin加入到PATH目录中:

vim /etc/profile

添加如下几行

然后保存退出,执行ssource /etc/profile   使其生效

4、进入配置文件修改为下图所示(红框为修改后的内容)

vim /etc/my.cnf

其中log文件要自己先创建好,初始化不会自动生成,其他暂且不用

mkdir -p /var/log/mariadb/

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

5、进入启动文件(红框为修改后的内容)

vim /etc/init.d/mysqld

6、初始化mysql

cd /usr/local/mysql/bin/

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

此条执行成功后在倒数第三行左右会出现一个mysql的初始密码,记下它后边登录用(每个人的都不一样)

初始化成功后启动./mysqld_safe --user=mysql(注意此时目录及所有文件的用户及用户属组必须是mysql)

7、配置完毕后,开始启动

service mysqld start

ps:没错同志们,我没有报错,不知道你们有没有~

8、没有报错并不是代表完成了。。。

使用root用户登录mysql

mysql -uroot -p

what!找不到/tmp/mysqld.sock

突然想到在/etc/my.cnf文件下socket的目录,于是vim进去发现

vim /etc/my.cnf

之前的名字写的是mysql.sock,把mysql.sock名字改为mysqld.sock即可

然后service mysqld restart重启

再次尝试mysql -uroot -p,输入初始密码后成功登陆!

9、登陆成功后第一件事就是更改初始密码

ALTER user 'root'@'localhost' IDENTIFIED BY 'Pwd_2018';

Pwd_2018为新密码,可以自己随意更改

mysql中命令最后要加  ;  号,一定要注意!

终于算是安装完毕了mysql8,下边就是小伙伴们根据自己的需求修改配置文件了。

php-7.3.6编译安装:

官网下载php源码包,我下载的是tar.bz2的,不知为何tar.gz的下载不下来

rz    上传至服务器

然后解压

tar jxvf php-7.3.6.tar.bz2

再进入目录

cd php-7.3.6/

先装以下依赖包:

yum -y install libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel freetype-devel libxslt-devel libzip-devel

1、创建用户用户组

groupadd www

useradd -g www www -s /sbin/nologin

2、开始检查环境:

./configure --prefix=/usr/local/php --with-fpm-user=www --with-fpm-group=www --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

总结了一些参数含义,可供参考:

--prefix=/usr/local/php \ [php安装的根目录]    --exec-prefix=/usr/local/php \ [php执行文件所在目录]    --bindir=/usr/local/php/bin \ [php/bin目录]    --sbindir=/usr/local/php/sbin \ [php/sbin目录]    --includedir=/usr/local/php/include \ [php包含文件所在目录]    --libdir=/usr/local/php/lib/php \ [php/lib目录]    --mandir=/usr/local/php/php/man \ [php/man目录]    --with-config-file-path=/usr/local/php/etc \ [php的配置目录]    --with-mysql-sock=/var/run/mysql/mysql.sock \ [php的Unix socket通信文件]    --with-mcrypt \ [是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启]    --with-mhash \ [Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启]    --with-openssl \ [OpenSSL 是一个安全套接字层密码库]    --with-mysqli=shared,mysqlnd \ [php依赖mysql库]    --with-pdo-mysql=shared,mysqlnd \ [php依赖mysql库]    --with-gd \ [gd库]                                                    --with-iconv \ [关闭iconv函数,种字符集间的转换]                            --with-zlib \ [zlib是提供数据压缩用的函式库]    --enable-zip \ [打开对zip的支持]    --enable-inline-optimization \ [优化线程]    --disable-debug \ [关闭调试模式]    --disable-rpath \ [关闭额外的运行库文件]    --enable-shared \ [启用动态库]    --enable-xml \ [开启xml扩展]    --enable-bcmath \ [打开图片大小调整,用到zabbix监控的时候用到了这个模块]    --enable-shmop \ [共享内存]    --enable-sysvsem \ [内存共享方案]    --enable-mbregex \ [开启多字节正则表达式的字符编码。]    --enable-mbstring \ [开启多字节字符串函数]    --enable-ftp \ [开启ftp]    --enable-gd-native-ttf \ [开启gd库原有字体]    --enable-pcntl \ [PHP的进程控制支持实现了Unix方式的多进程创建]            --enable-sockets \ [开启套节字]    --with-xmlrpc \ [打开xml-rpc的c语言]    --enable-soap \ [开启简单对象访问协议简单对象访问协议]    --without-pear \ [开启php扩展与应用库]    --with-gettext \ [开户php在当前域中查找消息]    --enable-session \ [允许php会话session]    --with-curl \ [允许curl扩展]    --with-jpeg-dir \ [指定jpeg安装目录yum安装过后不用再次指定会自动找到]    --with-freetype-dir \ [指定freetype安装目录yum安装过后不用再次指定会自动找到]    --enable-opcache \ [开启使用opcache缓存]    --enable-fpm \ [开启fpm]    --with-fpm-user=nginx \ [php-fpm的用户]    --with-fpm-group=nginx \ [php-fpm的用户组]    --without-gdbm \ [数据库函数使用可扩展散列和类似于标准UNIX dbm的工作]    --enable-fast-install \ [为快速安装优化]    --disable-fileinfo \    --with-php-config=/usr/local/bin/php-config \  [pdo_mysql扩展]    --with-pdo-mysql=mysqlnd \    --enable-maintainer-zts [开启线程安全] (根据自身需要是否选择该项)

报错1:checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11

版本太低,让我将libzip升级到0.11版本以上

升级步骤:

先卸载旧版本:yum -y remove libzip

在下载新版本:wget https://libzip.org/download/libzip-1.5.1.tar.gz

tar -zxvf libzip-1.5.1.tar.gz

cd libzip-1.5.1

mkdir build

cd build

cmake ..

make && make install

libzip新版本安装完毕后,重新检查环境,ok没问题,执行

make -j 4 && make install

-j 4 表示最多允许四个编译命令同时执行,cpu要求双核即可

3、安装完成开始配置

将服务服务放置相对目录下

cd /root/php-7.3.6/sapi/fpm

cp php-fpm.service /usr/lib/systemd/system/

复制配置文件

cd /root/php-7.3.6

cp  php.ini-production /usr/local/php/etc/php.ini

由于nginx调用的是php-fpm进行工作,故把php-fpm.conf.default更名为php-fpm.conf,不然无法识别

cd /usr/local/php/etc/

mv php-fpm.conf.default php-fpm.conf

同样将此文件也更名为.conf文件

cd /usr/local/php/etc/php-fpm.d/

cp -a www.conf.default www.conf

4、我并没有对配置文件进行修改,如需修改请按照个人口味。

然后开始启动php-fpm,设置开机自启

systemctl start php-fpm.service

systemctl enabled php-fpm.service

5、下边修改一下nginx的配置文件,使nginx与php可以连接使用

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

这里添加上以.php结尾的文件名,上边的html表示在html目录下的文件

再将下边php这一段的注释去掉,将红框内的路径修改为自己的根路径(如果步骤是跟我上边的来的,则修改为与我的相同即可)

6、编辑index.php文件

cd /usr/local/nginx/html/

vim index.php

然后wq保存退出

打开浏览器输入  [ip]/index.php

跳转到此界面就说明php安装完毕,nice!

centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常见问题报错及解决方法的更多相关文章

  1. centos7编译安装Python 3.6.8 后用pip3出现SSL未配置问题(import ssl失败)解决方法

    下载源码编译安装openssl https://www.openssl.org/source/openssl-1.0.2j.tar.gz ./config --prefix=/usr/local/op ...

  2. 源码编译apache报错的解决方法

    源码编译apache报错的解决方法   问题介绍 在源码编译安装httpd时,./configure执行无错误,到make时就报错,在网络上搜索了很多文章,很多方法如换apr-util的低版本并不能很 ...

  3. Linux安装ElasticSearch启动报错的解决方法

    Linux安装ElasticSearch后,ElasticSearch是不能用root用户启动的,以root用户启动会报错Refer to the log for complete error det ...

  4. dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法

    dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法 在混淆的时候报错了,错误描述大致如下: Could not find a compatible vers ...

  5. Centos7编译安装lnmp(nginx1.10 php7.0.2)

    我使用的是阿里云的服务器 Centos7 64位的版本 1. 连接服务器 这个是Xshell5的版本 安装好之后我们开始连接服务器 2. 安装nginx 首先安装nginx的依赖 yum instal ...

  6. CentOS7 编译安装LNMP

    (文章来自:http://www.cnblogs.com/i-it/p/3841840.html,请各位到这个网址去看原文的) LNMP(Linux-Nginx-Mysql-PHP),本文在CentO ...

  7. centos7编译安装lnmp

    1.前言 本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或Windows上通过一键搭建工具或者yum命令行进行环境搭建的读者,阅读本文需具有一定的专业知识,本文不建议初学者阅 ...

  8. linux centos7.3安装lnmp,nginx-1.11.12 ,php7.0.2 ,

    #更新源 yum -y update #添加用户和组 adduser www groupadd www usermod -G www www #初始化目录 mkdir -p /data/app/php ...

  9. CentOS7安装Docker时的异常报错与解决方法

    重要:有些人在vmware中安装了新的centos用于使用docker,但是往往会忽略了更换源与进行系统update, 这样会导致安装过程中出现诸多如下类问题,为了避免不必要的麻烦在安装docker前 ...

随机推荐

  1. 024 实例5-身体质量指数BMI

    目录 一."身体质量指数BMI"问题分析 1.1 身体质量指数BMI 1.2 问题需求 二."身体质量指数BMI"实例讲解 2.1 身体质量指标BMI 2.1. ...

  2. 为什么说 Java 程序员必须掌握 Spring Boot ?(转)

    Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,那么, Spring Boot 诞生的背景是什么?Spring 企业又是基于什么样的考虑创建 Spring Boot ...

  3. Log4Net 日志记录的实现

    一.前言 在上一篇文章[(转载)非常完善的Log4net配置详细说明]介绍了Log4Net的配置说明,如果不知道的可以去看看,这里我们就介绍一下日志记录的实现,说得都比较基础,所以大神请绕过. 二.L ...

  4. Django与mongodb数据库的连接

    1.最开始需要下载一个第三方模块:mongoengine 2.下载完成之后,需要在settings中完成配置(在DATABASES后面,别问我为什么,问了我也不告诉你...) connect中传入的是 ...

  5. postman--请求以及变量设置的实例练习

    我们可以在2个地方添加需要执行的js脚本,一个是Pre-request Script,还有一个tests,我们先看请求之前的 1 在请求被发送到服务器之前:就是在“Pre-request Script ...

  6. linux ssh连接自动断开问题

    场景描述:云上的虚拟机使用public ip连接ssh时,一直提示已经连接,但是就会自动关闭 1. 通过正常虚拟机作为跳板,能够连接到目标机子上,检查发现进程正常,但是就一直连接不上 [root@te ...

  7. java8新特性使用

    一.接口的默认方法(允许接口有非抽象方法)Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 代码如下: interface ...

  8. Java第三次作业第五题

    5. [问题描述]Fibonacci序列处理 从文件in.txt中读取第一个数作为Fibonacci数列的开始数n,读取第二个数,作为需要写入的数的个数m. 将从n开始的m个Fibonacci数列写入 ...

  9. js vue 页面添加水印

    vue 微信页面添加水印 this.$nextTick(function() {                                   watermark({ watermark_txt ...

  10. 从零开始OpenGL—— 一、 环境配置

    前言 高考完之后填志愿,当时想以后去做游戏,所以选择了计算机这个专业,之前捣鼓过U3D,这学期也开始了计算机图形学的学习,最近学习了OpenGL相关的一些内容,将在博客中记录这系列的学习.这篇开篇博客 ...