利用linux+nginx+php-fpm+mysql搭建网站并能够运行php代码,连接数据库并执行mysql语句。
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum -y install epel-release
yum -y install nginx
网站路径:/usr/share/nginx/html
nginx配置:/etc/nginx/nginx.conf
设置自启动:systemctl enable nginx.service
修改配置文件,去掉前面的注释即可解析php文件:
重启:service resrat nginx
访问首页查看安装情况:
PHP-FPM的出现是为了解决两个问题:
1.传统php-cgi变更php.ini配置后需要重启php-cgi才能让新的php-ini生效,不可以平滑启动。
2.php-cgi进程终止,php服务也会被迫终止。
同步源:
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
搜索php-fpm版本:
yum search all php-fpm
卸载原版本依赖性:
yum remove php php-fpm php-common
安装7.0版本及其扩展
yum install php70w php70w-fpm php70w-cli php70w-common php70w-devel php70w-gd php70w-pdo php70w-mysql php70w-mbstring php70w-bcmath php70w-xml php70w-pecl-redis php70w-process php70w-intl php70w-xmlrpc php70w-soap php70w-ldap php70w-opcache
开启服务
systemctl start php-fpm
设置开启自启动
systemctl enable php-fpm
关闭服务
killall php-fpm
重启
php-fpm -R
在/usr/share/nginx/html
创建文件,内容为
并访问查看php解析情况
下载MySQL安装包
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用yum安装
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装MySQL服务器
yum -y install mysql-community-server --nogpgcheck
#nogpgcheck表示不验证密钥,不然会报错,当然你也可以使用官方带的mariadb
启动MySQL
systemctl start mysqld.service
查看运行状态
systemctl status mysqld.service
查找root密码
grep "password" /var/log/mysqld.log
进入数据库
mysql -u root -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Cdbc@123..';
# 将root密码修改为xxxx,强度一定要够,包含数字大小写和特殊字符,不然会出现不安全提示,密码也无法修改成功。
开启远程访问
grant all privileges on . to 'root'@'192.168.31.1' identified by 'password' with grant option;
#192.168.31.1 表示仅允许远程访问的地址,如果需要全部允许将地址替换为 %
刷新权限配置
flush privileges;
退出数据库
exit
防火墙添加开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载防火墙
firewall-cmd --reload
远程访问测试
此次测试使用的是Navicat,MySQL访问需要安装客户端。
端口安全:仅开放需要使用的端口。
主机漏洞:使用goby扫描确保无重大安全漏洞
基线检查:满足安全基本需求,使用github脚本自动化扫描发现基本通过。
口令安全:不用弱口令,可以使用密钥登录。
口令安全:防止弱口令
端口安全:可以修改mysql默认的3306端口
上线前做安全检测,可以使用awvs/xray进行扫描。
搭建靶场环境对公开放可以使用401基础认证设置,防止被恶意攻击。
nginx有解析漏洞,属于配置问题,默认很难利用,配置灵活轻巧,是个不错选择。
后期可以使用docker\phpstudy等集成环境。