美文网首页
liunx搭建并优化LAMP运行环境全步骤

liunx搭建并优化LAMP运行环境全步骤

作者: LittleTrue | 来源:发表于2020-01-29 15:12 被阅读0次

前提:

配置硬盘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使用介绍参考

用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

更改配置 cfg['Servers'][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废弃)


相关文章

网友评论

      本文标题:liunx搭建并优化LAMP运行环境全步骤

      本文链接:https://www.haomeiwen.com/subject/sfgamctx.html