服务器搭建(CenOS 7 Apache + PHP _Mysql环境(LAMP))
第一步、更换阿里云 yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum update
(查找文件的命令 find / -name "www")
第二步、Apache部分
安装Apache:yum -y install httpd
启动Apache服务:systemctl start httpd
检查Apache服务状态是否running:systemctl status httpd
设置Apache服务自启动守卫:systemctl enable httpd
此时,访问服务器的80端口,应可以看到Apache的默认页。如果不能访问,请检查防火墙设置。Apache的默认网页资源目录是/var/www/html
,默认配置文件位置是/etc/httpd/conf/httpd.conf
。
Firewalld常用命令:
systemctl start firewalld.service #启动防火墙
systemctl stop firewalld.service #停止防火墙
firewall-cmd --state #查看防火墙状态
firewall-cmd --list-ports #查看所有打开的端口
firewall-cmd --add-port=80/tcp --permanent #永久添加80端口例外(全局)
firewall-cmd --remove-port=80/tcp --permanent #永久删除80端口例外(全局)
Firewall配置步骤
输入setenforce 0临时关闭SELINUX 关闭防火墙 systemctl stop firewalld
关闭firewall之后,此时便可以通过浏览器成功访问apache页面了。并且在/var/www/html目录中的所有.html网页都可以通过浏览器访问了。
第三步、MySQL 5.7 部分
安装MySQL及服务器:由于需要下载文件,请在合适的目录下执行下列操作。若系统没有wget
,请先yum install wget
安装之。
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server
启动MySQL服务:systemctl start mysqld.service
检查MySQL服务是否running:systemctl status mysqld.service
设置MySQL服务自启动守卫:systemctl enable mysqld.service
获取MySQL初始随机密码: grep "password" /var/log/mysqld.log
使用该密码进入数据库:mysql -uroot -p
,输入密码进入
执行查询,修改默认密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '[NEWPASSWORD]';
注意,依据安全性政策,过于简单的密码无法通过要求。
可以更改安全性政策,如下:
select 'host' from user where user='root';
此时可能会出现“You must reset your password using ALTER USER statement before executing this statement.”
【解决办法】
MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('你的密码'); MySQL版本5.7.6版本开始的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY '你的密码';
括号里面的你的密码也就是刚才Mysql的初始随机密码
之后:查看 mysql 初始的密码策略
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password_policy=LOW;
这样policy就成了LOW就可以执行修改密码了;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
但是你用SQLmyog等远程连接数据库可能失败,显示 1130,ERROR 1130: Host http://xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server
在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'即可
mysql -u root -p
mysql;use mysql;
mysql;select 'host' from user where user='root';
mysql;update user set host = '%' where user ='root';
mysql;flush privileges;
mysql;select 'host' from user where user='root';
就可以了;
如果出现access denied的原因有如下可能:
1)mysql的服务器停止: 若MySQL已经没有启动,重启MySQL服务器:systemctl restart mysqld 2)用户的端口号或者IP导致: 若用户的端口号与IP(3306/3307)不一致,打开my.ini文件进行编辑。全部编辑替换为: port=X 3)mysql的配置文件错误----my.ini等文件: my.ini文件误输入无效内容,不知道到何处。复制替换该文件;有人已经对my.ini文件进行解释以及注释:https://blog.csdn.net/lienfeng6/article/details/78140404 4)root用户的密码错误(后面解决)
第四步、PHP部分
1,安装之前先卸载虚拟机上其他版本的PHP
yum -y remove php* 2,由于linux的yum源不存在PHP7.x,所有我们要改yum源(两条命令)
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 3,安装PHP及其扩展,比如安装php7.2 yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
4,安装成功之后,开启PHP服务:
-
systemctl enable php-fpm.service
-
systemctl start php-fpm.service
5,开启服务后,试着运行一下PHP代码,输出一行当前时间戳:
php -r "echo time();"
6,运行php -m看当前PHP安装的扩展有哪些,如果有需要的扩展没安装,比如要安装redis扩展,可以先用search命令查看此版本的PHP所有扩展服务名:
yum search all php72w
上图红框内是redis扩展的名称,接下来使用yum安装:yum install后面加上扩展名称。
yum install php72w-pecl-redis.x86_64
安装完毕后,再php -m查看当前已安装的扩展:
redis扩展已经安装成功,其他的扩展都是这样;相比较编译安装这种安装方式简直太舒服。
防火墙和端口设置
对于服务器操作系统来说,对外暴露一些不必要的端口都是非常危险的。因此,在管理服务器的时候,知道开放了哪些服务器端口对于运维人员来说算是一项基本技能。下面我们来看看,怎么知道服务器开放了哪些端口。
工具/原料
-
CentOS7
一、在本机上查看
-
在CentOS主机上查看当前主机在监听哪些端口的命令是netstat,常用的命令是:
netstat -tlunp
这个命令会显示出当前主机打开的所有端口,显示结果如下所示,从图中可以看到目前主机上开放的端口tcp端口的22和25,upd的68号端口
-
而端口名称后面关联了对应的进程名称,如下面图中所示。这里需要注意的是,如果你的服务器是公网服务器,你在公网上开放了22号端口,那么你的主机就会被公网上很多扫描器扫描,然后尝试爆破你的账号密码,来黑掉你的服务器。解决方法一般是通过修改特定服务监听的端口,如下面第二张图中所示,修改后的sshd进程监听的端口有22和63213端口,那么我把这个端口暴露出去,被扫描的纪律就小很多了。
-
上面这个命令查看的是服务器上的进程对外监听的端口,但是在CentOS7中,默认会打开firewalld防火墙,如果防火墙打开后,默认情况下只会监听在22号端口,也就是说主机对外暴露的端口只有22。如下面图中所示,查看防火墙开放端口的命令是
iptables-save
结果如下面第二张图中所示:
-
如果想增加对外开放的端口,就需要通过防火墙的管理命令firewalld-cmd,例如我想开放80端口,那么命令就是:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
第一条命令是添加端口,第二条命令是重载防火墙。
-
看到sucess字样后,再使用iptables-save命令查看端口,可以看到,对外放开的端口增加了80.
1、开放端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口
firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口
firewall-cmd --reload # 配置立即生效
2、查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
Http没有效应直接显示源码
1.apache没有添加对应的php类型,所以不支持php的脚本解析
解决办法:在配置文件中添加对应类型
找到apache配置文件:知道位置的自己去找,不知道位置的试试使用find命令
在根目录下执行:#find / -name "httpd.conf"
修改httpd.conf在文件中添加一行内容:AddType application/x-httpd-php .php
2.没有加上针对php的索引,如果没有该索引的支持,则无法解析用php编写的网页
解决办法:在配置文件中添加对应索引
找到配置文件方法同上,找到DirectoryIndex index.html
改为DirectoryIndex index.html index.htm index.php 即可
标签:CenOS,--,Mysql,端口,LAMP,yum,mysql,php,php72w From: https://www.cnblogs.com/subodong/p/16776764.html