centos composer如何迁移
导读:CentOS 上 Composer 的迁移与项目迁移指南 一 迁移场景与准备 明确迁移类型: 迁移 Composer 本体(可执行文件、全局配置与缓存目录)。 迁移 PHP 项目(代码、依赖与配置),在 CentOS 上部署并运行。...
CentOS 上 Composer 的迁移与项目迁移指南
一 迁移场景与准备
- 明确迁移类型:
- 迁移 Composer 本体(可执行文件、全局配置与缓存目录)。
- 迁移 PHP 项目(代码、依赖与配置),在 CentOS 上部署并运行。
- 准备要点:
- 源机器与目标机器均安装 PHP CLI(建议 PHP ≥ 7.4),并确认版本一致:
php -v。 - 目标机安装常用扩展(以 Laravel 为例):
sudo yum install -y php php-cli php-fpm php-mysqlnd php-mbstring php-xml php-zip。 - 备份与版本控制:确保项目根目录有 composer.json / composer.lock,并用 Git 管理依赖更可靠。
- 源机器与目标机器均安装 PHP CLI(建议 PHP ≥ 7.4),并确认版本一致:
二 迁移 Composer 本体到新目录
- 设置新的全局目录(推荐将全局目录放到 /opt/composer):
- 编辑 shell 配置:
sudo vim /etc/profile.d/composer.shexport COMPOSER_HOME="/opt/composer" export PATH="$COMPOSER_HOME/vendor/bin:$PATH" - 使配置生效:
source /etc/profile.d/composer.sh
- 编辑 shell 配置:
- 迁移原有数据(如有历史全局包/配置):
sudo mkdir -p /opt/composer sudo cp -r ~/.composer/* /opt/composer/ sudo chown -R $(whoami):$(whoami) /opt/composer - 验证:
echo $COMPOSER_HOME # 应输出 /opt/composer composer config --global home # 同上 composer global require phpunit/phpunit which phpunit # 应指向 /opt/composer/vendor/bin/phpunit - 注意:确保新目录可写,且 PATH 包含 $COMPOSER_HOME/vendor/bin,否则全局命令不可用。
三 迁移 PHP 项目到 CentOS 并恢复依赖
- 传输代码与配置:
- 将项目文件(含 composer.json / composer.lock)上传至目标路径,如 /var/www/your_project。
- 复制 .env.example 为 .env 并配置数据库等敏感信息。
- Web 服务器与目录指向(以 Nginx 为例):
- 将 root 指向项目的 public 目录,并配置 FastCGI 代理到 php-fpm.sock。
- 示例片段:
server { listen 80; server_name your_domain_or_ip; root /var/www/your_project/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastpath_info; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } - 启动服务:
sudo systemctl start nginx & & sudo systemctl enable nginx
- 安装依赖与初始化:
cd /var/www/your_project composer install --optimize-autoloader --no-dev php artisan key:generate # 如有迁移数据:mysql -u user -p db_name < dump.sql php artisan migrate --force - 目录权限(以 www:www 为例):
sudo chown -R www:www /var/www/your_project sudo chmod -R 775 /var/www/your_project/storage php artisan storage:link - 常见排错:
- 若
php artisan storage:link失败,检查 php.ini 的 disable_functions 是否禁用了所需函数(如 symlink),必要时移除后重启 php-fpm。
- 若
四 备份与恢复策略
- 项目级备份与恢复(推荐做法):
- 备份:
cp composer.json composer.lock /backup/ - 恢复:
cp /backup/composer.json composer.lock ./ & & composer install - 不建议长期备份体积庞大的 vendor,优先使用 composer.lock 复现依赖;用 Git 管理变更更稳妥。
- 备份:
- 全局配置迁移(可选):
- 备份:
cp ~/.composer/config.json /backup/composer-global-config.json - 恢复:
cp /backup/composer-global-config.json ~/.composer/config.json
- 备份:
五 国内镜像与常见问题
- 提升安装速度(全局镜像,任选其一):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ # 或 composer config -g repo.packagist composer https://packagist.phpcomposer.com # 或 composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ # 或 composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/ - 常见问题处理:
- 缺少扩展(如 fileinfo):在 php.ini 启用或编译扩展后重启 php-fpm。
- 权限问题:确保 storage、bootstrap/cache 对 Web/PHP-FPM 运行用户可写。
- 全局命令不可用:确认 $COMPOSER_HOME/vendor/bin 已加入 PATH,并重启终端或重新加载环境。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos composer如何迁移
本文地址: https://pptw.com/jishu/774367.html
