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

centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常见问题报错及解决方法,第1张

概述LNMP的安装与配置 nginx-1.16.0安装及配置: 第一步:前往官网下载nignx源码包 下载完毕后上传至服务器(先安装lrzsz) yum -y install lrzsz 安装完毕后执行:

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)常见问题报错及解决方法全部内容,希望文章能够帮你解决centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常见问题报错及解决方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1015410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存