前提:
配置硬盘raid并安装liunx系统
配置网卡, 搭建网络通透性
关闭SELinux
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。
很多 Linuxer 嫌麻烦或者其他服务的权限问题, 都把 SELinux 关闭了...
所以:
SElinux状态关闭
setenforce 0 临时关闭
永久关闭:
/etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能生效
配置yum源与合理dns
如果yum安装软件报错:curl#6 - "Could not resolve host: mirrorlist.centos.org; Temporary failure in name resolut
dns解析的问题,处理办法:
vim /etc/resolv.conf 加入:
nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain
配置合理yum源
yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
另外,如果还没解决, 请检查是否开启了一些网卡有申明DNS解析, 但是没有实际使用, 将其关闭
使用firewall进行安全维护
用firewall(6为iptables)管理端口和安全域.
/usr/lib64/ 为各软件模块加载路径
/usr/share/ 为各软件日志生成路径
/var/log 为系统日志和mysql日志
开始配置LAMP
一、安装php56并开启拓展
以下拓展视情况开启, 会消耗额外内存。
yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-bcmath php-bz2 php-calendar php-Core php-ctype php-curl php-date php-dom php-ereg php-exif php-fileinfo php-filter php-ftp php-gd php-gettext php-hash php-iconv php-igbinary php-json php-ldap php-libxml php-mbstring php-mcrypt php-memcache php-memcached php-mhash php-msgpack php-mysql php-mysqli php-mysqlnd php-odbc php-openssl php-pcntl php-pcre php-PDO php-pdo_mysql php-PDO_ODBC php-pdo_sqlite php-Phar php-posix php-radius php-readline php-redis php-Reflection php-session php-shmop php-SimpleXML php-soap php-sockets php-SPL php-sqlite3 php-standard php-sysvmsg php-sysvsem php-sysvshm php-tokenizer php-wddx php-xml php-xmlreader php-xmlrpc php-xmlwriter php-xsl php-Zend OPcache php-zip php-zlib
安装后配置文件位于:
php.ini位于 etc目录, php安装目录位于
php so模块目录 /usr/lib64/php/modules
php线程安全版安装路径 /usr/include/php-zts/php
php默认版本安装路径 /usr/include/php
二、安装apache并配置ssl与vhost
----需要定制一下httpd.conf文件
yum -y install httpd*
---开启ssl拓展, 支持https访问, 如果需要其他内部拓展, 在httpd.conf中开启即可, 第三方拓展也需要yum安装
yum install mod_ssl
---额外配置ssl.conf与httpd-vhosts.conf加入/etc/httpd/conf.d 文件夹
安装后配置文件位于:
/etc/httpd/conf/httpd.conf # 主配置文件
/etc/httpd/conf.d 拓展项配置文件夹
/var/www/html # 默认网站家目录
三、安装mysql5.7
安装mysql 版本5.7.20 :https://blog.csdn.net/z13615480737/article/details/78906598 [----需要定制一下my.cf文件]
cd /usr/local/src/
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-server
配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
启动后查看默认密码:
grep 'temporary password' /var/log/mysqld.log
修改默认密码
强烈建议复杂度符合mysql标准的, 否则一旦被弱口令攻破就完了。
mysql -u root -p -h 127.0.0.1
重设密码:
SET PASSWORD = PASSWORD('your password');
flush privileges;
配置本主机数据库允许远程连接:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'0.0.0.0' IDENTIFIED BY 'your password' WITH GRANT OPTION;
flush privileges;
定制my.cnf来配置mysql的参数:
例如在[mysqld]中加入以下进行优化:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE
,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
innodb_buffer_pool_dump_at_shutdown = 1
innodb_buffer_pool_load_at_startup = 1
配置允许访问的ip和使用的密码
配置数据库允许云服务器远程访问的规则, 从而防止未知数据库远程连接:
登录XSHELL, 使用以下命令登录MYSQL:
mysql -u root -p -h 127.0.0.1
输入密码
如果之前服务器配置过允许远程访问,使用以下命令限制关闭远程连接。
use mysql;
update user set host = "localhost" where user = "root" and host= "%";
flush privileges;
增加对应ip能够登录的用户名和密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip.ip.ip.ip' IDENTIFIED BY 'your password' WITH GRANT OPTION;
flush privileges;
查看目前拥有权限连接mysql的ip和用户
select user, host from user;
删除对应用户的ip登录
Delete FROM user Where User='root' and Host='119.129.70.243';
四、安装phpmyadmin
安装phpmyadmin 版本4.6 :https://www.jb51.net/article/143548.htm
更改配置 i]['host'] 密码设置和mysql密码一致
切换中文: https://www.cnblogs.com/hailexuexi/archive/2010/07/18/1780217.html
PHP7以上安装: https://www.cnblogs.com/sunshine-H/p/9592668.html
五、配置运维脚本
配置自动化脚本运行环境
yum install expect
配置自动化运维脚本:
- 1、服务停止自启动 /var/serviceStatus + crontab
- 2、数据库自动备份 /var/mysqlbackup + crontab
- 3、日志过多自动删除
- 4、自动拉取码云代码的机制(可选)
- 5、文件自拷贝(可选)
六、防火墙配置
firewall-cmd --permanent --add-service=http 添加web服务入防火墙
firewall-cmd --permanent --add-service=mysql 添加数据库服务入防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent 开放web端口
firewall-cmd --zone=public --add-interface=em1 --permanent
firewall-cmd --zone=public --add-interface=em2 --permanent
firewall-cmd --zone=public --add-interface=em3 --permanent 所有网卡都使用public安全域
防火墙改动后需要重启
systemctl restart firewalld.service
七、配置自启动
systemctl enable firewalld.service
systemctl enable mysqld.service
systemctl enable httpd.service
异常
mysql没有生成默认密码
解决:https://www.cnblogs.com/kynewu/p/8995749.html
修改mysql配置文件使其可以无密码登录,让后修改密码,之后便复原配置文件
使用新密码登录后,报错:You must reset your password using ALTER USER statement before executing this statement.
解决:(降低密码复杂度)
set global validate_password_policy=0;
(2019年3月4日---执行该命令出错:mysql启动时没有加载validate_password插件,重启解决,另外,本插件已在8.0废弃)
网友评论