标签归档:CentOS

CentOS 7安装PHP 7

由于WordPress新版已经不支持PHP 5.2,必须升级一下,索性升级到现在最新的7.3。 1、卸载旧版本的PHP

yum remove php*

2、安装epel和yum-utils

yum install epel-release yum-utils

3、安装remirepo源

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

4、启用PHP 7.3源

yum-config-manager --enable remi-php73

5、安装上PHP和一些常用的组件

yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql

6、检查版本

php -v

使用xrdp远程连接CentOS桌面

在最小安装的情况下,CentOS是没有桌面的,所以需要先安装GNOME桌面

yum -y groupinstall "GNOME Desktop"

启动桌面环境

startx

安装epel源

yum -y install epel-release

安装xrdp并启动

yum -y install xrdp
systemctl start xrdp
systemctl enable xrdp

如果有防火墙,配置规则允许3389端口或直接关闭防火墙

systemctl stop firewalld

完成后,直接使用windows远程桌面(mstsc)连接即可

设置为默认登录GUI

systemctl set-default graphical.target

设置为默认登录命令行

systemctl set-default multi-user.target

 

参考:CentOS 7安装Gnome GUI 图形界面

阿里云添加swap分区

在阿里云中新建ECS实例时,并不会自动给实例挂载swap分区。如果实例内存较小,很容易发生内存不足的问题。

[root@aliyun ~]# free -m
        total    used    free    shared    buff/cache    available
Mem:      991     233     390         0           367          609
Swap:       0       0       0

为解决问题,我们手动创建swapfile并挂载。首先创建swapfile

dd if=/dev/zero of=/swapfile bs=1M count=1024

创建的swapfile的大小将为bs(块大小) * count(块数量),在这里就是1M * 1024 = 1G。

修改swapfile权限,官方推荐权限为600

chmod 600 /swapfile

将这个文件标记为swap分区

mkswap /swapfile

使swap分区生效

swapon /swapfile

此时,使用free命令已经可以看见swap分区生效了

[root@aliyun ~]# free -m
        total    used    free    shared    buff/cache    available
Mem:      991     233     390         0           367          609
Swap:    1023       0    1023

到fstab文件中让系统引导时自动启动

vim /etc/fstab

在其中加入以下内容

/swapfile none swap sw 0 0

保存退出

接下来,我们对swap分区的使用方式进行优化。在系统中,使用一个叫做vm.swappiness的参数对使用swap分区的积极性策略进行控制,0表示消极使用,100表示积极使用。由于swap分区的IO速度要低于MEM,所以,在VPS中,我们一般采取较为消极的使用方式

这个参数的实际存储路径为

cat /proc/sys/vm/swappiness

由于是在/proc下,即储存于内存中,所以无法使用vi编辑器修改。所以,使用sysctl命令修改,将它的值修改为10

sysctl vm.swappiness=10

最后,修改启动项配置,使这个设置在启动时也生效。修改/etc/sysctl.conf中同名参数值:

vm.swappiness = 10

保存退出,配置完成

参考:How To Add Swap on Ubuntu 14.04

CentOS 7保存iptables规则

使用iptables命令生成的防火墙规则在reboot后会丢失,为了防止这种情况发生,我们需要保存已经生成的规则。

首先关闭firewalld

systemctl disable firewalld

然后安装iptables-services,虽然不安装就能执行命令,但是如果要作为service则需要安装这个包

yum install iptables-services

使iptables服务生效(随系统启动):

systemctl enable iptables

然后,用下面的命令就可以保存之前的规则了

service iptables save

参考:

serverfault: Centos 7 save iptables settings

CentOS 7修改主机名

执行hostnamectl命令,可以看见主机信息:

[root@lixxxx-xx ~]# hostnamectl
   Static hostname: localhost.localdomain
Transient hostname: lixxxx-xx.members.linode.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 4f09fa5fdd3642fa85221d7c11370603
           Boot ID: c49ea73c7c5d4dfa9b0aa0d47d9318ef
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 4.10.1-1.el7.elrepo.x86_64
      Architecture: x86-64

要修改主机名,只需执行以下命令(例如将主机名修改为“centos”)

hostnamectl set-hostname centos

重启生效

CentOS更新yum国内源

这里选择163的源(源地址)。首先备份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载CentOS7的源,并重命名输出到以上目录

cd etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo -O CentOS-Base.repo

运行以下命令生成缓存

yum clean all
yum makecache

执行更新

yum -y update

CentOS添加系统调用及内核编译

一、下载并解压内核源码

从“ http://www.kernel.org/pub/linux/kernel/ ” 下载最新内核源码

~# wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.2.tar.bz2

解压到 /usr/src 目录

~# mv linux-*.tar.bz2 /usr/src
~# tar -jxvf linux-*.tar.bz2

解压后得到内核源码目录“ /usr/src/linux-*/ ”

二、添加新的系统调用

(1)添加源代码

在“ linux-*/kernel/sys.c ” 文件中添加如下源代码

asmlinkage int sys_mycall(int number)
{
    return number;
}

(2)连接新的系统调用

a、修改“ linux-*/arch/x86/include/asm/unistd_32.h ” 这个文件。

在 “ #define ” 语句定义的系统调用清单的最后添加新的系统调用名称

#define __NR_name NNN //NNN代替新系统调用号,注意NR前为双下划线

b、修改“ linux-*/arch/x86/kernel/syscall_table_32.s ” 这个文件。

在文件中的清单后添加

.long sys_mycall

(3)编译新内核

执行以下命令

~# make mrproper  //清理以前的编译痕迹
~# make clean
~# cp /boot/config-`uname -r` .config  //设置内核编译选项
~# make menuconfig  //执行该命令需要ncurses库,如果执行出错则执行如下命令安装ncurses:
~# yum install ncurses-devel
~# make bzImage  //b编辑内核压缩镜像
~# make modules  //编辑内核模块
~# make modules_install  //安装内核模块
~# make install  //安装内核