centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常
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! ?如有转载请标明出处 谢谢 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |