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