标签: centos

  • centos mariadb 配置忽略大小写

    编辑配置文件:vi /etc/my.cnf,在[mysqld]下面添加lower_case_table_names=1, 保存后,重启mariadb即可。

    重启mariadb:

    systemctl restart mariadb

  • CentOS7 升级 Mysql 到 5.7.32

    升级mysql服务端

    yum update mysql-server

    然后升级数据

    mysql_upgrade -uroot -p

    顺便把客户端版本也升级了

    yum update mysql

    最后用 SELECT @@version; 查看版本。

    注意:我这里是小版本升级,没备份直接升了。如果跨主版本建议先做数据备份再升级。

  • CentOS7.3编译安装PHP7.4.1

    PHP最近发布了最新版本7.4.1,这几天早就想把博客升级到最新版本了,但一直没时间弄。今晚正好没事,就想升级一下,于是开启了一晚上的折腾之路,一直折腾到凌晨3点多才弄好,下面把过程记录一下。


    一、编译前准备

    PHP7.4.1的libzip依赖要求0.11版本以上,由于CentOS7.3自带的是libzip-0.10.1,不满足要求, 所以要先升级libzip。本来在编译PHP7.3的时候,已经源码编译安装过libzip-1.2.0,在PHP7.3的时候可以正常编译通过,但是到了PHP7.4就会报错找不到libzip这个包No package 'libzip' found,怎么编译都不行,试过修改环境变量PATH,试过1.5.2最新版,统统都不行。在这个问题上浪费了大量的时间,通过大量的搜索摸索,最后通过使用第三方源才安装成功。第三方源使用的是remi源,在搜索的过程中,知道这个源用的还挺多的,使用方式如下:

    这种使用remi源升级libzip的这一部分已不是最佳做法,请查看后面2020年3月20的更新。使用remi源安装只能解决这一个版本的问题,到了PHP7.4.2版本以后就编译不通了。

    1. 添加remi源

      rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    2. 使用yum安装libzip5-devel-1.5.2,–enablerepo=remi表示启用remi源

      yum --enablerepo=remi install libzip5-devel-1.5.2-1.el7.remi.x86_64

      经网友留言提示,这里最好使用:

      yum --enablerepo=remi install libzip5-devel

      因为上面那句会由于会更新导致失效。

    这样就安装好了libzip的最新版本,这版本应该足够以后升级PHP使用了。


    2020年3月20日更新:

    可以通过源码安装的形式升级libzip,而不必使用第三方的源,因为到了PHP7.4.2以后,使用remi源安装的libzip,在编译PHP代码的时候,会报错。而使用源码安装的libzip则没有问题。使用源码安装方式如下:

    wget https://nih.at/libzip/libzip-1.2.0.tar.gz
    tar -xvf libzip-1.2.0.tar.gz
    cd libzip-1.2.0
    ./configure && make && make install

    这样安装好了之后,在PHP configure的时候还是找不到我们安装的libzip,解决这个问题的方法有两种:

    第一种,在PHP configure命令的参数最后添加一项PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ 即:

    // 这里只是演示,省略了中间的参数
    ./configure ... PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

    第二种,在编译完libzip-1.2.0之后,紧接着执行一句:

    export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

    这两种都是告知系统,要到/usr/local/lib/pkgconfig/路径中寻找依赖,因为我们编译好的libzip就在这个路径中。到这里,升级libzip完成。


    由于这台服务器之前编译过PHP7.3,一些基础的依赖都已经安装好了,所以这里只针对PHP7.4.1安装两个必要的依赖库,命令如下:
    yum install -y libsqlite3x-devel.x86_64 oniguruma-devel

    基础编译环境的配置完成。


    二、编译

    PHP7.4的configure配置参数有些已经更改,在网上查到已知的变动如下:

    --with-gd 改为 --enable-gd
    --with-freetype-dir 改为 --with-freetype
    --with-jpeg-dir 改为 --with-jpeg
    --with-webp-dir 改为 --with-webp
    --with-xpm-dir 改为 --with-xpm
    --with-libxml-dir 改为  --with-libxml 
    --enable-zip 改为 --with-zip
    --enable-zlib-dir 改为 --with-zlib

    最终的configure命令修改如下:

    ./configure \
    --prefix=/usr/local/php/php74 \
    --enable-gd \
    --with-curl \
    --enable-fpm \
    --enable-cgi \
    --with-openssl \
    --enable-mbstring \
    --with-pdo-mysql \
    --with-zlib \
    --with-zip \
    --with-mysqli \
    --enable-opcache \
    --enable-mysqlnd \
    --with-libxml \
    --with-jpeg \
    --with-freetype \
    --with-pdo-sqlite \
    --with-sqlite3 \
    --enable-cli \
    --enable-shared \
    --enable-exif \
    PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/

    如果之前执行过
    export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
    那么最后一句可以去掉。

    configure完成之后,执行make && make install

    编译安装完成。


    、配置

    把php.ini拷贝到php7.4目录下,当前目录是在PHP7.4.1的源代码目录下。

    cp php.ini-development /usr/local/php/php74/lib/php.ini
    #下面是为了使用service命令来管理 
    cd sapi/fpm
    cp init.d.php-fpm /etc/init.d/php74-fpm
    chmod 755 /etc/init.d/php74-fpm

    这样配置好之后,就可以正确使用service php74-fpm xxx命令了。php74-fpm开机自启动通过编辑/etc/rc.d/rc.local实现:
    vi /etc/rc.d/rc.local

    #!/bin/bash
    touch /var/lock/subsys/local
    /usr/bin/setterm -blank 0 || true
    /etc/init.d/php56-fpm start
    /etc/init.d/php73-fpm start
    /etc/init.d/php74-fpm start
    /etc/init.d/nginx start

    最后需要执行一下ldconfig

    如果使用systemd来管理,可以参照下面的做法:

    cd sapi/fpm
    cp php-fpm.service /lib/systemd/system/php74-fpm.service
    vi /usr/lib/systemd/system/php74-fpm.service
    ProtectSystem=full 改成 ProtectSystem=false 改完后保存退出
    #上面修改了系统服务,要使用这个命令重载系统服务
    systemctl daemon-reload  
    #加入开机启动
    systemctl enable php74-fpm.service
    #启动服务
    systemctl start php74-fpm.service

    配置PHP-FPM:

    cd /usr/local/php/php74/etc
    cp php-fpm.conf.default php-fpm.conf
    cd  /usr/local/php/php74/etc/php-fpm.d
    cp www.conf.default www.conf

    在我的环境中,因为装了多个PHP版本,所以还需要修改下php-fpm的端口,编辑www.conf:
    vi /usr/local/php/php74/etc/php-fpm.d/www.conf

    listen = 127.0.0.1:9000 
    改为 
    listen = 127.0.0.1:9074 

    php.ini的配置,把时区改为东八区,编辑php.ini:
    vi /usr/local/php/php74/lib/php.ini

    date.timezone = "Asia/Shanghai"

    配置mysql的socket,不然连不上数据库

    mysqli.default_socket =
    改为
    mysqli.default_socket = /var/lib/mysql/mysql.sock
    pdo_mysql.default_socket= 
    改为
    pdo_mysql.default_socket= /var/lib/mysql/mysql.sock

    四、扩展安装

    wordpress需要用到imagick扩展,这个扩展之前已经编译过。

    这里再简单记录一下,进入imagick的源代码目录
    cd ~/imagick-3.4.4

    因为以前编译过,所以这里要清除编译缓存重新生成:make clean,不然编译完,执行php -m会看到如下警告信息

    [root@104 bin]# ./php -m
    PHP Warning:  PHP Startup: imagick: Unable to initialize module
    Module compiled with module API=20180731
    PHP    compiled with module API=20190902
    These options need to match in Unknown on line 0

    编译安装,以下命令在 ~/imagick-3.4.4下执行

    /usr/local/php/php74/bin/phpize
    ./configure --with-php-config=/usr/local/php/php74/bin/php-config --with-imagick=/usr/local/imagemagick
    make && make install

    make install后有个路径要记录下,用于配置php.ini中的extension_dir

    Installing shared extensions:/usr/local/php/php74/lib/php/extensions/no-debug-non-zts-20190902/

    在php.ini中配置启用扩展

    extension_dir = "/usr/local/php/php74/lib/php/extensions/no-debug-non-zts-20190902/"
    extension=imagick.so

    最后,启动php74-fpm:service php74-fpm start

    修改本站的nginx的配置文件,把php-fpm的端口改为9074,并重新加载nginx配置文件:service nginx reload

    至此,PHP7.4.1编译安装全部完成,网站可以访问了。

  • centos 编译安装apache httpd

    wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.39.tar.gz
    wget http://mirror.bit.edu.cn/apache/apr/apr-1.7.0.tar.gz
    wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

    解压缩:

    tar -xvf httpd-2.4.39.tar.gz
    tar -xvf apr-1.7.0.tar.gz
    tar -xvf apr-util-1.6.1.tar.gz

    一点文件操作:

    mv apr-1.7.0 httpd-2.4.39/srclib/apr
    mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
    cd httpd-2.4.39

    编译前安装 :

    yum -y install gcc make zlib-devel pcre-devel expat-devel
    
    mkdir /web
    
    mkdir /web/httpd
    
    mkdir  /web/php

    编译命令:

    ./configure --prefix=/web/httpd --with-included-apr --enable-nonportable-atomics=yes --with-z

    编译完成后:

    make
    
    make install
    
    service httpd start
  • centos6.5 通过yum安装nginx 提示 No package nginx available

    centos6.5 通过yum安装nginx 提示 No package nginx available

    解决办法如下:

    需要先安装epel源:

    yum install epel-release

    安装epel源之后,再安装nginx

    yum -y install nginx

    安装完成之后,执行下面的命令来启动nginx:

    service nginx start 
  • CentOS查看进程的内存占用

    CentOS查看进程的内存占用,并按大小排序

    ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

  • ubuntu或centos No package ‘glib-2.0’ found解决办法

    ubuntu或centos No package ‘glib-2.0’ found解决办法

    CentOS:

    在root 下运行 yum install libgnomeui-devel

    ubuntu :

    sudo apt-get install libperl-dev
    sudo apt-get install libgtk2.0-dev

  • centos安装mono

    centos安装mono:

    添加源

    rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
    yum-config-manager --add-repo http://download.mono-project.com/repo/centos/

    安装 mono

    yum install mono

    安装jexus 

    jexus curl jexus.org/5.6.x/install | sh 

  • centos安装LAMP记录

    centos安装LAMP记录

    wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.10.tar.gz
    wget http://mirrors.cnnic.cn/apache/apr/apr-1.5.1.tar.gz
    wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.5.4.tar.gz
    tar -xvf httpd-2.4.10.tar.gz
    tar -xvf apr-1.5.1.tar.gz
    tar -xvf apr-util-1.5.4.tar.gz
    mv apr-1.5.1 httpd-2.4.10/srclib/apr
    mv apr-util-1.5.4 httpd-2.4.10/srclib/apr-util
    cd httpd-2.4.10
    yum -y install pcre-devel.x86_64
    ./configure  --prefix=/web/httpd --with-included-apr --enable-nonportable-atomics=yes --with-z
    make
    make install
    cp /web/httpd/bin/apachectl /etc/init.d/httpd
    vi /etc/init.d/httpd
    #!/bin/sh下加上
    # chkconfig: 35 85 15
    # description: Activates/Deactivates Apache 2.4.10
    chkconfig --add httpd
    chkconfig httpd on

    以下是配置httpd
    vi /web/httpd/conf/httpd.conf
    修改 ServerName 为 127.0.0.1:80

    ———————————————- 以下是PHP

    http://cn2.php.net/distributions/php-5.6.4.tar.bz2
    tar -xvf  php-5.6.4.tar.bz2
    cd php-5.6.4
    yum install libxml2-devel gd-devel libmcrypt-devel libcurl-devel openssl-devel
    ./configure --prefix=/web/php --with-apxs2=/web/httpd/bin/apxs --enable-cli --enable-shared --with-libxml-dir --with-gd --with-openssl --enable-mbstring --with-mcrypt --with-mysqli --with-mysql --enable-opcache --enable-mysqlnd --enable-zip --with-zlib-dir --with-pdo-mysql --with-jpeg-dir --with-freetype-dir --with-curl --without-pdo-sqlite --without-sqlite3
    make
    make install
    cp php.ini-development /web/php/lib/php.ini

    vim /web/php/lib/php.ini
    查找 date.timezone,修改为Asia/Shanghai

    vim /web/httpd/conf/httpd.conf
    查找 AddType application/x-gzip .gz .tgz
    在下一行添加:

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps


    查找DirectoryIndex index.html
    在下一行添加
    index.php

    最后是修改httpd.conf的httpdocs目录,以及支持.htaccess。就不写了。

    —————————————————–以下是MYSQL
    安装yum install mysql mysql-server


    启动 service mysqld start


    配置 /usr/bin/mysql_secure_installation


    开机启动 chkconfig mysqld on


    登录数据库

    mysql -p

    开启root远程访问

    grant all privileges on *.* to 'root'@'%' identified by 'xinyangwu' with grant option;
    
    FLUSH PRIVILEGES;
  • CentOS安装APACHE总结

    不知道你装的是什么系统,就拿比较普遍的CentOS来说吧。
    首先执行yum update更新你的系统,升级后应该是6.6,确保一些库是最新的。

    先说apache,最新版本是2.4。
    进入 http://apache.org/dyn/closer.cgi 到官网找下载包。下载链接里面提供了几个镜像,找一个.cn的点进去(国内的速度快)。比如 http://mirrors.cnnic.cn/apache/

    找到httpd目录点击进入。复制最后一个的下载链接 httpd-2.4.10.tar.gz    http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.10.tar.gz

    然后下载到你的服务器wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.10.tar.gz

    解压 tar -xvf httpd-2.4.10.tar.gz

    然后下载安装 apache所需要的两个包 
    wget http://mirror.esocc.com/apache/apr/apr-1.4.8.tar.gz
    wget http://mirror.esocc.com/apache/apr/apr-util-1.5.2.tar.gz
    这两个有最新版本, 你下载对应的最新的就是。

    解压
    tar -xvf apr-1.4.8.tar.gz
    tar -xvf apr-util-1.5.2.tar.gz

    把依赖包移到apache源码目录下 
    mv apr-1.4.8 httpd-2.4.10/srclib/apr
    mv apr-util-1.5.2 httpd-2.4.10/srclib/apr-util
    cd httpd-2.4.10

    配置编译文件
    ./configure --with-included-apr --enable-nonportable-atomics=yes --with-z
    如果你想安装到指定目录,则加上–prefix=.. 比如  --prefix=/web/apache

    如果你只打算在新式的CPU上运行Apache,你可以在编译时使用 --enable-nonportable-atomics 选项:

    如果你的是新装的服务器,可能需要安装pcre zlib。执行 yum install zlib-devel pcre-devel
    像gcc /g++ make之类的基础工具用阿里云的ECS就不用再装了,你装完以后默认都带了。

    最后是 make -j8 && make install