如何在Google Cloud Workstations持久化/home目录安装PHP并实现重启留存?
在Google Cloud Workstations上持久化安装PHP的方案
你的推测完全正确:Google Cloud Workstations的系统层(如/usr、/etc等目录)属于临时Compute Engine VM的运行环境,工作站停止后会被重置,所以通过apt-get安装的PHP会丢失。将PHP安装在持久化的/home目录是解决这个问题的最佳策略之一,因为/home目录挂载的是持久化存储卷,跨会话/重启后数据不会丢失。
下面提供两种可行的安装方式:
方式一:源码编译安装到/home目录
这种方式适合需要自定义PHP编译配置的场景:
安装编译依赖
先安装编译PHP所需的系统依赖(这些依赖每次重启后需要重新安装,因为系统层是临时的,也可以把命令加到.bashrc自动执行):sudo apt-get update sudo apt-get install -y build-essential libssl-dev libcurl4-openssl-dev libxml2-dev libsqlite3-dev下载并解压PHP源码
选择你需要的PHP版本(这里以8.3.0为例,可替换为其他稳定版本):cd ~ wget https://www.php.net/distributions/php-8.3.0.tar.gz tar -xzf php-8.3.0.tar.gz cd php-8.3.0配置编译参数
指定安装目录为~/php(可自定义路径),并开启常用扩展:./configure --prefix=$HOME/php --enable-cli --enable-fpm --with-openssl --with-curl --with-xml --with-sqlite3编译并安装
用多线程加速编译,然后安装到指定目录:make -j$(nproc) make install配置环境变量
让系统能全局调用php命令,修改.bashrc(该文件在/home目录下,重启后会保留):echo 'export PATH=$HOME/php/bin:$PATH' >> ~/.bashrc source ~/.bashrc验证安装
执行以下命令确认PHP可用:php -v
方式二:用phpenv版本管理工具安装(推荐)
这种方式更方便管理多个PHP版本,且所有数据都存放在/home目录下:
安装phpenv及插件
git clone https://github.com/phpenv/phpenv.git ~/.phpenv echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(phpenv init -)"' >> ~/.bashrc source ~/.bashrc git clone https://github.com/php-build/php-build.git ~/.phpenv/plugins/php-build安装编译依赖(同样每次重启后需重新安装,可加到
.bashrc自动执行)sudo apt-get update sudo apt-get install -y build-essential libssl-dev libcurl4-openssl-dev libxml2-dev libsqlite3-dev libonig-dev安装指定版本的PHP
比如安装8.3.0:phpenv install 8.3.0设置全局默认PHP版本
phpenv global 8.3.0验证安装
php -v
补充说明
- 系统依赖(如
build-essential等)每次重启工作站后都需要重新安装,你可以把安装依赖的命令添加到.bashrc中,实现每次登录自动安装:echo 'sudo apt-get update && sudo apt-get install -y build-essential libssl-dev libcurl4-openssl-dev libxml2-dev libsqlite3-dev libonig-dev' >> ~/.bashrc - 两种方式安装的PHP都存放在
/home目录下,重启工作站后无需重新安装,直接使用即可。
内容的提问来源于stack exchange,提问作者DanielAttard
相关产品推荐
相关产品推荐

