# linux_init **Repository Path**: jeep-hui/linux_init ## Basic Information - **Project Name**: linux_init - **Description**: linux环境部署自动化脚本 - **Primary Language**: PHP - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-04-17 - **Last Updated**: 2022-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # linux_init #### 介绍 linux环境部署自动化脚本 #### 软件架构 1. 创建规范目录,安装基础库环境,关闭selinux,配置时间同步 2. 部署Nginx 3. 部署PHP 4. 部署Mysql 5. 部署Mongo 6. 部署Redis 7. 部署php扩展 8. 部署JDK 9. 部署rabbitmq 10. 部署es 11. 部署zabbix客户端 12. 克隆博客项目 13. 部署openoffice 14. 部署php_amqp扩展 15. 部署zookeeper 16. 部署storm 17. 部署salt-minion 18. 部署php_swoole扩展 19. 部署php_redis扩展 20. 部署php_mongo扩展 #### 安装教程 1. git拉取该项目到服务器 2. 进入linux_init目录 3. chomod +x init.sh 或者 chomod 777 init.sh 4. ./init.sh 选择相应选项进行安装,1-2-3-4-6顺序安装 #### 使用说明 1. 本项目所有权归Dy所有,请在有linux基础的情况下使用本脚本 2. 本项目为便捷安装服务器开发环境的配置 3. 本项目只包含了nginx + php + mysql + redis的安装包 4. 若需安装其他软件,可将软件包移至服务器tools文件夹,运行init.sh安装 5. nginx服务管理命令 ``` #启动Nginx /data/webserver/nginx/sbin/nginx #从容停止Nginx: ps -ef | grep nginx kill -QUIT 主进程号 # 如上一步中的 ps 命令输出的 29151,就是 Nginx的主进程号 #快速停止Nginx: kill -TERM 主进程号 #强制停止Nginx: pkill -9 nginx #平滑重启nginx /data/webserver/nginx/sbin/nginx -t /data/webserver/nginx/sbin/nginx -s reload ``` 6. php-fpm管理命令 ``` /etc/init.d/php-fpm start /etc/init.d/php-fpm restart /etc/init.d/php-fpm stop ``` 7. mysql管理命令 ``` /etc/init.d/mysqld start /etc/init.d/mysqld restart /etc/init.d/mysqld stop ``` 8. redis管理命令 ``` /etc/init.d/redis start /etc/init.d/redis restart /etc/init.d/redis stop ``` 9. mysql初始化密码(报错:mac mysql error You must reset your password using ALTER USER statement before executing this statement.) ``` SET PASSWORD = PASSWORD('密码'); ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; flush privileges; ``` 10. 忘记mysql密码,重置密码,开放远程访问 ``` #在配置文件中添加配置项:skip-grant-tables(没有配置文件则在安装目录下创建my.cnf) update mysql.user set authentication_string=password('密码') where User='root' and Host='localhost'; flush privileges; #去掉skip-grant-tables配置项 ``` 11. mysql开启远程访问 ``` GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; flush privileges; ``` 12. php -v显示5.4版本错误处理 ``` rm -rf /usr/bin/php ln -s /data/websever/php/bin/php /usr/bin/ ``` 13. 开放端口 ``` systemctl start firewalld firewall-cmd --zone=public --add-port=9501/tcp --permanent firewall-cmd --reload ``` 14. 报错c++: internal compiler error: Killed (program cc1plus),Please submit a full bug report 1).报错原因 内存不足,可以增加虚拟机内存,或者云服务器创建临时分区 free -mh#查看当前内存使用情况 2).解决方法,使用swap创建临时分区 ``` #查看当前内存使用情况 free -h #使用swap创建临时分区 dd if=/dev/zero of=/var/swapfile bs=1024 count=4048k #count的大小就是增加的swap空间的大小,1024是块大小,所以空间大小是bs*count=2GB sudo mkswap /var/swapfile #把刚才空间格式化成swap格式 chmod 0600 /var/swapfile #该目录权限,不改的话,在下一步启动时会报“swapon: /swapfile: insecure permissions 0644, 0600 suggested.”错误 sudo swapon /var/swapfile #使用刚才创建的swap空间 echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab #修改 fstab 配置,设置开机自动挂载该分区 swapoff /var/swapfile #停止正在使用swap分区 rm -rf /var/swapfile #删除swap分区文件 /var/swapfile swap swap defaults 0 0 #删除或注释掉我们之前在fstab文件里追加的开机自动挂载配置内容 ``` 15. 自动备份数据表 1.编辑my.cnf文件, 指定账号与密码, 然后在脚本中引用 ``` vim /data/database/mysql/my.cnf [mysqldump] user=root password=dy123456 ``` 2.移动脚本 ``` mkdir /data/backup mkdir /data/ssh cp /data/website/linux_init/code/backup.sh /data/ssh chmod +x /data/ssh/backup.sh ``` 2.添加定时 ``` crontab -e # m h dom mon dow command 每天凌晨1点会执行自动备份脚,进行MySQL数据库的定时备份 00 01 * * * /data/ssh/backup.sh ``` 16. supervisor 安装与配置 1.安装 ``` yum install supervisor ``` 2.服务端启动停止重启 ``` systemctl start|stop|restart supervisord ``` 3.状态 ``` systemctl status supervisord ``` 4.客户端命令 ``` supervisorctl update supervisorctl status supervisorctl restart all ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com]https.blog.gitee.com) 3. 你可以 [https://gitee.com/explore]https.gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP]https.gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help]https.gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)