Fedora、CentOS或RHEL安装Go语言

基于 Red Hat 的 Linux 发行版本都可以使用 yum 命令来进行安装

sudo yum install golang

要查看当前系统安装的 Go 语言版本可以使用如下命令:

go version

接下来还是在 Home 目录(例如 ~/go)创建一个 go 目录并定义 GOPATH 环境变量指向该目录,这个目录将被 Go 工具用于保存和编辑二进制文件。

mkdir ~/go
echo ‘export GOPATH=”$HOME/go”‘ >> ~/.bashrc
source ~/.bashrc

根据不同的需要,我们可以使用 yum 安装 Go tools:

yum search golang

 

Ubuntu、Debian或Linux Mint安装Go语言

基于 Debian的 Linux 发行版本都可以使用 apt-get 命令来进行安装:

sudo apt-get install golang

要查看当前系统安装的 Go 语言版本可以使用如下命令:

go version

由于 Go 代码必需保存在 workspace(工作区)中,所以我们必需在 Home 目录(例如 ~/go)创建一个go 目录并定义 GOPATH 环境变量指向该目录,这个目录将被 Go 工具用于保存和编辑二进制文件。

mkdir ~/go
echo ‘export GOPATH=”$HOME/go”‘ >> ~/.bashrc
source ~/.bashrc

根据不同的需要,我们可以使用 apt-get 安装 Go tools:

sudo apt-cache search golang

搬家到GCP Centos 7 (SELinux)日志:

系统环境:Centos 7
selinux:开启
Apache:2.4
PHP :5.4
Mysql:GCP 云SQL

GCP目标系统基础运行LAMP环境搭建:

yun -y install httpd php php-gd php-mbstring php-mysql wget unzip zip nano
可选组件安装:
yun -y install php-opcache php-devel php-mcrypt php-pdo php-fpm php-xml php-common

接着开始网站搬家

1、备份数据库。

借助帝国备份王备份数据库:http://ebak.phome.net/

2、打包网站。

使用zip命令打包网站以及备份数据库文件
zip -q -r www.zip /var/www/
格式:zip 参数 压缩包名字 压缩文件夹目录
然后mv移动压缩包文件到你网站根目录。

3、转移打包文件。

mkdir创建一个临时目录,并进入
使用wget http://clin003.com/www.zip (记得域名替换为自己的)

4、解压。

unzip www.zip

5、导入数据库。

使用帝国备份王,恢复备份的数据库

6、测试网站。

如果只有一个网站,并且使用了默认网站目录,那么到此基本没有什么问题,一切顺利。

……

遇到Selinux之文件属性问题

然而如果你爱折腾,使用了非默认网站目录,那么可能会发现,从上一步开始,怎么搞也是
(13)Permission denied AH00035

[core:error] [pid 1519] (13)Permission denied: [client 1.11.21.21:19224] AH00035: access to /index.html denied (filesystem path '/clin003.com/index.html') because search permissions are missing on a component of the path

这个看上去很容易解决,不就是没权限么!
排查顺序如下:
cd /clin003.com/
ls -l index.html
chmod 644 index.html

然后
ls -la
chmod +x .

重启httpd服务。
问题依旧Permission denied

经过Google,翻阅文档:(13) Permission Denied
最终找到解决办法
那就是selinux开启的情况下。
ls -alZ
查看文档权限属性
通过对比默认目录和自定义目录,发现问题
[gcp@clin003.com]$ ls -alZ
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x. root root system_u:object_r:var_t:s0 ..
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html
[gcp@clin003.com]$ ls -alZ
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
-rw-r–r–. root root unconfined_u:object_r:default_t:s0 index.html
通过对比可以发现同样的owner属性,实际的安全属性却不同
那么解决的办法就是给自定义目录及目录下文件添加“httpd_sys_content_t”属性,命令如下:
chcon -R -t httpd_sys_content_t /clin003.com

遇到Selinux之php语法错误问题解决方法

Parse error: syntax error, unexpected end of file in *.php on line *

这个比较容易解决,定位到目标行后发现是php结尾处错误!检查php.ini配置文件

找到short_open_tag

把short_open_tag = off 改为 short_open_tag = on

开启段标签模式就可一解决。

 

遇到Selinux之PHP连接MySQL出现 Can’t connect to MySQL server 的解决方法

问题情景,命令行mysql客户端可以连接成功,网站php连接不成功。

无论是指定IP、端口的tcp/ip方式连接,或者是用unix socket方式连接,报错信息都类似:

Could not connect: Can't connect to MySQL server on 'MYSQL.SERVER' (13)

php.ini配置文件,php mysql组件,防火墙均检查没问题。

最终把目标盯在SElinux

getsebool -a|grep -i httpd

可以看到这里设置了httpd进程的许可模式,再仔细看一下,有一个选项:

getsebool -a|grep -i httpd_can_network_connect
httpd_can_network_connect --> off

原来是SELinux限制了httpd对外访问的权限。将其开启即可:

setsebool -P httpd_can_network_connect=1

如果对SELinux不熟悉,也可以直接修改系统配置文件 /etc/sysconfig/selinux,全局关闭SELINUX!

#SELINUX=enforcing
#把设置改为disabled
SELINUX=disabled

然后重启操作系统,即可生效。
或者,直接执行命令,可在线生效:
[gcp@clin003.com]# setenforce 0
setenforce: SELinux is disabled

至此,坑已填完,网站已搬家完成!

参考文档:

(13) Permission Denied

https://wiki.apache.org/httpd/13PermissionDenied

SELinux导致PHP连接MySQL异常

https://yq.aliyun.com/ziliao/145002

 

CentOS 使用 yum update 命令不升级内核和系统版本的方法

阿里云9折推荐码 : BKJC2G

特殊需要不可以更新内核和系统版本,方法如下

vi /etc/yum.conf

# 在 [main] 的最后添加:
exclude=kernel* centos-release*
# 按 Esc 键,输入 :wq,然后回车

然后使用yum update 就不会更新 CentOS内核和系统版本了。

PS:

查看系统版本  cat /etc/issue
查看内核版本  uname -a

Centos 5.8 64位 yum 安装 php5.2

由于程序运行环境需要,不得不使用老掉牙的PHP5.2以下版本。

下面提供两种方法安装PHP5.2

操作系统: CentOS 5.8 64位(阿里云空间)

1、通过官方下载源码,编译安装
下载地址:http://museum.php.net/php2/

编译安装方法,可以解压后看README文本文件。

2、通过第三方的yum源安装php5.2.17

参考方法:https://webtatic.com/packages/php53/

1)通过rpm -qa |grep php 命令,查看系统已经安装的php软件包
如果有安装,可通过 yum -y remove php* 卸载掉。

2)安装yum库信息 rpm -Uvh http://mirror.webtatic.com/yum/centos/5/latest.rpm
这个安装完成后会在 /etc/yum.repos.d 生成 webtatic.repo 这个配置文件

3)编辑 /etc/yum.conf 排除 5.3,5.4,5.5,5.6版本。
增加这一行:exclude=*5.3.*,*5.3.*,*5.4.*,*5.5.*,*5.6.*

4)安装php

yum –enablerepo=webtatic install php php-mysql php-xml php-gd php-mbstring php-cli

yum –enablerepo=webtatic update php php-mysql php-xml php-gd php-mbstring php-cli

5)使用rpm -qa |grep php 或php -v 查看下php版本是否为php5.2

参考文档 https://webtatic.com/projects/yum-repository/

Centos 5.8 64位 yum 安装 php5.2


https://webtatic.com/packages/php53/

脚本下载地址:centos5-php52

PS:Centos 5.8和centos 5.10官方源中仅为php5.1.6,centos6以上为php5.3。

CentOS 调整默认启动的TTY终端数量,关闭不需要的TTY

CentOS 6.X Linux 系统默认是打开6个控制台,分别可以用 ALT+F1 到 ALT+F6 进行访问,6个控制台默认都驻留在内存中,用 ps -aux 可以查看.

通常我们保留2个控制台就可以了,如果是 VPS 的话,自己不可能物理登录终端,可以全部禁止掉。

CentOS 6.0 开始 TTY 的配置由 /etc/inittab 更改为 /etc/init/start-ttys.conf,执行以下命令可将默认6个 TTY 改为2个:

找到 tty [1-6] 改成 tty [1-2]

先打开 /etc/init/start-ttys.conf

找到 tty [1-6] 改成 tty [1-2]

在打开 /etc/sysconfig/init

找到

ACTIVE_CONSOLES=/dev/tty[1-6]
修改为:

ACTIVE_CONSOLES=/dev/tty[1-2]

如果要临时停止tty终端,可使用 如:
initctl stop tty TTY=/dev/tty6 [停止tty6]。

附:
CentOS5修改配置文件注释禁止启动的TTY即可:

nano /etc/inittab
……
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
……

Centos 5.8 开启apache rewrite(rewrite_module模块),支持.htaccess

系统环境 Centos 5.8
apache 2.2

首先检查一遍 /etc/httpd/conf/httpd.conf 中

#LoadModule rewrite_module modules/mod_rewrite.so

前面去掉#号

若网站是根目录,可以找到:


Options FollowSymLinks
AllowOverride None

将上面的None改为All

若站点不在根目录:

Order allow,deny
Allow from all
AllowOverride All

若网站是虚拟VirtualHost,
可以把上面的
嵌入

格式为:
AllowOverride All

centos-rewrite-htaccess

OK,然后重启服务器,service httpd restart ,这样.htaccess就可以使用了。