标签 编译 下的文章

CentOS7.8编译安装MySQL8.0.21

  Centos7.8安装的是minimal最小化版本,首先安装基础必需的软件包及更新下系统:

yum install gcc gcc-c++ gcc-g77 make autoconf automake ncurses ncurses-devel openssl openssl-devel bison cmake cmake3 -y

MySQL8.0需要用gcc的版本为 4.8以上,CentOS自带的版本比较低,通过yum安装的版本也低,参考下面升级GCC版本

升级GCC版本参考:https://mhl.xyz/Linux/update-gcc.html

MySQL8.0.21.png

添加mysql运行账号及数据保存目录

groupadd mysql
useradd -g mysql mysql -s /bin/false
mkdir -p /data/mysql/
mkdir -p /data/mysql_logs/binlog/
touch /data/mysql_logs/error.log
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /data/mysql_logs/

---阅读剩余部分---

zabbix3.x中文图片乱码终极解决

zabbix-logo.png
Zabbix乱码是由于默认使用DejaVuSan.ttf字体,该字体不支持中文,切换语言成中文Zh_cn后,在图表上中文出现乱码,如下图:
lm.png

解决zabbix乱码方法如下:
找到本地C:WindowsFontsmsyh.ttf(微软雅黑)上传到服务器zabbix网站目录fonts目录下
修改includedefines.inc.php中的DejaVuSans为msyh

define('ZBX_GRAPH_FONT_NAME',        'msyh');
define('ZBX_FONT_NAME', 'msyh');

再次刷新即可正常;
tb.png

如果还乱码,就需要检查数据库编码是否是utf8编码了

show create database zabbixdb; #查看数据库创建编码
root@monitor-db 09:23:05 [(none)]>show create database zabbixdb;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| zabbixdb | CREATE DATABASE `zabbixdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

若数据库是utf8编码,但还乱码,就需要继续盘查,php编译参数中是否编译了jpeg、png、freetype等组件,
编译顺序如下:

安装libmcrypt:
cd /opt
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure && make && make install

安装 jpeg6

 mkdir /usr/local/jpeg6
 mkdir /usr/local/jpeg6/bin
 mkdir /usr/local/jpeg6/lib
 mkdir /usr/local/jpeg6/include
 mkdir /usr/local/jpeg6/man
 mkdir /usr/local/jpeg6/man/man1
cd /opt
tar zxf jpegsrc.v6b.tar.gz
cd jpeg-6b
cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
make && make install

安装png

cd /opt
tar zxvf libpng-1.6.10.tar.gz
./configure --prefix=/usr/local/png --enable-shared
make && make install

安装freetype

cd /opt
tar zxvf freetype-2.5.3.tar.gz
cd freetype-2.5.3
./configure --prefix=/usr/local/freetype --enable-shared
make && make install

最后编译php参数如下:

./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql --with-mysqli=/usr/bin/mysql_config --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --with-jpeg-dir=/usr/local/jpeg6 --with-png-dir=/usr/local/png --with-freetype-dir=/usr/local/freetype --with-mcrypt=/usr/local/libmcrypt --enable-maintainer-zts --with-ldap=shared --without-gdbm 
make -j 8
make install

Centos7.6快速编译安装Nginx-1.14.2 及Php7.3.0

PHP7.3.png
操作系统版本:

cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

安装扩展包并更新系统内核:

yum install epel-release -y
yum update -y

安装基础依赖组件

yum install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel openssl openssl-devel sqlite sqlite-devel oniguruma oniguruma-devel -y

---阅读剩余部分---

平滑升级Nginx到最新版本

Nginx目前爆出在HTTP/2 和 MP4 模块中存在安全漏洞,容易被DOS攻击。
8cf51541726528.jpg

Nginx官方于11月6日发布了新版本,用于修复影响 1.15.6, 1.14.1 之前版本的多个安全问题,被发现的安全问题有一种这样的情况 —— 允许潜在的攻击者触发拒绝服务(DoS)状态并访问敏感的信息,见官方公告:http://nginx.org/en/security_advisories.html
低版本升级到目前最新版nginx-1.14.1方法步骤如下:
1、查看原来安装nginx的版本以及编译的参数:

[root@xshell ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2o  27 Mar 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/data/lnmp1.5-full/src/openssl-1.0.2o

2、下载nginx最新稳定版本

wget http://nginx.org/download/nginx-1.14.1.tar.gz

3、解压ningx压缩包并编译make

tar xvf nginx-1.14.1.tar.gz
cd nginx-1.14.1
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/data/lnmp1.5-full/src/openssl-1.0.2o
make

4、make编译完后会在安装目录下生成一个objs目录且在该目录下有一个nginx执行文件

[root@xshell nginx-1.14.1]# ll
total 756
-rw-r--r-- 1 www  www  287441 Nov  6 21:52 CHANGES
-rw-r--r-- 1 www  www  438114 Nov  6 21:52 CHANGES.ru
-rw-r--r-- 1 www  www    1397 Nov  6 21:52 LICENSE
-rw-r--r-- 1 root root    376 Nov  9 10:56 Makefile
-rw-r--r-- 1 www  www      49 Nov  6 21:52 README
drwxr-xr-x 6 www  www    4096 Nov  9 10:55 auto
drwxr-xr-x 2 www  www    4096 Nov  9 10:55 conf
-rwxr-xr-x 1 www  www    2502 Nov  6 21:52 configure
drwxr-xr-x 4 www  www    4096 Nov  9 10:55 contrib
drwxr-xr-x 2 www  www    4096 Nov  9 10:55 html
drwxr-xr-x 2 www  www    4096 Nov  9 10:55 man
drwxr-xr-x 3 root root   4096 Nov  9 11:00 objs
drwxr-xr-x 9 www  www    4096 Nov  9 10:55 src
[root@xshell nginx-1.14.1]# ll objs/
total 10348
-rw-r--r-- 1 root root    52252 Nov  9 10:56 Makefile
-rw-r--r-- 1 root root    17763 Nov  9 10:55 autoconf.err
-rwxr-xr-x 1 root root 10394568 Nov  9 11:00 nginx
-rw-r--r-- 1 root root     5341 Nov  9 11:00 nginx.8
-rw-r--r-- 1 root root     7555 Nov  9 10:56 ngx_auto_config.h
-rw-r--r-- 1 root root      657 Nov  9 10:55 ngx_auto_headers.h
-rw-r--r-- 1 root root     8401 Nov  9 10:55 ngx_modules.c
-rw-r--r-- 1 root root    89712 Nov  9 11:00 ngx_modules.o
drwxr-xr-x 9 root root     4096 Nov  9 10:55 src

5、备份老的nginx文件,复制新文件

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak
cp objs/nginx /usr/local/nginx/sbin/

6、检测配置文件是否正常

/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

7、使用make upgrade替换老的nginx进程

make upgrade
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

8、执行/usr/local/nginx2/sbin/nginx -V查看nginx最新的版本及编译的参数

/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.14.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2o  27 Mar 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/data/lnmp1.5-full/src/openssl-1.0.2o

9、重新reload服务

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

至此平滑升级完成

安装python3.7出现ModuleNotFoundError: No module named '_ctypes'报错

编译安装Python3.7的时候报错

make install
ModuleNotFoundError: No module named ‘_ctypes’

主要是少安装了包:
解决方法:

yum install libffi-dev -y
yum update -y

然后重新make install即可,如果还报错,在继续安装下其他基础包:

yum install make curl curl-devel gcc gcc-c++ gcc-g77 gcc* make zlib-devel bzip2-devel openssl-devel xz-libs wget unzip xz vixie-cron crontabs ntpdate tar lrzsz sysstat bind-utils vim -y
yum groupinstall 'development tools' -y
yum update -y

Centos7.5测试通过·

参考:
CentOS7.4快速编译安装Python-3.6.3及pip
CentOS6.8安装Python3.5.2最新版及setuptools-20.10.1和pip-8.1.2

安装sticky模块报错问题解决

sticky 模块在编译进nginx的时候,在以上nginx0.9版本会报错,需要修改源文件:

编译时出现错误:
cc1: warnings being treated as errors
ngx_http_sticky_module.c: In function ‘ngx_http_get_sticky_peer’:
/ngx_http_sticky_module.c:333: 警告:赋值时将整数赋给指针,未作类型转换
ake[1]: *** [objs/addon/nginx-sticky-module-1.1/ngx_http_sticky_module.o] 错误 1

ngx_http_sticky_misc.c 的281行修改如下

digest->len = ngx_sock_ntop(in, digest->data, len, 1);

改后

digest->len = ngx_sock_ntop(in, sizeof(struct sockaddr_in), digest->data, len, 1);

ngx_http_sticky_module.c文件也进行修改
第6行添加:

#include <nginx.h>

2f811f7c-f464-3291-b40d-1b2e6529e760.jpg

第340行左右修改(iphp->rrp.current = iphp->selected_peer;)为:

if (peer && selected_peer >= 0) {
                 ngx_log_debug(NGX_LOG_DEBUG_HTTP, pc->log, 0, "[sticky/get_sticky_peer] peer found at index %i", selected_peer);
#if defined(nginx_version) && nginx_version >= 1009000
                 iphp->rrp.current = peer;
#else
                 iphp->rrp.current = iphp->selected_peer;
#endif

195434_cnGd_2611077.jpg

h.png

最后重新编译即可。
来源:
https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/commits/51efa124a4330e194ef651e597a6038a6f7979dc

make编译命令参数

Linux下安装大部分软件的时候都需要make下,然后才能安装,以下是收集整理的命令参数:

用法:make [选项] [目标] ...
选项:
  -b, -m                      忽略兼容性。
  -B, --always-make           无条件 make 所有目标。
  -C DIRECTORY, --directory=DIRECTORY
                              在执行前先切换到 DIRECTORY 目录。
  -d                          打印大量调试信息。
  --debug[=FLAGS]             打印各种调试信息。
  -e, --environment-overrides
                              环境变量覆盖 makefile 中的变量。
  -f FILE, --file=FILE, --makefile=FILE
                              从 FILE 中读入 makefile。
  -h, --help                  打印该消息并退出。
  -i, --ignore-errors         Ignore errors from commands. //和-k参数结合使用能够得到所有的编译错误信息
  -I DIRECTORY, --include-dir=DIRECTORY
                              在 DIRECTORY 中搜索被包含的 makefile。
  -j [N], --jobs[=N]          同时允许 N 个任务;无参数表明允许无限个任务,而如果-j后不跟任何数字,则不限制处理器并行编译的任务数,make -j  编的时间大大缩短注意:make -j命令并不是任何情况下都可以用的,在存在编译依赖的情况下,单核编译还是一种比较稳妥的方案。
  -k, --keep-going            当某些目标无法创建时仍然继续。
  -l [N], --load-average[=N], --max-load[=N]
                              在系统负载高于 N 时不启动多任务。
  -L, --check-symlink-times   使用软链接及软链接目标中修改时间较晚的一个。
  -n, --just-print, --dry-run, --recon
                              不要实际运行任何命令;仅仅输出他们
  -o FILE, --old-file=FILE, --assume-old=FILE
                              将 FILE 当做很旧,不必重新生成。
  -p, --print-data-base       打印 make 的内部数据库。
  -q, --question               不运行任何命令;退出状态说明是否已全部更新。
  -r, --no-builtin-rules      禁用内置隐含规则。
  -R, --no-builtin-variables   禁用内置变量设置。
  -s, --silent, --quiet       不显示命令。
  -S, --no-keep-going, --stop
                              关闭 -k。
  -t, --touch                 touch 目标而不是重新创建它们。
  -v, --version               打印 make 的版本号并退出。
  -w, --print-directory       打印当前目录。
  --no-print-directory        关闭 -w,即使 -w 默认开启。
  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE
                              将 FILE 当做最新。
  --warn-undefined-variables  当引用未定义变量的时候发出警告。

在Makefile中,目标名称的指定常常有以下惯例:

all:表示编译所有的内容,是执行make时默认的目标。
clean:表示清除目标。
distclean:表示清除所有的内容。
install:表示进行安装的内容。

CentOS6.9编译安装Node.js8.4

NodeJS需要gcc4.8+以上版本支持,使用gcc --version查看当前gcc版本,centos/rhel6系列默认gcc版本是gcc (GCC) 4.4.7,如果要安装Nodejs就需要升级下gcc版本;

gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

安装基础包:

yum install glibc-devel.i686 libstdc++-devel.i686 glibc-devel libc6-dev-i686 libc6-dev libmpfr-dev libgmp3-dev libmpc-dev flex bison g++-multilib libc6-dev-i686 gmp-devel mpfr-devel libmpc-devel

下载编译安装:gcc4.8.5

wget http://gcc.parentingamerica.com/releases/gcc-4.8.5/gcc-4.8.5.tar.gz
tar xvf gcc-4.8.5.tar.gz
cd gcc-4.8.5
./configure
make
make install

这一步比较耗费时间约1--2个小时左右,安装完以后在安装Nodejs;
下载nodejs、编译、安装:


---阅读剩余部分---

CentOS6下安装GraphicsMagick过程记录

GraphicsMagick号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理图像的读取、写入和操作,支持超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。

通过使用OpenMP可是利用多线程进行图片处理,增强了通过扩展CPU提高处理能力。GraphicsMagick可以再绝大多数的平台上使用,Linux、Mac、Windows都没有问题。

GraphicsMagick支持大图片的处理,并且已经做过GB级别的图像处理实验。GraphicsMagick能够动态的生成图片,特别适用于互联网的应用。可以用来处理调整尺寸、旋转、加亮、颜色调整、增加特效等方面。GaphicsMagick不仅支持命令行的模式,同时也支持C、C++、Perl、PHP、Tcl、Ruby等的调用。事实上,GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是现在他变得更稳定和优秀。

GraphicsMagick官网:http://www.graphicsmagick.org/index.html 目前最新版本为 1.3.26

安装建议:

先解压GraphicsMagick-1.3.26.tar.gz包 ./configure 检查png与jpg的支持情况,如不支持,请安装相应的图片库之后再安装GM服务。
安装一些基础包:

yum install libtool* libpng.x86_64 libpng-devel.x86_64 libpng-static.x86_64

安装常见图片库jpeg及png

建立jpeg安装目录

mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/man
mkdir /usr/local/jpeg6/man/man1

解压安装jpeg

tar xvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
cp /usr/share/libtool/config/config.sub .
cp /usr/share/libtool/config/config.guess .
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
make
make install

64位系统以上两个cp务必执行,否则会报错
make: ./libtool:命令未找到
make: * [jcapimin.lo] 错误 127




---阅读剩余部分---

CentOS7.3编译安装go1.8.1

  go1.8.1下载地址https://golang.org/dl/,这里下载go1.8.1.src.tar.gz和go1.4.3.src.tar.gz,下来以后算下md5哈希和官网比对下,以免被加盐,国内可以用这个地址下载:https://golang.google.cn/dl/

go1.4以上版本安装的时候需先安装下1.4;要么会报错:
##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find /root/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

  开始安装:

yum install gcc glibc-devel -y
tar -C /root/ -xvf go1.4.3.src.tar.gz
mv /root/go/ /root/go1.4
cd /root/go1.4/src
CGO_ENABLED=0 ./make.bash

  约1分钟左右安装完成,设置下环境变量并重新加载

---阅读剩余部分---

最新

分类

归档

评论

其它