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

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
  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/redi.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的镜像源为阿里巴巴的

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.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

#===============================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===============================
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.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
"
 
————————————————
版权声明:本文为CSDN博主「七个包」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37500838/article/details/103329090

posted @ 2019-12-02 14:46  詹老师  阅读(1362)  评论(0编辑  收藏  举报