centos7 shell脚本一键安装php环境全家桶

10 阅读 作者:七个包 2020-04-10

一键安装的脚本在最下面,复制代码就能用,不着急的建议慢慢看,欢迎路过的朋友指点

 

1,yum install php 默认安装的是5.4几版本的php,后面的updates不知道干啥的,望路过的大神指点

  

2,因为yum 安装软件有两个软件源(目前我只知道俩,貌似还有个ius?)

    1),epel 安装软件默认就是走这个源,php,redis不是最新的

    2),remi 这里的php,redis都是最新的,但是这个得自己安装,

        官网地址 https://rpms.remirepo.net/wizard/

3,根据需求选择完,下面会自动告诉你该怎么安装remi和php,把命令挨个粘贴上去执行一遍就好了

  

4,其实,这条命令执行完,就可以 yum install -y php 直接安装php了,现在是7.3.12

yum-config-manager --enable remi-php73

   看下,php的版本已经变了,可以和文章最上面的截图对比一下,后面的源也变了(那应该是看源的地方吧,我猜的....)

  

5,说一下安装php之前的事,到这里,如果直接执行 yum install -y php 的话,安装超级慢,去替换一下centos的镜像就快了(我猜的)

用阿里云的就行 https://developer.aliyun.com/mirror/centos 把里面的命令挨个执行一遍,别忘了最后的 yum makecache

6,现在可以安装执行 yum install -y php 了,安装完看一下版本

7,常用的php扩展(只贴不默认安装的),路过的大神可以补充,感谢

php-bcmath       = 精确数值处理
php-pecl-inotify = 文件监控
php-mbstring     = 处理多字节字符串(中文)
mysqli           = mysql扩展的增强版, 与mysql交互的封装
php-mysqlnd      = 与mysql交互的驱动, 安装完这个mysqli自动就有了
openssl          = 对称/非对称加解密(这个默认有了,不用装)
php-pdo          = 与各种数据库的交互封装
pdo_mysql        = pdo操作mysql的驱动(安装完pdo,这个默认就有了)
pdo_sqlite       = pdo操作sqlite的驱动(安装完pdo,这个默认就有了)
php-pecl-redis5  = 操作reids的(现在最新的就是redis5)
php-pecl-zip     = 处理压缩文件
php-pecl-swoole4 = swoole,这个不常用,也贴上来了,目前最新的是4.4.12,直接 yum install -y php-pecl-swoole4

//命令整理好了,直接复制下面这个执行就行
yum install -y php php-bcmath php-pecl-inotify php-mbstring php-pecl-redis5 php-pecl-zip php-mysqlnd php-pdo

8,安装php-fpm,启动,并添加到开机自启

yum install -y php-fpm
systemctl start php-fpm
systemctl enable php-fpm

9,为了更方便,这些命令我整理了一下.随便一个目录下,比如home下新建一个install_php.sh文件,把下面的代码复制上去

   然后在文件目录下执行 ./install_php.sh 一键安装php,哈哈

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y yum-utils
yum-config-manager --enable remi-php73
yum install -y php php-bcmath php-pecl-inotify php-mbstring php-pecl-redis5 php-pecl-zip php-mysqlnd php-pdo
yum install -y php-fpm
systemctl start php-fpm
systemctl enable php-fpm

  10,可以运行 php --ri 扩展 查看扩展的详细信息 比如 php --ri redis

    

11,可以使用phpinfo()去看下了,也可以在命令行输入php -i 查看,更方便,或者执行php -m 只查看扩展信息

===============php的安装搞定,下面是安装redis的===================

1,默认的源,redis是3.2版本的,现在最新的是5.0

  

2,执行 yum --enablerepo=remi install -y redis 安装最新版的redis(不知道为啥yum list 看不到这个5.0版本的)

  

3,redis默认是在前台执行的,要把 redis.conf 的 daemonize no 配置项 改成 daemonize yes,执行下面的命令就行

sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf

4,启动redis

redis-server /etc/redis.conf  //以指定配置文件启动redis
ps -aux | grep redis //启动完看下是否成功了

  

5,交互试一下,一切正常

       

6,设置开机自启,执行一条命令就可以了 systemctl enable redis,但是有个坑,我设置完之后,重启,redis 的启动会报错

   说打不开这个文件 /var/log/redis/redis.log,解决办法是,新建这个文件就可以了

   

执行这俩命令,执行完在重启系统,redis运行正常

touch /var/log/redis/redis.log
chmod 777 /var/log/redis/redis.log

7,设置redis可以远程访问,需要修改redis.conf文件,执行下面的命令就行,从上到下分别是

   注释掉 bind 127.0.0.1

   更改 protected-mode 的值为 no

   设置连接密码为walplpawxqxayjr ('我爱老婆老婆爱我相亲相爱一家人'的缩写,下面的mysql密码用的也是这个)

   这个密码太简单了,建议改成别的(一开始设置的123456,刚安装完就被黑客入侵了)

   ps:改完之后记得重启一下redis使配置生效 systemctl restart redis

sed -i 's/bind 127.0.0.1/# bind 127.0.0.1/g' /etc/redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
sed -i 's/# requirepass foobared/requirepass 123456/g' /etc/redis.conf

8,为了方便,已经把上面这一套安装redis的命令整理好了,随便找个目录,比如home目录,新建一个install_redis.sh文件

   把下面的代码粘贴上去,然后执行 ./install_redis.sh 就可以了,又是一件安装,哈哈,下面的代码做了这几件事:

   设置redis为后台运行

   设置任何ip都可以访问

   关闭保护模式

   设置密码

   启动redis

   设置为开机自启

yum --enablerepo=remi install -y redis
sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf
sed -i 's/bind 127.0.0.1/# bind 127.0.0.1/g' /etc/redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
sed -i 's/# requirepass foobared/requirepass walplpawxqxayjr/g' /etc/redis.conf
redis-server /etc/redis.conf
systemctl enable redis
touch /var/log/redis/redi.log
chmod 777 /var/log/redis/redis.log

==========redis的安装搞定,下面是安装composer的===============

1,composer 的 安装比较简单,命令已经整理好了,随便找个目录,比如home目录,新建一个install_composer.sh文件

   然后把下面的代码粘贴上去,执行 ./install_composer.sh 命令就行了,下面的命令依次做了这些事情

   安装composer 到当前目录

   配置composer 命令到全局

   替换composer的镜像源为阿里巴巴的

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

2,查看 composer 是否安装成功

  

==============composer的安装搞定,下面是安装git的=================

1,本来想安装最新版git的,搜了一圈,太麻烦了,yum 真香,但是默认安装是1.8版本的,现在最新的2.24

   yum install -y git

  

==============git的安装搞定,下面是安装nginx的==================

1,nginx 也直接用yum 安装,最新是1.17.6,默认安装是1.16.1,相对较新了.安装完添加到开机自启

yum install -y nginx
systemctl enable nginx

  

=================git的安装搞定,下面是安装mysql的===================

1,首先特别感谢这篇博客,谢谢

https://www.cnblogs.com/xiaopotian/p/8196464.html

2,这个mysql 安装的是5.7.28的,够用了,依次执行下面的命令,或者可以搞一个.sh文件,把下面的代码粘贴上去

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql-community-server
systemctl start  mysqld.service

3,上面就已经安装完成,并启动了,可以执行命令查看一下运行状态

systemctl status mysqld.service

  

4,初始化密码

   先看下默认的密码,执行命令 grep "password" /var/log/mysqld.log,红线上面的就是默认密码

   

   登录,并修改密码规则(默认的密码规则比较复杂,是不允许walplpawxqxayjr这种密码的)

   mysql -uroot -p 

   粘贴上面红线标识的密码登录进去,依次执行下面三条命令,就可以用walplpawxqxayjr登录了

set global validate_password_length=6;
set global validate_password_policy=0; 
alter user root@"localhost" identified by "walplpawxqxayjr";

   

5,设置远程访问,需要登录进mysql,然后执行下面两条命令,就可以远程访问了,密码是123456,建议自己改一下

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'walplpawxqxayjr' WITH GRANT OPTION;
FLUSH PRIVILEGES;

  

6,加入到开机自启动

systemctl enable mysqld

7,为了方便,整理了一下命令,把下面的代码,随便找个目录,做个shell脚本,比如在home目录下,新建一个install_mysql.sh

   把下面的代码复制上去,然后执行 ./install_mysql.sh 就可以了,一键搞定,哈哈(这个有点复杂)

#!/bin/sh

#安装mysql的命令流程和上面讲的不太一样,是因为,要想设置远程登录,就得先本地登录进mysql
#但是上面的安装方式会自动生成一个密码,而我不知道怎么用shell脚本复制那个密码,
#并且在shell脚本执行到mysql的登录时自动把那个密码粘贴上去,
#所以用了一个取巧的方式,第一次先绕过密码输入,自定义一个

#安装mysql,添加到开机自动启动
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql-community-server
systemctl enable mysqld
 
#安装这个才能执行下面的expect命令
yum install -y expect
 
#先取消密码登录,为了更改为walplpawxqxayjr
sed -i '$a\skip-grant-tables=1' /etc/my.cnf
systemctl start  mysqld
expect -c "
set timeout -1
spawn mysql -uroot
expect \">\"
send \"use mysql;\r\"
send \"update user set authentication_string = password('walplpawxqxayjr'), password_expired = 'N', password_last_changed = now() where user = 'root';\r\"
send \"quit\r\"
expect eof
"
 
sed -i 's/skip-grant-tables=1/# skip-grant-tables=1/g' /etc/my.cnf
 
#然后重新启动mysql,再次重新登录,这次输入密码,并设置远程登录
systemctl restart mysqld
expect -c "
set timeout -1
spawn mysql -uroot -p
expect \"Enter password:\"
send \"walplpawxqxayjr\r\"
expect \">\"
send \"set global validate_password_length=6;\r\"
send \"set global validate_password_policy=0;\r\"
send \"GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'walplpawxqxayjr' WITH GRANT OPTION;\r\"
send \"FLUSH PRIVILEGES;\r\"
send \"quit\r\"
interact
"

8.如果想卸载这个mysql的话,执行下面的命令,或者先yum list | grep mysql 看一下也行,带 @ 号的就说明是安装了的

yum remove -y mysql-community-client
yum remove -y mysql-community-common
yum remove -y mysql-community-libs
yum remove -y mysql-community-libs-compat
yum remove -y mysql57-community-release

==============至此,php环境全家桶安装完毕================

最后的最后,把上面所有的安装脚本,汇总到了一起,建一个install.sh文件,并且把下面代码粘贴上去,执行 ./install.sh,上面的东西就都有了,并且已经设置好,下面的代码里有注释,也可以拿走根据情况修改着用

#!/bin/sh

#php,php-fpm,nginx,redis,composer 应该会自动同步最新,或较新的版本,全部执行完大概需要20分钟
#php 7.3.12
#php-fpm 7.3.12
#nginx 1.16.1
#redis 5.0.7
#git 1.8.3.1
#mysql 5.7.28
#composer 1.9.1  

#===============================install php start===============================
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y yum-utils
yum-config-manager --enable remi-php73
yum install -y php php-bcmath php-pecl-inotify php-mbstring php-pecl-redis5 php-pecl-zip php-mysqlnd php-pdo php-fpm
# yum install -y php-pecl-swoole4
systemctl start php-fpm
systemctl enable php-fpm

#===============================install redis start=================================
yum --enablerepo=remi install -y redis
sed -i 's/daemonize no/daemonize yes/g' /etc/redis.conf
sed -i 's/bind 127.0.0.1/# bind 127.0.0.1/g' /etc/redis.conf
sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
sed -i 's/# requirepass foobared/requirepass walplpawxqxayjr/g' /etc/redis.conf
redis-server /etc/redis.conf
systemctl enable redis
touch /var/log/redis/redi.log
chmod 777 /var/log/redis/redis.log

#===============================install composer start===============================
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

#===============================install git start====================================
yum install -y git

#===============================install nginx start==================================
yum install -y nginx
systemctl enable nginx

#===============================install mysql start==================================
#安装mysql,添加到开机自动启动
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql-community-server
systemctl enable mysqld
 
#安装这个才能执行下面的expect命令
yum install -y expect
 
#先取消密码登录,为了更改为walplpawxqxayjr
sed -i '$a\skip-grant-tables=1' /etc/my.cnf
systemctl start  mysqld
expect -c "
set timeout -1
spawn mysql -uroot
expect \">\"
send \"use mysql;\r\"
send \"update user set authentication_string = password('walplpawxqxayjr'), password_expired = 'N', password_last_changed = now() where user = 'root';\r\"
send \"quit\r\"
expect eof
"
 
sed -i 's/skip-grant-tables=1/# skip-grant-tables=1/g' /etc/my.cnf
 
#然后重新启动mysql,再次重新登录,这次输入密码,并设置远程登录
systemctl restart mysqld
expect -c "
set timeout -1
spawn mysql -uroot -p
expect \"Enter password:\"
send \"walplpawxqxayjr\r\"
expect \">\"
send \"set global validate_password_length=6;\r\"
send \"set global validate_password_policy=0;\r\"
send \"GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'walplpawxqxayjr' WITH GRANT OPTION;\r\"
send \"FLUSH PRIVILEGES;\r\"
send \"quit\r\"
interact
"

 

原文地址:https://blog.csdn.net/qq_37500838/article/details/103329090
热门教程
php高性能 Linux集群 Nginx并发 lvs负载均衡 MySQL视频教程 0
基于ThinkPHP6开发高并发电商服务系统 0
基于ThinkPHP开发在线办公系统 OA办公系统 0
麦子学院PHP全栈开发教程全套 0
基于yii框架开发企业网站系统 0
php基于微博接口开发自定义客服端实战 0
ThinkPHP框架实战多用户留言系统的设计与实现 0
LAMP与LNMP加速与缓存优化进阶实战上部 0
SHELL脚本企业级案例sshkey架构批量分发文件expect非交互式批量分发密钥 0
thinkphp5博客项目实战视频教程 0
基于ThinkPHP5开发微信小程序商城系统实战小程序API开发 0
PHP高性能API接口开发实战基于Yaf框架 0
程序员基础必学Linux玩转典型应用实战 0
LINUX运维之shell自动化安装与自动化部署 0
PHP框架YII2实现高性能高并发高可用的在线购物网站 0
LINUX系统之Shell脚本高级编程自动化运维实战 0
PHPweb开发基础班加就业班视频全套 0
PHP框架Laravel开发CMS系统实战 0
Linux脚本编程shell编程入门到实战教程 0
uniapp实战教程之CMS系统项目实战 0
相关文章
企业财务分析一头雾水?有了这个财务报表工具,问题一键解决 16
shell脚本:检测磁盘空间和inode使用率/新文件/网卡流量 16
shell 正则表达式 16
php实现防垃圾手机号注册功能(接入阿里云风险识别) 16
shell脚本部署mysql主从 16
centos7 shell脚本一键安装php环境全家桶 16
HDFS的shell命令操作-大萝卜博客 16
php把远程URL图片保存为base64格式的图片数据 16
Chrome OS 支持虚拟桌面与一键通话连接 16
php踩坑之类型转换问题 16
shell脚本:备份数据库、代码上线 16
shell 命令/程序 摘要记录 16
php,js其他类型转化为Bool类型比较 16
第一个shell脚本 16
centos7安装tor服务端后提供代理ip给python调用实验 16
shell脚本编程(一) 变量、条件判断、循环 16
shell语言declare用法 16
ngixn负载+keepalived高可用shell脚本 16
centos7系统shell一键keepalived高可用 16
hjr-linux:centos7 ftp搭建与连接 16