删除 Linux 命令历史记录

1. 清除当前 Xshell 的历史纪录

  • 此操作只会当前 Xshell 或类似终端命令工具的历史记录(包含其他终端已输入的命令记录)
  • 键入命令:history -c

2. 彻底删除命令历史记录文件

  • Linux 中存放历史命令的文件是.bash_history,清空该文件 (echo > /root/.bash_history),历史命令就会彻底被清空。
  • 键入命令:echo > /root/.bash_history

3. 删除部分节点历史记录

  • 打开命令记录文件修改并保存实现删除部分记录
  • 键入命令:vim ~/.bash_history #删除所需记录后 :wd 退出;
  • 键入命令:history -r #重置并更新历史记录缓存文件。

Centos 7.x 防火墙管理

0、设置 firewall 开机自启

systemctl enable firewalld.service

 

1、查看 firewall 服务状态

systemctl status firewalld

 

2、查看 firewall 的状态

firewall-cmd --state

 

3、开启、重启、关闭、firewalld.service 服务
# 开启

service firewalld start

# 重启

service firewalld restart

# 关闭

service firewalld stop

 

4、查看防火墙规则

firewall-cmd --list-all 

 

5、查询、开放、关闭端口
# 查询端口是否开放

firewall-cmd --query-port=8080/tcp

# 开放 80 端口

firewall-cmd --permanent --add-port=80/tcp

# 移除端口

firewall-cmd --permanent --remove-port=8080/tcp

# 重启防火墙 (修改配置后要重启防火墙)

firewall-cmd --reload

 

Linux 踢出其他终端登录的会话

命令格式:
[root@localhost ~]# pkill [-t 终端号] 进程名

pkill 命令常用信号及其含义
信号编号 信号名 含义
0 EXIT 程序退出时收到该信息。
1 HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2 INT 表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号。
3 QUIT 退出。
9 KILL 杀死进程,即强制结束进程。
11 SEGV 段错误。
15 TERM 正常结束进程,是 kill 命令的默认信号。

 

命令实例:
1、使用 who 或 w 命令查询当前已经登录的会话;

who
hxx pts/0 2019-10-06 19:52 (1.2.3.4)
hxx pts/1 2019-10-06 21:22 (2.3.4.5)

 

2、使用 tty 命令查询自己的对应记录;

tty
/dev/pts/1

 

3、已知自己是 pts1,所以要踢出另外一个 tty0 的会话;

skill -KILL -v pts/0
pts/0 hxx 2471 bash

 

3.1、最新命令是 pkill -9 -t pts/0;

pkill -9 -t pts/0

 

4、查询是否已经成功踢出 pts0;

who
hxx pts/1 2019-10-06 21:22 (2.3.4.5)

 

Linux 发行版

Debian ▪ Debian ▪ Ubuntu ▪ Linux Mint
▪ Knoppix ▪ MEPIS ▪ Sidux
▪ CrunchBang Linux ▪ Chromium OS ▪ Google Chrome OS
Red Hat ▪ Red Hat Enterprise Linux ▪ Fedora ▪ CentOS
▪ Scientific Linux ▪ Oracle Linux
Mandriva ▪ Mandriva Linux ▪ PCLinuxOS ▪ Unity Linux
▪ Mageia
Gentoo ▪ Gentoo Linux ▪ Sabayon Linux ▪ Calculate Linux
▪ Funtoo Linux
Slackware ▪ Slackware ▪ Zenwalk ▪ VectorLinux
/ ▪ openSUSE ▪ Arch Linux ▪ Puppy Linux
▪ Damn Small Linux ▪ MeeGo ▪ Slitaz
▪ Tizen ▪ StartOS

Linux 执行 History 下的命令

当你在 shell(控制台、终端随便叫)中输入并执行命令时,shell 会自动把你的命令记录到历史列表中,
一般保存在用户目录下的 .bash_history 文件中。默认保存 1000 条,当然你可以更改这个值。

使用 history 命令来显示列表,可以跟一个整数表示希望显示最后的多少条命令。如下:
$  history 10
526  ls web/
527  clear
528  ls -a
529  history 10
530  date
531  make -v
532  sudo apt-get –help
533  history 10
534  gcc -v
535  history 10

每条命令前都有一个序号标示,你可以使用下面的方法回忆出以前执行过的命令。

!n    这个 n 表示序号,假如你想重新执行第 528 条命令 ls -a,那么你可以使用 !528

!!     这将会重新执行上一条命令

!?String?   这个 String 可以随便输,Shell 会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。
比如你输入 !?gc? 那第 534 条命令 gcc -v 就会执行。

fc n    这个 n 表示某个历史命令的序号,这将打开一个文本编辑窗口并显示这条命令。然后你可以编辑修改这条命令,
让它满足你的需要。当你退出这个编辑窗口时,该命令就会得到执行。

CentOS 6.8 禁止 root 用户通过 SSH 远程登录

1、创建一个名为 ss 的普通用户并追加设置密码:adduser ss ; passwd ss
2、编辑 SSH 配置:vi /etc/ssh/sshd_config
使用 “/” 查找 PermitRootLogin 字段,将后面的 yes 改为 no 并将删除字段前面的 “#” 标识,使其生效;
3、重启 SSH 配置,使配置生效:service sshd restart
# 这个配置后,系统就不能直接使用 root 用户远程登录。登录方式由普通用户登录后使用 “su” 切换到 root 用户。

CentOS 6.8 修改 SSH 的默认 22 端口

1、编辑防火墙配置:vi /etc/sysconfig/iptables
在原来的默认 22 端口下方添加计划要修改的端口防火墙条目,比如要修改为 2233
-A INPUT -m state –state NEW -m tcp -p tcp –dport 2233 -j ACCEPT
2、重启防火墙,使配置生效:service iptables restart
3、备份 SSH 端口配置文件
cp /etc/ssh/ssh_config /etc/ssh/ssh_configbak
cp /etc/ssh/sshd_config /etc/ssh/sshd_configbak
4、在以下配置文件中的端口 #Port 22 下面增加 Port 2233
vi /etc/ssh/ssh_config
vi /etc/ssh/sshd_config
# 当修改配置为其他端口后,默认的 22 端口将自动变为不可访问,因为 22 端口默认前面就加了 “#” 标识,为了避免出问题无法连接,可先将 22 端口前面的 “#” 标识删除,保持 22 和 2233 都可以访问,到后面正式使用 2233 正常后再将 22 端口禁用。
5、重启 SSH 配置,使配置生效:service sshd restart
6、修改并重启配置服务后,使用 2233 端口测试连接,成功连接后把 22 端口注释。

使用防火墙具有什么优点,有什么作用?

一、什么是防火墙:
防火墙就是一个位于计算机和它所连接的网络之间的软件。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。

二、防火墙的作用是什么:
防火墙作为内部网与外部网之间的一种访问控制设备, 常常安装在内部网和外部网交界点上。防火墙具有很好的网络安全保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等,但至少这是你自己的保护选择。主要作用
1、Internet 防火墙可以防止 Internet 上的危险 (病毒、资源盗用) 传播到网络内部;
2、能强化安全策略;
3、能有效记录 Internet 上的活动;
4、可限制暴露用户点;
5、它是安全策略的检查点。

三、防火墙的优点:
1、防火墙能强化安全策略
因为 Internet 上每天都有上百万人在那里收集信息、交换信息,不可避免地会出现个别品德不良的人,或违反规则的人,防火墙是为了防止不良现象发生的” 交通警察”,它执行站点的安全策略,仅仅容许” 认可的” 和符合规则的请求通过。
2、防火墙能有效地记录 Internet 上的活动
因为所有进出信息都必须通过防火墙,所以防火墙非常适用收集关于系统和网络使用和误用的信息。作为访问的唯一点,防火墙能在被保护的网络和外部网络之间进行记录。
3、防火墙限制暴露用户点
防火墙能够用来隔开网络中一个网段与另一个网段。这样,能够防止影响一个网段的问题通过整个网络传播
4、防火墙是一个安全策略的检查站
所有进出的信息都必须通过防火墙,防火墙便成为安全问题的检查点,使可疑的访问被拒绝于门外。

四、防火墙的缺点与不足:
1、防火墙可以阻断攻击,但不能消灭攻击源。
“各扫自家门前雪,不管他人瓦上霜”,就是目前网络安全的现状。互联网上病毒、木马、恶意试探等等造成的攻击行为络绎不绝。设置得当的防火墙能够阻挡他们,但是无法清除攻击源。即使防火墙进行了良好的设置,使得攻击无法穿透防火墙,但各种攻击仍然会源源不断地向防火墙发出尝试。例如接主干网 10M 网络带宽的某站点,其日常流量中平均有 512K 左右是攻击行为。那么,即使成功设置了防火墙后,这 512K 的攻击流量依然不会有丝毫减少。
2、防火墙不能抵抗最新的未设置策略的攻击漏洞
就如杀毒软件与病毒一样,总是先出现病毒,杀毒软件经过分析出特征码后加入到病毒库内才能查杀。防火墙的各种策略,也是在该攻击方式经过专家分析后给出其特征进而设置的。如果世界上新发现某个主机漏洞的 cracker 的把第一个攻击对象选中了您的网络,那么防火墙也没有办法帮到您的。
3、防火墙的并发连接数限制容易导致拥塞或者溢出
由于要判断、处理流经防火墙的每一个包,因此防火墙在某些流量大、并发请求多的情况下,很容易导致拥塞,成为整个网络的瓶颈影响性能。而当防火墙溢出的时候,整个防线就如同虚设,原本被禁止的连接也能从容通过了。
4、防火墙对服务器合法开放的端口的攻击大多无法阻止
某些情况下,攻击者利用服务器提供的服务进行缺陷攻击。例如利用开放了 3389 端口取得没打过 sp 补丁的 win2k 的超级权限、利用 asp 程序进行脚本攻击等。由于其行为在防火墙一级看来是 “合理” 和 “合法” 的,因此就被简单地放行了。
5、防火墙对待内部主动发起连接的攻击一般无法阻止
“外紧内松” 是一般局域网络的特点。或许一道严密防守的防火墙内部的网络是一片混乱也有可能。通过社会工程学发送带木马的邮件、带木马的 URL 等方式,然后由中木马的机器主动对攻击者连接,将铁壁一样的防火墙瞬间破坏掉。另外,防火墙内部各主机间的攻击行为,防火墙也只有如旁观者一样冷视而爱莫能助。
6、防火墙本身也会出现问题和受到攻击
防火墙也是一个 os,也有着其硬件系统和软件,因此依然有着漏洞和 bug。所以其本身也可能受到攻击和出现软/硬件方面的故障。
7、防火墙不处理病毒
不管是 funlove 病毒也好,还是 CIH 也好。在内部网络用户下载外网的带毒文件的时候,防火墙是不为所动的 (这里的防火墙不是指单机/企业级的杀毒软件中的实时监控功能,虽然它们不少都叫 “病毒防火墙”)。

正确删除软件链接的方式 rm -rf symbolic_name

举例:创建一个目录并在该目录下创建文件后建立软件链接

#mkdir test_chk
#touch test_chk/test.txt 
#ln-s test_chk  test_chk_ln 
// 由 test_chk_ln 链接 test_chk

 
正确的删除方式

rm -rf  test_chk_ln // 删除软链接,但不删除实际数据

 
错误的删除方式

rm -rf  test_chk_ln/ //这样就会把原来 test_chk 下的内容删除

// 两者只说明一个是删除文件(快捷方式),一个是删除目录(快捷方式后的实际目录),带 “/” 和 不带 “/” 的差别这么大!

CentOS 6.8 配置 LNMP(Linux+Nginx+PHP5+MySQL)

1、使用 yum 直接安装 Nginx

[root@hexingxing ~]#  yum install -y nginx
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Determining fastest mirrors
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.nwsuaf.edu.cn
No package nginx available.
错误:无须任何处理

## 系统不能直接 yum install nginx,判断可能 yum 源有问题

2、下载 Nginx 源

[root@hexingxing html]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
Retrieving http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
warning: /var/tmp/rpm-tmp.KcjpHW: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...                ########################################### [100%]
1:nginx-release-centos   ########################################### [100%]

##下载成功

3、查看 Nginx 源是否下载成功

[root@hexingxing ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Vault.repo  nginx.repo

## 在/etc/yum.repos.d/ 存在 nginx.repo 文件,那么可以安装了,为了确认是否可安装,先查看下 Nginx 的软件信息

4、查看 Nginx 软件信息

[root@hexingxing html]# yum info nginx
已加载插件:fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: centos.ustc.edu.cn
nginx                                                                                                                                                     | 2.9 kB     00:00
nginx/primary_db                                                                                                                                          |  15 kB     00:00
可安装的软件包
Name        : nginx
Arch        : x86_64
Version     : 1.10.1
Release     : 1.el6.ngx
Size        : 821 k
Repo        : nginx
Summary     : High performance web server
URL         : http://nginx.org/
License     : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
: a mail proxy server.

## 可以获取到 Nginx 的软件信息,说明已经可以安装了

5、安装 Nginx

[root@hexingxing ~]# yum install nginx
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: ftp.sjtu.edu.cn
* updates: centos.ustc.edu.cn
解决依赖关系
--> 执行事务检查
---> Package nginx.x86_64 0:1.10.1-1.el6.ngx will be 安装
--> 完成依赖关系计算

依赖关系解决

=================================================================================================================================================================================
软件包                                 架构                                    版本                                                仓库                                    大小
=================================================================================================================================================================================
正在安装:
nginx                                  x86_64                                  1.10.1-1.el6.ngx                                    nginx                                  821 k

事务概要
=================================================================================================================================================================================
Install       1 Package(s)

总下载量:821 k
Installed size: 2.1 M
确定吗?[y/N]:y
下载软件包:
nginx-1.10.1-1.el6.ngx.x86_64.rpm                                                                                                                         | 821 kB     00:23
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
Warning: RPMDB altered outside of yum.
正在安装   : nginx-1.10.1-1.el6.ngx.x86_64                                                                                                                                 1/1
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
Verifying  : nginx-1.10.1-1.el6.ngx.x86_64                                                                                                                                 1/1

已安装:
nginx.x86_64 0:1.10.1-1.el6.ngx

完毕!

##Nginx 安装完成

6、启动 Nginx

[root@hexingxing ~]# service nginx start
正在启动 nginx:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
[失败]

##发现启动 Nginx 失败,根据以上错误信息,我发现可能是因为之前已安装并启动了 Apache,可能因此而报错,所以我现在停止 Apache 服务

6、停止 Apache

[root@hexingxing ~]# service httpd stop
停止 httpd:                                               [确定]

##停止 Apache

7、启动 Nginx

[root@hexingxing ~]# service nginx start
正在启动 nginx:                                           [确定]

##启动 Nginx 成功

8、访问服务器 IP

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

##访问服务器 IP 出现以上提示,说明 Nginx 已经安装成功并且可用,Nginx 的 Web 默认目录为 /usr/share/nginx/html/ ,可在此目录下放置网站文件,安装了 PHP 后可运行 PHP 网站。

 

到此,Nginx 已经安装成功。如果 Nginx 的 Web 页面不能访问可能还需要配置服务器的防火墙,配置防火墙和继续安装 MySQL 和 PHP ,可以参考何星星之前写的一篇《CentOS 6.8 配置 LAMP(Linux+Apache+PHP+MySQL)环境》。

 

CentOS 6.8 配置 LAMP(Linux+Apache+PHP+MySQL)环境

前期准备

1、配置防火墙,开启 80 端口、3306 端口

[root@hexingxing ~]# vi /etc/sysconfig/iptables #编辑防火墙规则

 

将以下两条记录添加到默认的 22 端口这条规则的下面

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许 80 端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许 3306 端口通过防火墙
[root@hexingxing ~]# cat /etc/sysconfig/iptables #检查配置是否正确,正常的配置如下:

########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
########################################################
[root@hexingxing ~]# /etc/init.d/iptables restart #重启防火墙使配置生效

 

2、关闭 SELINUX

[root@hexingxing ~]# vi /etc/selinux/config
#SELINUX=enforcing #注释掉此行
#SELINUXTYPE=targeted #注释掉此行
SELINUX=disabled #增加此记录
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# shutdown -r now #重启

 

安装服务

一、安装 Apache

[root@hexingxing ~]# yum install httpd #安装 Apache 服务
[root@hexingxing ~]# /etc/init.d/httpd start #启动 Apache

备注:Apache 启动之后如果提示以下错误:

正在启动 httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName

解决方法:

[root@hexingxing ~]# vi /etc/httpd/conf/httpd.conf #编辑 Apache 配置

找到 #ServerName www.example.com:80
修改为 ServerName localhost:80 #这里设置为你自己的域名,如果没有域名,可以设置为 localhost
[root@hexingxing ~]# :wq #保存退出

[root@hexingxing ~]# chkconfig httpd on #设为开机启动
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apache

  

测试服务

在客户端浏览器输入服务器 IP 地址,如果配置正确,可以看到 Apache 相关的配置信息

 

二、安装 MySQL
1、安装 MySQL

[root@hexingxing ~]# yum install mysql mysql-server #安装 MySQL 服务
[root@hexingxing ~]# /etc/init.d/mysqld start #启动 MySQL
[root@hexingxing ~]# chkconfig mysqld on #设为开机启动
[root@hexingxing ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件

 

2、为 root 账户设置密码

[root@hexingxing ~]# mysql_secure_installation  #设置 MySQL 密码
 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):  #初次配置无密码可直接回车,有密码输入密码回车
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n]   #是否设置 root 用户密码,输入 y 并回车或直接回车
New password:   #设置 root 用户的密码
Re-enter new password:   #再输入一次你设置的密码
Password updated successfully!
Reloading privilege tables..
… Success!

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]   #是否删除匿名用户, 生产环境建议删除,所以直接回车
… Success!
 
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]   #是否禁止 root 远程登录, 根据自己的需求选择 Y/n 并回车, 建议禁止
… Success!
 
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]   #是否删除 test 数据库, 直接回车
- Dropping test database…
… Success!
 
- Removing privileges on test database…
… Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]   #是否重新加载权限表,直接回车
… Success!
 
Cleaning up…

All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
 
Thanks for using MySQL!   #最后看到这个提示说明已经配置成功

// 安装 MySQL 简单的记忆:首次配置出现 Enter current password for root (enter for none): 时,无密码可直接回车,后续配置如果有密码输入密码回车;然后根据提示输入 Y,首次配置需要相输入密码和确认密码,第二次即提示是否变换密码;输入 2 次密码,回车;根据提示一直输入 Y;最后出现:Thanks for using MySQL! 即表示成功。

MySql 密码设置完成,重新启动 MySQL:

[root@hexingxing ~]# /etc/init.d/mysqld restart #重启
[root@hexingxing ~]# /etc/init.d/mysqld stop #停止
[root@hexingxing ~]# /etc/init.d/mysqld start #启动

 

三、安装 PHP
1、安装 PHP

[root@hexingxing ~]# yum install php #安装 PHP 服务

 

2、安装 PHP 组件,使 PHP 支持 MySQL

[root@hexingxing ~]# yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt #安装 PHP 组件
[root@hexingxing ~]# /etc/init.d/mysqld restart #重启 MySql
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apache

 

测试服务

[root@hexingxing ~]# cd /var/www/html
[root@hexingxing ~]# vi index.php #编辑一个 phpinfo 的测试页面内容
[root@hexingxing ~]# :wq #保存退出

在客户端浏览器输入服务器 IP 地址,可以看到 PHP 相关的配置信息

调整配置

一、Apache 配置

[root@hexingxing ~]# vi /etc/httpd/conf/httpd.conf #编辑 Apache 配置文件
ServerTokens OS #在 44 行 修改为:ServerTokens Prod(在出现错误页的时候不显示服务器操作系统的名称)
ServerSignature On #在 536 行 修改为:ServerSignature Off(在错误页中不显示 Apache 的版本)
Options Indexes FollowSymLinks #在 331 行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行 CGI 及 SSI,禁止列出目录)
#AddHandler cgi-script .cgi #在 796 行 修改为:AddHandler cgi-script .cgi .pl(允许扩展名为.pl 的 CGI 脚本运行)
AllowOverride None #在 338 行 修改为:AllowOverride All(允许.htaccess)
AddDefaultCharset UTF-8 #在 759 行 修改为:AddDefaultCharset GB2312 (添加 GB2312 为默认编码)
Options Indexes MultiViews FollowSymLinks #在 554 行 修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)
DirectoryIndex index.html index.html.var #在 402 行 修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var #设置默认首页文件,增加 index.php
KeepAlive Off #在 76 行 修改为:KeepAlive On(允许程序性联机)
MaxKeepAliveRequests 100 #在 83 行 修改为:MaxKeepAliveRequests 1000(增加同时连接数)
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# /etc/init.d/httpd restart #重启
[root@hexingxing ~]# rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页

二、PHP 配置

[root@hexingxing ~]# vi /etc/php.ini #编辑
date.timezone = PRC #在 946 行 把前面的分号去掉,改为 date.timezone = PRC
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在 386 行 列出 PHP 可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在 432 行 禁止显示 php 版本的信息
magic_quotes_gpc = On #在 745 行 打开 magic_quotes_gpc 来防止 SQL 注入
short_open_tag = ON #在 229 行支持 php 短标签
open_basedir = .:/tmp/ #在 380 行 设置表示允许访问当前目录 (即 PHP 脚本文件所在之目录) 和/tmp/目录, 可以防止 php 木马跨站, 如果改了之后安装程序有问题,可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/
[root@hexingxing ~]# :wq #保存退出
[root@hexingxing ~]# /etc/init.d/mysqld restart #重启 MySql
[root@hexingxing ~]# /etc/init.d/httpd restart #重启 Apche

PS1:
Apache 解析 PHP,修改 httpd.conf 文件,添加
Addtype application/x-httpd-php .php .phtml
Addtype application/x-httpd-php-source .phps
PS2:
Apache 默认的程序目录是 /var/www/html

测试网站服务页面

在 /var/www/html 目录下新建 html 或 php 文件测试是否可访问