CentOS 上 Composer 的迁移与项目迁移指南
一 迁移场景与准备
php -v。sudo yum install -y php php-cli php-fpm php-mysqlnd php-mbstring php-xml php-zip。二 迁移 Composer 本体到新目录
sudo vim /etc/profile.d/composer.shexport COMPOSER_HOME="/opt/composer"
export PATH="$COMPOSER_HOME/vendor/bin:$PATH"
source /etc/profile.d/composer.shsudo 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
三 迁移 PHP 项目到 CentOS 并恢复依赖
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 nginxcd /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
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 installcp ~/.composer/config.json /backup/composer-global-config.jsoncp /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/