如何将Mac本地Symfony项目lovely迁移至服务器?
首先明确:是的,你完全可以直接通过FTP把本地的lovely文件夹上传到服务器的www/目录下,不过Symfony作为PHP框架,上传后还有几个必须处理的步骤,不然项目可能无法正常运行,我给你列出来:
安装服务器端依赖:
如果你本地已经通过Composer安装了依赖(也就是有vendor文件夹),可以直接把vendor一起上传,但要注意服务器的PHP版本、扩展和本地是否一致(比如Symfony 6需要PHP 8.1+)。如果服务器环境和本地差异大,建议只上传composer.json和composer.lock,然后在服务器上安装Composer后运行composer install --no-dev --optimize-autoloader(生产环境用这个命令更合适,去掉开发依赖并优化自动加载)。配置环境变量:
本地的.env文件里的配置(比如DATABASE_URL、APP_ENV、APP_SECRET)是针对你本地环境的,上传到服务器后必须修改.env或者创建.env.local(优先级更高),替换成服务器的数据库信息、把APP_ENV改成prod(生产环境),确保配置匹配服务器环境。设置正确的文件权限:
Symfony需要对var/目录(缓存、日志)和public/目录(静态资源)有读写权限,上传后要给这些目录设置合适的权限。比如在服务器终端运行:chown -R www-data:www-data /www/lovely/var /www/lovely/public chmod -R 775 /www/lovely/var /www/lovely/public这里的
www-data是大多数服务器的Web服务用户,如果你服务器用的是其他用户(比如apache),替换成对应的即可。关于Git仓库的处理:
如果你不需要在服务器上保留Git版本控制信息,上传时可以跳过.git文件夹(它只在本地管理版本,服务器上不需要的话删了或者不传都可以),这样能减少上传的文件大小,也避免版本信息暴露。如果之后想在服务器上也用Git管理,那可以一起上传.git文件夹,之后在服务器终端就能执行Git命令了。
另外提个小建议:如果你的Mac终端用得顺手,其实用rsync或者scp命令上传会比FTP更高效稳定,比如用rsync的话:
rsync -avz --exclude='.git' ./lovely/ your-server-username@your-server-ip:/www/lovely/
这个命令会增量同步文件,只传修改过的部分,而且速度更快,还能排除掉不需要的.git文件夹。不过如果习惯用FTP工具(比如FileZilla),直接上传也完全没问题。
内容的提问来源于stack exchange,提问作者peace_love

