虚拟机中CentOS7中yum方式配置lamp(Apache2.4.6+MariaDB5.5+PHP5.6)环境


最近一直在研究怎么在CentOS7上配置lamp环境,我安装的是 php5.6+Apache2.4.6(CentOS7)+Mariadb5.5,所以就把这一点小小的心得记录下来。

安装 Apache2.4.6(CentOS7默认自带版本)

在安装lamp环境之前,请一定要确保你的系统可以连接网络,因为本人使用的是yum安装方式,且我是在虚拟机中装了CentOS7,对于虚拟机中如何安装CentOS7,我就不过多叙述了,自行百度。
注:安装时都是用 root 权限,不是 root 的请在语句前加 sudo

yum 安装

第一步,在安装之前你需要检查你的系统中是否已经装过Apache,使用以下命令:

# rpm -qa | grep httpd
或者
# rpm -qa httpd  # 该命令同样也可以用来查看Apache的版本号

若您装过Apache,你可以用以下命令查看版本号:

# httpd -v
或者
# rpm -qa httpd

同时,你需要卸载该httpd:

# systemctl stop httpd  # 首先停止httpd服务

然后通过使用 yum -erase 命令进行删除:

# yum -erase httpd.x86_64

第二步,安装

# yum install -y httpd  #  -y 表示这个过程中的所有操作

与Apache有关的相关操作:
启动Apache:

# systemctl start httpd.service  
或者 
# systemctl start httpd

查看Apache状态:

# systemctl status httpd.service 
或者 
# systemctl status httpd

设置开机启动:

# systemctl enable httpd.service 
或者 
# systemctl enable httpd

停止Apache:

# systemctl stop httpd.service 
或者
# systemctl stop httpd

重启Apache:

# systemctl restart httpd.service 
或者
# systemctl restart httpd

第三步,启动防火墙并打开80端口

# systemctl start  firewalld  # 打开防火墙

# 打开80端口
# firewall-cmd --permanent --zone=public --add-port=80/tcp

第四步,打开浏览,输入你的ip地址:
在这里插入图片描述当显示以上界面时,说明你的Apache已经配置成功。

此时你再查看Apache的状态:

# systemctl status httpd

在这里插入图片描述
绿色 active(running)表示正在运行

更多关于防火墙的操作,请转到:https://blog.csdn.net/qq_43206482/article/details/106167338

Apache配置文件的相关配置

1、如何修改默认根目录
当我们安装完Apache之后,默认的网站根目录是 /var/www/html,有的时候我们并不想使用默认的目录,而选择自己新建目录。这里我新建的网站目录为 /home/www

第一步,请删除欢迎页面:

# rm -f /etc/httpd/conf.d/welcome.conf

第二步、在你的 /home 目录下新建一个 www 的目录

# mkdir /home/www

第三步,更改Apache的配置文件:/etc/httpd/conf/httpd.conf

# vi /etc/httpd/conf/httpd.conf

将 DocumentRoot “/var/www/html” 中的路径改为 “/home/www”,然后将 <Directory “/var/www/html”> 中的路径改为 “/home/www”。

然后在 <Directory “/var/www/html”> … …中,将改成这样:

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

在这里插入图片描述
其中,Indexes 是指默认访问的目录的顺序,咱们找到 DirectoryIndex,然后进行配置:
在这里插入图片描述
如果你在网站中加入了虚拟主机,你可以这样配置:
(1)在 httpd.conf 文件中假如你的虚拟主机的路径:

Include conf/httpd-vhosts.conf

在这里插入图片描述

(2)然后在 httpd-vhosts.conf ,你可以这样写:(其中,我使用的是tp5的项目)
在这里插入图片描述

(3)为 /home/www 增加权限:为你的tp5项目添加权限

# chmod -R 775 /home/www/tp5  # 因为在tp5项目中 runtime 所需要的权限比较高。
# chown -R apache:apache /home/www/tp5  # 为目录添加用户组,避免出现禁止访问的情况

有的时候,通过以上的配置我们还是无法正常访问我们的网站,依旧出现禁止访问的情况,我们可以试试下面这个语句,这条命令的意思是说:允许HTTP访问这个目录,至于什么原理自行百度。

# chcon -R -t httpd_sys_content_t /home/www

本来以为所有的都已经配好,但是当我们访问网站的时候,依旧出现了问题(排除掉防火墙的错误设置,端口未打开,网站目录不正确以及输入错误等情况),只能使出终极绝招了,我通过百度了很多方法,其中告诉我最多的方法是:关闭 SELinux 服务。

# setenforce 0  # 将SELinux设置为 Permissive 模式
或者
# setenforce 1  # 将SELinux设置为 Enforcing 模式

通过下面的语句查看SELinux的状态:

# getenforce

原来,httpd服务程序的功能就是让用户能够访问到网站内容,因此让SELinux对网页访问功能肯定是默认允许的,但刚刚把保存网站数据的默认路径修改为了/home/www目录,这似乎就产生问题了,也就是说现在httpd提供的网站服务却要去获取普通用户家目录中的数据了,这个行为触犯SELinux服务的监管项目,这就是问题所在了。

关于更多 SELinux 的内容请自行百度。

以上便配置好了这个Apache的修改默认网站目录的问题。

2、关于Apache其他的配置
(1)隐藏Apache版本号以及其他的信息:在 /etc/httpd/conf/httpd.conf中

# ServerSignature Off

(2)确保禁用httpd跟踪:在 /etc/httpd/conf/httpd.conf中

# TraceEnable off

Trace方法不需要,并且很容易收到滥用,因此禁止
(3)测试一次连接中的多次请求传输之间的时间,如果服务器已经完成一次请求,但一直没有接收到下一次请求,在超过这个参数的值后,服务断开:在/etc/httpd/conf/httpd.conf

# KeepAliveTimeout 15

(4)确保web根目录的选项受到限制,禁止Apache列表显示文件,Options 指令应限于所需的最少选项,强烈建议设置为无。<Directory “apache的路径”> Options Indexes FollowSymLinks ,设置为 Options None,如配置了虚拟机,则 Options None。
(5)查看是否有错误日志的配置:/etc/httpd/conf/httpd/conf,没有则添加

ErrorLog "logs/error_log"

(6)确保KeepAlive已经启用,允许每个客户端重用TCP套接字,较少系统和网络的数量,服务请求所需的资源,提高DOS的抵御性,没有则添加:/etc/httpd/conf/httpd.conf

KeepAlive on

安装MariaDB数据库

在CentOS7下,默认安装的数据库时MariaDB,属于MySql数据库的一个分支,由于MySql数据库已经被别人收购,有闭源的风险,所以我还是安装了MariaDB数据库,不过MariaDB数据库与MySql数据库的语法基本相同

安装

第一步,检测是否已经安装mariadb:

# rpm -qa mariadb

若你并没有安装过数据库,则进行以下操作:

第二步,配置3306端口号:

# firewall-cmd --permanent --zone=public --add-port=3306/tcp

重启防火墙;

# systemctl restart firewalld

第三步,安装

# yum -y install mariadb*

开启mysql服务:

# systemctl start mariadb.service  或者  systemctl start mariadb

设置开机启动mysql服务:

# systemctl enable mariadb.service  或者  systemctl enable mariadb

对数据库进行一些基本设置:

# mysql_secure_installation

初始情况下没有密码,直接回车,他会自动提示你重新设置密码,并且还会有一次确认密码。设置完密码之后是一些其他的基本设置,都是直接 ‘y’ 或者 ‘n’ 就能解决的,对着他的提示就可以设置完成。

在这里插入图片描述
设置密码:
在这里插入图片描述
删除匿名账户,root的远程登录根据自己的需要进行设置,并且删除 test 数据库:
在这里插入图片描述

mysql配置文件的相关配置

1、设置字符集,字符集的设置在 /etc 下:

# vim /etc/my.cnf

2、在 [mysqld] 标签下添加如下的内容:

default-storage-engine = innodb # 使用设置外键、事务等空间
innodb_file_per_table = ON  # 设置独立空间
max_connections = 4096 # 设置最大连接数
collation-server = utf8_general_ci
character-set-server = utf8

在这里插入图片描述
降低SQL注入的风险:在 [mysqld] 中配置

# local-infile = 0

2、编辑 client.cnf文件:

# vi /etc/my.cnf.d/client.cnf

在 [client] 标签下添加如下内容:

default-character-set=utf8

在这里插入图片描述

3、编辑 mysql-clients.cnf 文件

# vim /etc/my.cnf.d/mysql-clients.cnf

在 [mysql] 标签下添加如下内容:

default-character-set=utf8

在这里插入图片描述
4、重启服务:

# systemctl restart mariadb

然后就大概完成了数据库的安装了设置,p后面是密码。

# mysql -uroot -p123456

在这里插入图片描述

出现以上页面,代表你的MariaDB已经安装成功。输入 exit 退出即可。

解决mysql不能进行远程登录的问题

以下一共列举了三种方法
方法一:登录虚拟机中的mysql数据库,更改 " mysql " 数据库里的 " user "表里的 " host "项,将 "localhost"更改为 “%”

# mysql -uroot -p123456
# use mysql;
# update user set host = '%' where user = 'root' and host ='localhost';
# select host, user from user;

此方法不推荐使用!

方法二:直接授权(推荐使用)

从任何主机上使用 root 用户,密码:yourpwd(你的root密码)链接到 mysql 服务器,然后输入以下代码:

mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpwd' WITH GRANT OPTION;
mysql > FLUSH PRIVILEGES;     # 刷新权限

方法三:终极方法
注释 bind-address = 127.0.0.1
找到 mysql.cnf 或 my.cnf
把 bind-address 前面加上 #
即 #bind-address = 127.0.0.1
(由于不同的配置文件中,可能并没有这一条语句,但是想了想,还是把这个方法加上,当做一个了解)

安装php5.6

1、添加CentOS7的epel及remi源:

# yum install epel-release -y
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

2、可以使用 yum list 命令查看可安装的包:

# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php

3、使用 yum install 命令安装 php5.6

# yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common php-redis

4、扩展

# yum -y install mhash mhash-devel mcrypt

如果你的版本已装以上的扩展内容,那么当你执行的时候,最后它会提示 Nothing to do,即没有任何影响。
5、设置开机自启动:

# systemctl restart php-fpm.service 或 systemctl restart php-fpm
# systemctl enable php-fpm.service 或 systemctl enable php-fpm

6、查看php版本

# php -v

7、查看当前安装的包

# yum list installed | grep php

8、个性化配置:
配置php.ini:

# vi /etc/php.ini

找到 /date.timezone,去掉前面的分号

# date.timezone = PRC

9、重启所有服务;

# systemctl restart mariadb.service 或 systemctl restart mariadb
# systemctl restart httpd.service 或 systemctl restart httpd

至此,你的CentOS7的lamp环境已经配好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值