Homestead 升级PHP版本

前言

我的 Homestead 版本还是比较老了,其中 PHP 的版本最高只支持到 PHP7.2,又不想更新 Homestead 所以准备装个 PHP7.4 了。

  1. 查看PHP版本
    vagrant ssh 进入虚拟机,php -v 查看PHP版本, 我的是PHP7.2
  2. 查看所有 php 版本和当前版本
    update-alternatives --display php
    php - manual mode
    link best version is /usr/bin/php7.2
    link currently points to /usr/bin/php7.2
    link php is /usr/bin/php
    slave php.1.gz is /usr/share/man/man1/php.1.gz
    /usr/bin/php5.6 - priority 56
    slave php.1.gz: /usr/share/man/man1/php5.6.1.gz
    /usr/bin/php7.0 - priority 70
    slave php.1.gz: /usr/share/man/man1/php7.0.1.gz
    /usr/bin/php7.1 - priority 71
    slave php.1.gz: /usr/share/man/man1/php7.1.1.gz
    /usr/bin/php7.2 - priority 72
    slave php.1.gz: /usr/share/man/man1/php7.2.1.gz
  3. 安装PHP7.4
    更新源
    sudo apt update
    安装
    sudo apt-get -y install php7.4-mysql php7.4-fpm php7.4-mbstring php7.4-xml php7.4-curl
    执行后,会列出当前 php 所有版本和编号,输入编号,切换到执行的版本
    sudo update-alternatives --config php

Homestead 升级PHP版本

切换完版本后,我们输入 php -m 可以发现少了很多 Laravel 必要的扩展, 那么我们可以使用 sudo apt install php7.4-mbstring命令安装其余需要的扩展

  1. 重启虚拟机
    vagrant reload --provision

tips:
此时运行 laravel 项目 可能会出现 权限问题

The stream or file “/vagrant/storage/logs/laravel-****-**-**.log” could not be opened: failed to open stream: Permission denied

修复方法

sudo vi /etc/php/7.4/fpm/pool.d/www.conf

change:

user = www-data
group = www-data

to

user = vagrant
group = vagrant

Then:

sudo service php7.4-fpm restart
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

8.0.1升级到8.0.25了 测试 有用

1年前 评论

4年前安装的虚拟机升级到 php8.0

缺少部分扩展

sudo apt-get -y install php8.0-bcmath

sudo apt-get -y install php8.0-redis

sudo apt-get -y install php8.0-gd

sudo apt-get -y install php8.0-zip

sudo apt-get -y install php8.0-imagick

1年前 评论
gyp719 (作者) (楼主) 1年前

更新新node版本,执行:

sudo n stable

1年前 评论

www.lmlphp.com/user/58587/article/...

www.shuzhiduo.com/A/QW5Y1kgK5m/

www.jianshu.com/p/3420f2f7bf25

我是homestead的Ubuntu系统。
首先重新装下php的环境包,这是为了让phpize出来!因为不知道为什么现在homestead自带的没有

sudo apt install php8.0-dev
1如果你用的不是php7.2,而是7.1那你就改成sudo apt install php7.1-dev

安装 redis

git clone github.com/phpredis/phpredis.git

cd phpredis

/usr/bin/phpize8.0

./configure –with-php-config=/usr/bin/php-config8.0

make && make install

这里的 php 版本是 7.0,所以 phpize 和 php-config 的版本也需要保持一致。编译安装完成后,redis 的 php 扩展在 modules 目录中,文件名是 redis.so。

  • 查看 php 的扩展目录

    php -i | grep extension_dir
    extension_dir => /usr/lib/php/20200930 => /usr/lib/php/20200930
  • 复制 redis.so 到 php 的扩展目录

    sudo cp ./modules/redis.so  /usr/lib/php/20200930
  • 模块导入php配置

1.创建redis.ini

sudo vim /etc/php/8.0/mods-available/redis.ini
  1. 然后在这个文件中写入extension=redis.so 保存,退出
  • 引入redis.ini
  1. cd /etc/php/7.0/fpm/conf.d

  2. sudo ln -s /etc/php/7.0/mods-available/redis.ini 25-redis.ini

  3. sudo ln -s /etc/php/7.0/mods-available/redis.ini /etc/php/7.0/cli/conf.d/redis.ini #绝对路径

  • 重启php-fpm
  1. sudo /etc/init.d/php7.0-fpm reload
  • 验证
  1. php -r “if (new Redis() == true){ echo "\r\n OK \r\n"; }”
1年前 评论

升级到PHP8.1 , 升级失败

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

sudo vim /etc/apt/sources.list

将以下两行添加到文件的末尾

deb https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal main
deb-src https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal main

更新源

sudo apt-get update

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!