我是靠谱客的博主 文静飞机,最近开发中收集的这篇文章主要介绍Linux(Ubantu,Centos) 后端环境部署,问题解决[不定期更新]一:node,npm环境部署二:LNMP 、LAMP、LNMT、LNMH 全自动安装三:ngnix隐藏index.php 四:ngnix强制跳转https访问 (http->https)五:Ubuntu 完全彻底卸载Mysql六:Apache服务器出现错误:AH00558: apache2: Could not reliably determine the server's fully .. 解决方法七:ubuntu/,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一:node,npm环境部署

二:LNMP 、LAMP、LNMT、LNMH 全自动安装

三:ngnix隐藏index.php 

四:ngnix强制跳转https访问 (http->https)

   rewrite ^(.*)$  https://$host$1 permanent;  //添加词句

五:Ubuntu 完全彻底卸载Mysql

六:Apache服务器出现错误:AH00558: apache2: Could not reliably determine the server's fully .. 解决方法

七:ubuntu/centos 松动安装Mysql并且关联PHP 

八:Ubuntu开机自动启动脚本

九:Errors were encountered while processing的解决办法,sudo apt-get upgrade遇到问题,sudo apt-get install遇到问题 

十:输出PHP 编码时 500 (Internal Server Error) 具体错误

十一:Ubuntu彻底删除/卸载mysql,php,apache

十一:Ubuntu node、npm升级到最新版本,直接安装

十一:Ubuntu redis使用

Ubuntu 下安装

启动 Redis

查看 redis 是否启动?

redis启动和停止和后台运行

十二:Ubuntu 安装及更新 gcc 版本的方法

操作步骤

安装两个依赖库

更新apt-get的库源

安装gcc

检查是否安装成功

建立连接

ln 方法

update-alternatives 方法

十三:Ubuntu下安装cmake

十四:Centos下安装 gcc-5.0以上

十五:.user.ini权限问题解决方法 

十六:Unable to locate package php-zeroc-ice

一:Ice Lib的安装

十七:Ubuntu Mysql 忘记密码 重新设置

十八:php-fpm的重启方法 

master进程可以理解以下信号

十八:apache配置优化 - 解决apache环境下网站访问速度慢的问题

十九:Ubuntu 升级cmake到3.11.3

二十:Ubuntu 源码安装Cmake 3.18

1. 下载

2. 安装

2.1 解压

2.2 执行bootstrap

2.3 安装

2.4 验证



一:node,npm环境部署

官网查看最新版本连接:https://nodejs.org/dist/v12.2.0/node-v12.2.0-linux-x64.tar.xz

https://nodejs.org/dist/v12.2.0/node-v12.2.0-linux-x64.tar.xz
tar xf  node-v10.11.0-linux-x64.tar.xz       // 解压
cd node-v10.11.0-linux-x64/                  // 进入解压目录

ln -s /xxx/node-vxxx-linux-x64/bin/node   /usr/local/bin/

ln -s /xxx/node-vxxx-linux-x64/bin/npm   /usr/local/bin/     【软连接需要绝对路径】

注: 如果出现npm已经存在,node 已经存在

root@ubuntu:~$ sudo rm -rf /usr/local/bin/node

root@ubuntu:~$ sudo rm -rf /usr/local/bin/npm

完成之后:

  root@ubuntu:~$ node -v v12.11.0                root@ubuntu:~$ npm -v 6.4.1

安装cnpm

 执行 : npm install -g cnpm --registry=https://registry.npm.taobao.org

二:LNMP 、LAMP、LNMT、LNMH 全自动安装

全自动安装网址  自动安装 - OneinStack   

例:LNMP => Linux+nginx+mysql + php  (如下图)

        版本可以随意得选择,一键安装,超级方便(感谢 OneinStack 出了这么好一个部署脚本)

        选择完后复制命令执行即可,重启后生效。

三:ngnix隐藏index.php 

在http{ server{ location {#代码处} }}里写代码

location / {

  if ( !-e $request_filename ) {

    rewrite ^/(.*)/index.php?s=/index.php?s=1 last;

    break;

  }

}

四:ngnix强制跳转https访问 (http->https)

server {  

    listen  192.168.x.xx:80;  

    server_name xxx.com;  

   rewrite ^(.*)$  https://$host$1 permanent;  //添加词句

}  

五:Ubuntu 完全彻底卸载Mysql

1:第一种

sudo rm /var/lib/mysql/ -R

删除mysql的数据文件

sudo rm /etc/mysql/ -R

删除mqsql的配置文件

sudo apt-get autoremove mysql* --purge

sudo apt-get remove apparmor

自动卸载mysql的程序

2:第二种

首先删除mysql:

sudo apt-get remove mysql-* [它会跳出一个对话框,你选择yes就好了 ]

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

 4:第三种 

a. sudo apt-get autoremove --purge mysql-server-5.0

b. sudo apt-get remove mysql-server

c. sudo apt-get autoremove mysql-server

d. sudo apt-get remove mysql-common (非常重要)

上面的其实有一些是多余的,建议还是按照顺序执行一遍

2. 清理残留数据

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

六:Apache服务器出现错误:AH00558: apache2: Could not reliably determine the server's fully .. 解决方法

 在Unbuntu中重启Apache服务器出现错误:AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1.等等。解决方法:     

 $ sudo vim /etc/apache2/apache2.conf

  最后加入一句: ServerName localhost:80

七:ubuntu/centos 松动安装Mysql并且关联PHP 

1.sudo apt-get install mysql-server-5.6

2.测试是否安装成功

   ps aux |grep mysql

   mysql -u root -p (进入数据库)

3:关联PHP

  apt-get install php5-mysql

八:Ubuntu开机自动启动脚本

 1:编写Shell 脚本 test.sh

 2: 将脚本权限   chmod -R 777  test.sh     并移至到/etc/init.rc 下

 3:

设置脚本启动

sudo update-rc.d ptt.sh  defaults 95.

卸载启动脚本

sudo update-rc.d -f test remove

注:

  

 脚本规则 :

#! /bin/bash

### BEGIN INIT INFO

# Provides:          land.sh

# Required-start:    $local_fs $remote_fs $network $syslog

# Required-Stop:     $local_fs $remote_fs $network $syslog

# Default-Start:     2 3 4 5

# Default-Stop:      0 1 6

# Short-Description: starts the svnd.sh daemon

# Description:       starts svnd.sh using start-stop-daemon

### END INIT INFO

.(做一些脚本工作)

九:Errors were encountered while processing的解决办法,sudo apt-get upgrade遇到问题,sudo apt-get install遇到问题 

 问题描述:在Ubuntu执行更新sudo apt-get upgrade或者利用sudo apt-get install安装软件包时遇到:Errors were encountered while processing,查看错误信息发现:2 not fully installed or removed,如下:

root@iZt4n7en5ngj5l9s7w90klZ:~# apt-get upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  linux-generic-lts-xenial linux-headers-generic-lts-xenial
  linux-image-generic-lts-xenial
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up php5-mysql (5.5.9+dfsg-1ubuntu4.29) ...
dpkg: error processing package php5-mysql (--configure):
 subprocess installed post-installation script returned error exit status 10
Setting up grub-pc (2.02~beta2-9ubuntu1.17) ...
dpkg: error processing package grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 10
Processing triggers for libapache2-mod-php5 (5.5.9+dfsg-1ubuntu4.29) ...
Errors were encountered while processing:
 php5-mysql
 grub-pc
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@iZt4n7en5ngj5l9s7w90klZ:~# cd /var/lib/dpkg

解决方法: 
cd /var/lib/dpkg 
sudo mv info info.bak 
sudo mkdir info 
sudo apt-get upgrade 

 

十:输出PHP 编码时 500 (Internal Server Error) 具体错误

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

 出错的话,就可以弹出具体的错误位置!

十一:Ubuntu彻底删除/卸载mysql,php,apache

一、卸载删除 mysql

1 sudo apt-get autoremove --purge mysql-server-5.0
2 sudo apt-get remove mysql-server
3 sudo apt-get autoremove mysql-server
4 sudo apt-get remove mysql-common (非常重要)

清理残留数据:

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
sudo find /etc -name "*mysql*" |xargs rm -rf 

最后用 dpkg -l | grep mysql 检查,如无返回即干净卸载


二、卸载删除apache

sudo apt-get --purge remove apache-common
sudo apt-get --purge remove apache

找到没有删除掉的配置文件,一并删除

sudo find /etc -name "*apache*" |xargs rm -rf 
sudo rm -rf /var/www
sudo rm -rf /etc/libapache2-mod-jk
sudo rm -rf /etc/init.d/apache2
sudo rm -rf /etc/apache2

删除关联,

dpkg -l |grep apache2|awk '{print $2}'|xargs dpkg -P

删除svn
sudo apt-get remove subversion
sudo apt-get remove libapache2-svn

最后用 dpkg -l | grep apache 和 dpkg -l | grep apache2检查,如无返回即干净卸载


三、卸载删除php

sudo apt-get –purge remove libapache2-mod-php5 php5 php5-gd php5-mysql
sudo apt-get autoremove php5

删除关联,
sudo find /etc -name "*php*" |xargs rm -rf 

清楚残留信息
dpkg -l |grep ^rc|awk ’{print $2}’ |sudo xargs dpkg -P

最后用 dpkg -l | grep php 和dpkg -l | grep php5 检查,如无返回即干净卸载

脚本删除Mysql:

#!/bin/bash

list=`sudo find / -name mysql*`

for i in $list

do

sudo rm -rf $i

done

exit 0
  • 给这个脚本加上执行权限后执行

sudo chmod u+x deleteMysql.sh

sudo ./deleteMysql.sh

十一:Ubuntu node、npm升级到最新版本,直接安装

sudo apt update -y

sudo apt install -y nodejs nodejs-legacy npm

sudo npm config set registry https://registry.npm.taobao.org

sudo npm install n -g sudo n stable 

 n是一个Node工具包,它提供了几个升级命令参数:

n                              显示已安装的Node版本
n latest                       安装最新版本Node
n stable                       安装最新稳定版Node
n lts                          安装最新长期维护版(lts)Node
n <version>                    根据提供的版本号安装Node</pre>

安装后,切换版本:

sudo n           方向键选择已安装的 node 版本,然后回车确认
node -v          检查当期版本

如果切换后,node的版本居然没有发生变化,解决方案如下:

export NODE_HOME=/usr/local
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH

十一:Ubuntu redis使用

Ubuntu 下安装

在 Ubuntu 系统安装 Redis 可以使用以下命令:

$sudo apt-get update
$sudo apt-get install redis-server

启动 Redis

$ redis-server

查看 redis 是否启动?

$ redis-cli

以上命令将打开以下终端:

redis 127.0.0.1:6379>

127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令。

redis 127.0.0.1:6379> ping
PONG

以上说明我们已经成功安装了redis。

redis启动和停止和后台运行

启动:

redis-server &  后台启动使用默认配置

redis-server 直接启动

redis-server  配置路径 如redis-server  /etc/redis.conf 不是后台启动 这时候要后台启动的话就需要配置redis.conf中的

daemonize on

改为yes

停止

 redis-cli -a 密码  -h 127.0.0.1 -p 6379 shutdown

没有密码

redis-cli   -h 127.0.0.1 -p 6379 shutdown

十二:Ubuntu 安装及更新 gcc 版本的方法

应该自带,如果不自带,不追求版本可以

apt-get install gcc

或者

apt-get install build-essential

用于更新所有已安装的库

apt-get upgrade
apt-get dist-upgrade //更新到发布的最新版本

操作步骤

安装两个依赖库

这两个依赖库安装完后,可以使用add-apt-repository命令了

apt-get install python-software-properties
apt-get install software-properties-common

更新apt-get的库源

add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update

然后就可以通过apt-get install安装gcc最新的版本了

安装gcc

apt-get install gcc-8
apt-get install g++-8//这是安装g++的,可以考虑一起安装上,万一用的着呢

检查是否安装成功

可以用locate命令来定位一下是否存在了gcc-8g++-8
定位之前需要刷新一下, 否则locate等命令是找不到的

updatedb && ldconfig
locate gcc | grep -E "/usr/bin/gcc-[0-9]"
locate g++ | grep -E "/usr/bin/g++-[0-9]"

如果正确安装了,下面就会出现一个系统原来的和一个新安装的版本,图中安装的版本是gcc-6g++-6(图非笔者所截图,来自于网上,用于说明)

然而我们正常使用的gcc/g++其实都是/usr/bin/gcc和/usr/bin/g++, 他们指向了/usr/bin下真正版本的gcc/g++程序
所以我们接下来需要连接

建立连接

方法有两种

  • 通过ln建立连接
  • 通过update-alternatives建立连接

ln 方法

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-6 gcc
sudo rm g++
sudo ln -s g++-6 g++

sudo可以按需要添加或者去掉

update-alternatives 方法

如果安装了同一个软件的不同版本,可以使用update-alternatives命令设置默认使用哪个版本,典型的如在Ubuntu里安装了gcc-4.8和gcc-8, 想让gcc命令自动使用gcc-8版

首先要让系统知道我们安装了多个版本的gcc

命令最后的 20和50是优先级,如果使用auto选择模式,系统将默认使用优先级高的

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 50

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 50

自此我们的系统就默认选择了优先级最高的gcc版本, 具体选择依配置而定, 可以使用update-alternatives --config修改配置

查询系统中安装有哪些版本

sudo update-alternatives --query gcc

使用交互方式的命令选择默认使用的版本

sudo update-alternatives --config gcc

十三:Ubuntu下安装cmake

1、查看当前cmake的版本:cmake --version
2、下载cmake安装包
            wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
3、执行
            cd cmake-3.9.2
           ./configure
            sudo make && make install
4、查看版本号,验证
            cmake --version

十四:Centos下安装 gcc-5.0以上

  • 直接安装
  1. yum install centos-release-scl-rh
  2. yum --enablerepo=centos-sclo-rh-testing install devtoolset-6-gcc devtoolset-6-gcc-c++
  3. source /opt/rh/devtoolset-6/enable
  • 源码编译

如果直接下载gcc6.3.0进行安装升级的话,会报错

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

接下来我们需要以此安装gmp,mpfr,mpc,这三个组件的顺序不能乱,因为后面的依次依赖前面

1、安装相关依赖

  • yum install "gmp-devel.x86_64"
  • yum install gcc-c++
  • yum install m4

2、安装gmp

  • wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
  • xz -d gmp-6.1.2.tar.xz
  • tar xvf gmp-6.1.2.tar
  • cd gmp-6.1.2
  • ./configure --prefix=/usr/local/gmp
  • make  && make install

3、安装MPFR

  • wget https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.gz
  • tar -zxvf mpfr-4.0.2.tar.gz
  • cd mpfr-4.0.2

在目录文件 src/mul.c 该行代码下面

#define MPFR_VERSION_STRING "4.0.2"

添加代码

#define mpfr_add_one_ulp(x,r) 
(mpfr_sgn (x) > 0 ? mpfr_nextabove (x) : mpfr_nextbelow (x))
#define mpfr_sub_one_ulp(x,r) 
(mpfr_sgn (x) > 0 ? mpfr_nextbelow (x) : mpfr_nextabove (x))

然后执行

  • ./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
  • make  && make install

4、安装mpc

  • wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
  • tar -zxvf mpc-1.0.3.tar.gz
  • cd mpc-1.0.3
  • ./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
  • make  && make install

如果报错:mul.c:175:1: error: conflicting types for ‘mpfr_fmma’

则将 mpc/src/mul.c中的 mpfr_fmma函数改名为mpfr_fmma_mul,一共三处

4、安装GCC

  • wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.gz
  • tar -zxvf gcc-6.3.0.tar.gz
  • cd gcc-6.3.0
  • ./configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
  • make && make install

    如果几分钟后出现报错:

             cannot compute suffix of object files: cannot compile

     解决方法如下:

             vi /etc/profile

       添加

            export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib

            source /etc/profile

        重新编译安装即可

5、建立软链接

  1. [root@centos]# ln -sf /usr/local/gcc/bin/gcc /usr/bin/gcc
  2. [root@centos]# ln -sf /usr/local/gcc/bin/c++ /usr/bin/c++
  3. [root@centos]# ln -sf /usr/local/gcc/bin/g++ /usr/bin/g++
  4. [root@centos]# ln -sf /usr/local/gcc/lib64/libstdc++.so.6.0.22 /usr/lib64/libstdc++.so.6 

十五:.user.ini权限问题解决方法 

1、chattr解决权限问题,对.user.ini进行解锁

chattr -i /www/wwwroot/test/.user.ini

2.使用ftp或rm进行删除

总结,为了解决跨站安全问题,现在lnmp 宝塔linux面板 wdcp都对使用了chattr命令对.user.ini进行加锁,所以我们需要解锁。

十六:Unable to locate package php-zeroc-ice

一:Ice Lib的安装

参考官网地址:https://doc.zeroc.com/ice/latest/release-notes/using-the-linux-binary-distributions#id-.UsingtheLinuxBinaryDistributionsv3.7-InstallingIceonUbuntu

首先添加Key和仓库地址:

1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv B6391CB2CFBA643D
2 sudo apt-add-repository -s "deb http://zeroc.com/download/Ice/3.7/ubuntu`lsb_release -rs` stable main"

更新软件包并安装:

1 sudo apt-get update
2 sudo apt-get install zeroc-ice-all-runtime zeroc-ice-all-dev

安装时可能会提示amd386的相关错误,忽视就行。如提示有缺失试试以下命令:

sudo apt-get upgrade -f

可以通过查看ice版本和slice版本的方法查看是否安装成功:

icegridNode -v

slice2cpp -v

十七:Ubuntu Mysql 忘记密码 重新设置

编辑mysql的配置文件/etc/mysql/my.cnf,在[mysqld]段下加入一行“skip-grant-tables”。

@ubuntu:~$ sudo service mysql restart  
mysql stop/waiting  
mysql start/running, process 18669 

mysql> use mysql  
Database changed 
#修改密码   替换 new_pass
mysql> update user set password=PASSWORD("new_pass") where user='root';    
Query OK, 0 rows affected (0.00 sec)    
Rows matched: 4  Changed: 0  Warnings: 0    
mysql>quit 

回到vim /etc/mysql/my.cnf,把刚才加入的那一行“skip-grant-tables”注释或删除掉。

再次重启mysql服务sudo service mysql restart,使用新的密码登陆,修改成功。

@ubuntu:~$ mysql -uroot -pnew_pass  
Welcome to the MySQL monitor.  Commands end with ; or g.  
mysql> 

十八:php-fpm的重启方法 

启动php-fpm: 
/Data/apps/php7/sbin/php-fpm(这是源码包凡事安装的) 
php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /Data/apps/php7/sbin/php-fpm(start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:

master进程可以理解以下信号

INT, TERM 立刻终止 
QUIT 平滑终止 
USR1 重新打开日志文件 
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

一个简单直接的重启方法:

1:先查看php-fpm的master进程号

root@iZm5ee6df2m25pdbe4o8eoZ:~# ps aux|grep php-fpm
www      24804  0.1  0.2 139832 39584 ?        S    Oct31  52:09 php-fpm: pool www
www      25591  0.1  0.2 144780 42672 ?        S    Oct29  57:54 php-fpm: pool www
root     26106  0.0  0.0  14428  1064 pts/3    S+   10:46   0:00 grep --color=auto php-fpm
root     28186  0.0  0.0 118960  9028 ?        Ss   Oct29   0:57 php-fpm: master process (/www/server/php/72/etc/php-fpm.conf)
www      28187  0.1  0.2 144876 42696 ?        S    Oct29  58:01 php-fpm: pool www
www      28188  0.1  0.2 135300 34108 ?        S    Oct29  58:12 php-fpm: pool www

重启php-fpm:

找到master 进程  kill -USR2 28186

OK了。 

十八:apache配置优化 - 解决apache环境下网站访问速度慢的问题

1、首先,在页面访问变慢情况发生时,使用 top 命令查看了服务器的负载情况,发现负载并不高,初步估计不是程序的问题。 
2、然后,查看了线程中的 httpd 的数量, ps -aux | grep httpd | wc -l 发现,线程数已经达到了 apache 设置的最大值。由此断定是网站访问人数过多造成了访问过慢。 
3、为了验证,查看了连接数和当前的连接数,分别是 
    netstat -ant | grep $ip:80 | wc -l 
    netstat -ant | grep $ip:80 | grep EST | wc -l 
    发现果然,连接数特别多,远远超过我们的估计值。 

修改apache的最大并发连接数(默认是256)
有日志报错可知,apache采用的是默认的prefork模式(使用apache2 -l或httpd -l命令也能查看处理 )
找到mpm_prefork.conf文件进行连接数的修改(若是work模式,就修改mpm_worker.conf)
[root@youdo ~]# vim /etc/apache2/mods-available/mpm_prefork.conf
<IfModule mpm_prefork_module>
      StartServers                     10
      MinSpareServers               10
      MaxSpareServers              20
      ServerLimit                      2000
      MaxRequestWorkers         1500
      MaxConnectionsPerChild    10000
</IfModule>

说明:
手动添加ServerLimit,这个才是修改apache最大并发连接数的参数设置,一定要将它放在MaxRequestWorkers的前面,并且它的值也一定要大于MaxRequestWorkers的值。如上设置,apache的最大并发连接数设置为2000个。
其他的配置:
StartServers         定服务器启动时建立的子进程数量,prefork默认为5
MinSpareServers   指定空闲子进程的最小数量,默认为5。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。
MaxSpareServers  设置空闲子进程的最大数量,默认为10。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设的太大。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。
MaxRequestWorkers   最大数量的服务器进程允许开始;这个参数是这些中最为重要的一个,设定的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep http|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。
MaxConnectionsPerChild   每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。
将MaxRequestsPerChild设置成非零值有两个好处:
1.可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

重启apache服务(最好是先stop,然后再start)
在/etc/apache2/apache2.conf文件中添加ServerName localhost,去掉apache服务启动中的告警信息。
[root@wang ~]# /etc/init.d/apache2 stop
[root@wang ~]# /etc/init.d/apache2 start

十九:Ubuntu 升级cmake到3.11.3

1.通过以下命令查询cmake版本。

$ cmake --version

2.这里,我并没有卸载旧版本的cmake,而是直接安装新版本,而且这样没有出现问题。【非必须】
可去http://www.cmake.org/files查找需要的版本,写本博客时最新版为3.11.3,以此为例。

$ sudo apt-get install build-essential
$ wget http://www.cmake.org/files/v3.11/cmake-3.11.3.tar.gz
$ tar xf cmake-3.11.3.tar.gz
$ cd cmake-3.11.3
$ ./configure
$ make
$ sudo make install

3.创建cmake的软连接

ln -sf /your/cmake-3.11.3/path/bin/*  /usr/bin/ 

4.然后,输入以下命令查询cmake版本。

$ cmake --version

如果输出以下信息,则表明安装成功。

cmake version 3.11.3
CMake suite maintained and supported by Kitware (kitware.com/cmake).

二十:Ubuntu 源码安装Cmake 3.18

1. 下载

目前最新版cmake是cmake-3.18.0,直接去官网下载cmake-3.18.0.tar.gz,或者执行如下命令下载:

wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz

2. 安装

2.1 解压

tar -zxf cmake-3.18.0
cd cmake-3.18.0/

2.2 执行bootstrap

./bootstrap

该过程中可能出现如下错误:Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)

执行如下命令:
 

apt-get install update
apt-get install upgrade
apt-get install libssl-dev

CMake has bootstrapped. Now run make.

出现如上内容,即可进行下面的步骤。

2.3 安装

执行命令:

make -j4

# 运行安装
make install

2.4 验证

查看版本

cmake --version

二十一:CentOS 8: Cannot prepare internal mirrorlist: No URLs in mirrorlist --解决方法

问题:
在CentOS 8中,使用yum时出现错误,镜像列表中没有url,类似如下:
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

原因
在2022年1月31日,CentOS团队终于从官方镜像中移除CentOS 8的所有包。
CentOS 8已于2021年12月31日寿终正非,但软件包仍在官方镜像上保留了一段时间。现在他们被转移到https://vault.centos.org

解决方法
如果你仍然需要运行CentOS 8,你可以在/etc/yum.repos.d中更新一下源。使用vault.centos.org代替mirror.centos.org。

$ sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
$ sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

最后

以上就是文静飞机为你收集整理的Linux(Ubantu,Centos) 后端环境部署,问题解决[不定期更新]一:node,npm环境部署二:LNMP 、LAMP、LNMT、LNMH 全自动安装三:ngnix隐藏index.php 四:ngnix强制跳转https访问 (http->https)五:Ubuntu 完全彻底卸载Mysql六:Apache服务器出现错误:AH00558: apache2: Could not reliably determine the server's fully .. 解决方法七:ubuntu/的全部内容,希望文章能够帮你解决Linux(Ubantu,Centos) 后端环境部署,问题解决[不定期更新]一:node,npm环境部署二:LNMP 、LAMP、LNMT、LNMH 全自动安装三:ngnix隐藏index.php 四:ngnix强制跳转https访问 (http->https)五:Ubuntu 完全彻底卸载Mysql六:Apache服务器出现错误:AH00558: apache2: Could not reliably determine the server's fully .. 解决方法七:ubuntu/所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部