安装和设置 Symfony 框架
欢迎来到Symfony!开始一个全新的Symfony项目是容易的,你的第一个可正常运作的Symfony程序能在几分钟之内配置完成。
为了让创建新程序更加简单,Symfony提供了一个安装器,下载它就是你的第一步。
安装Symfony Installer ¶
使用Symfony Installer来创建全新Symfony项目是唯一被推荐的方式。安装器就是个php程序,只需安装一次,即可创建数量不限的Symfony程序。
安装器需要php5.4或更高。如果你仍然在使用遗产级的php5.3,你不能使用Symfony安装器。
如果你使用的是安装环境的打包解决方案,比如WAMP,XAMP或MAMP,请检查它们是否采用了PHP近期版本。你可以在命令行中使用下述命令来查看PHP版本:
$ php --version
根据操作系统的不同,Symfony安装器的安装方式也有所不同。
Linux和MAC OS X系统 ¶
打开命令行工具执行下述命令:
$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony $ sudo chmod a+x /usr/local/bin/symfony
这将创建一个全局的Symfony命令到你的系统上。
Windows系统 ¶
在Windows上,执行下述命令:
c:\>php -r "readfile('http://symfony.com/installer');" > symfony
它会下载一个symfony
文件,然后把这文件移动到你想创建Symfony项目的文件夹里,通过下述命令可引导各种安装:
c:\>move symfony c:\projects c:\projects\> php symfony
创建Symfony程序 ¶
当Symfony安装器被设置好之后,使用全新命令new
来创建Symfony项目:
# Linux, Mac OS X $ symfony new my_project_name # Windows c:\> cd projects/ c:\projects\> php symfony new my_project_name
这命令创建了一个新的my_project_name
目录,里面是一个基于最新稳定版Symfony程序的新项目。除此之外,安装器还会检查你的系统是否具备了执行Symfony程序的技术需求。若不满足,你会看到一个“哪些地方还需改变”的需求列表。
出于安全原因,所有Symfony版本都在分发之前进行了数字签名。如果你需要验证整合到程序中的版本号,按照这篇文章中的步骤来操作。
如果安装器不工作或是不输出任何内容,确保你的系统已经安装并开启了phar扩展。
令你的程序运行在特定Symfony版本 ¶
万一你需要把项目运行在特定的Symfony版本上,使用new
命令的同时附带第二个可选参数:
# use the most recent version in any Symfony branch 不同分支的最新版本 $symfony new my_project_name 2.8 $symfony new my_project_name 3.0 # use a specific Symfony version 指定版本 $symfony new my_project_name 2.7.3$ symfony new my_project_name 2.8.1 # use a beta or RC version (useful for testing new Symfony versions) 新版可用于测试 $symfony new my_project 3.0.0-BETA1$ symfony new my_project 2.7.0-RC1
安装器还支持一个特殊版本lts
,即最新的长期维护版本Symfony LTS version
$ symfony new my_project_name lts
参考Symfony发布进程来深入理解为何有多种框架版本存在,以及哪种更适合你的项目。
不使用安装器来创建Symfony程序 ¶
如果你仍然在用php5.3,或者你因某种原因不能执行安装器,你可以基于composer来安装Symfony。
Composer是个依赖管理器,被现代php程序广泛使用,它也可用于安装Symfony框架。如果你不需要全局安装composer,请往下看。
全局安装Composer ¶
请参考全局安装Composer。
用Composer创建Symfony程序 ¶
若你已安装过Composer,执行create-project
命令来创建基于稳定版本的Symfony程序:
$ composer create-project symfony/framework-standard-edition my_project_name
若需指定版本,提供版本号作为create-project
的第二个参数
$ composer create-project symfony/framework-standard-edition my_project_name "3.0.*"
如果你的网络连接很慢,你可能会认为Composer没有做任何事。这时,请在前述命令中添加-vvv
旗标,以输出Composer正在做的每一件事的细节。
运行Symfony ¶
在开发时,Symfony利用了PHP内置的web服务器。因此,运行Symfony程序关乎项目所在目录并执行如下命令:
$ cd my_project_name/ $ php bin/console server:run
然后,打开浏览器访问http://localhost:8000/
链接,即可看到Symfony欢迎页:
除了欢迎页,你还可能看到空白页和错误页面,这通常是由于目录权限的错误配置造成的。根据你的操作系统,有若干解决方案。相关内容在“设置权限”小节中进行了解释。
PHP内置服务器仅在php5.4和以上版本中存在。如果是老版PHP,你应该在操作系统的web server上针对Symfony项目配置虚拟主机(Virtual Host)。
server:run
命令只适合于开发阶段。如果你使用传统的web服务器比如Apache或Nginx,参考配置web服务器这篇文章。
检查Symfony运行环境的配置 ¶
Symfony程序内置了一个服务器环境检查器,用来显示有关设置是否适合于Symfony。访问下面链接即可检查:
http://localhost:8000/config.php
如果显示有问题,在继续使用Symfony之前修复它们。
更新Symfony程序 ¶
至此,你已创建了可以立即投入开发的全功能Symfony项目。Symfony程序依赖的是大量外部类库,它们可以下载到vendor/
目录下,并且被Composer进行排他管理。
频繁更新这些三方类库是最佳实践,可以防止bug和漏洞。执行Composer的update
命令来一次性全部更新它们:
$ cd my_project_name/ $ composer update
根据项目复杂程度,这种更新方式需要耗费若干分钟才能完成。
Symfony还提供了一个用于检查项目依赖是否包含了已知的重大安全漏洞的命令:
$ php bin/console security:check
定期执行此命令是一个好习惯,因为可以尽可能快地更新或替换掉那些免疫低下的依赖。
安装Symfony演示程序 ¶
Symfony演示程序是全功能的,展示了推荐的开发方式。它被当作Symfony初学者的学习工具,源代码中有大量注释和有用的提示。
为了下载演示程序,在你的系统的任何位置,执行Symfony安装器的demo
命令:
# Linux, Mac OS X $ symfony demo # Windows c:\projects\> php symfony demo
一旦下载完毕,进入symfony_demo
目录,并运行PHP内置web server,执行php bin/console server:run
命令,然后访问浏览器的http://localhost:8000
链接,即可开始使用Symfony演示程序。
安装Symfony分发包 ¶
Symfony项目的“分发包”,是指全功能的程序,包括了Symfony核心类库,一组必备的bundles,一套合理的目录结构,以及一些默认的配置。实际上,当你按之前的介绍创建了Symfony程序之后,你已经下载了由Symfony提供的默认分发包——被称为Symfony标准版(Symfony Standard Edition)。
Symfony标准版,是目前最普及的分发,也是Symfony开发者的首选。不过,Symfony社区也提供了其他分发包供你选择使用。
Symfony CMF标准版是需要Symfony CMF的首选分发包,CMF是基于Symfony的开源项目,方便开发者向框架添加CMS(内容管理系统)功能。
Symfony REST Edition展示了如何构建一个RESTFul API程序,该分发整合了FOSRestBundle和其他几个关联bundles。
使用源码控制 ¶
如果你正使用Git这样的版本控制系统,你可以安全提交你的全部项目代码。这是因为Symfony程序中已经包含了一个专门准备给Symfony的.gitignore
文件。
对于把你的项目代码托管到Git“究竟有多好”的介绍,参考如何创建和存储一个Symfony项目到Git中。
检查版本化的Symfony程序 ¶
当你使用Composer来管理程序的依赖时,推荐在提交代码到宝库时,忽略掉整个的vendor
文件夹。这意味着当你从Git宝库中查看Symfony程序时,里面是没有vendor
目录的,当然整个程序也是难以启动的。
若要令程序运行,检查Symfony程序,然后执行install
这个Composer命令,下载和安装程序所需的全部依赖:
$ cd my_project_name/ $ composer install
为何Composer知道要安装哪个特殊的依赖?这是因为当Symfony程序被提交到宝库时,composer.json
和composer.lock
文件也被提交。这两个文件告诉了Composer在安装Symfony时需要哪些依赖(及其特定版本)。
开始开发 ¶
现在你有了一个全功能的Symfony程序,可以开始开发了!你的分发包中包含了一些样例代码 - 查看程序中的README.md
文件(用记事本打开),可以了解该分发包中的例程细节。
如果你对Symfony还较为陌生,参考创建你的第一个Symfony页面,这里你可以学习到如何创建页面、改变配置,以及任何你想在新程序中做的事。
推荐阅读
-
Galaxy Kylin KylinV10 安装 FastDFS 独立版和 FastDFS 群集设置
-
安装和设置 Symfony 框架
-
iCloud 切换区域,中国区保留 appStore(更新)--自 2018 年 2 月 28 日起,中国区 iCloud 由云上贵州管理 苹果公司发布的公告 https://support.apple.com/zh-cn/HT208352 关键词 关键部分 受影响的 iCloud 账户:国家或地区设置为 "中国 "的 Apple ID。 iCloud 包含的服务照片、邮件、通讯录、日历、提醒事项、备忘、书签、钱包、钥匙串、云备份、云驱动器、应用程序数据 新条款和条件: 同意仅出于本协议允许的目的并在中国法律允许的范围内使用服务。 云桂洲在提供服务时应使用合理的技能并尽职尽责,但在适用法律允许的最大范围内,我们不保证或担保您通过本服务存储或访问的任何内容不会意外损坏、崩溃、丢失或根据本协议的条款被删除,如果发生此类损坏、崩溃、丢失或删除,我们不承担任何责任。您应自行负责维护您的信息和数据的适当备份。 Apple 和云上贵州有权访问您存储在服务中的所有数据,包括有权根据适用法律相互之间共享、交换和披露所有用户数据(包括内容)。 本协议的解释、效力和履行应适用*法律。对于因本协议引起的或与本协议有关的任何争议,云桂洲和您同意提交中国国际经济贸易仲裁委员会(CIETAC)根据提交仲裁时有效的法律在北京进行具有约束力的仲裁。 由云桂洲管理,用户选择: 停用; ID 到地区; 受 iCloud(由云桂洲运营)条款和条件约束 首先,我想说说我对数据安全的看法。 当我在朋友圈发布通知时,有些朋友回复说国外的操作并没有多安全,或者国外的安全只是相对于国外而言的等等。首先,我非常感谢这些朋友,这让我反思什么是数据安全。以下观点均属个人观点: 国外的月亮一定比国内圆? 这是一个根深蒂固的问题,只要有人说国外的东西比国内好,就会有人嘲笑崇洋媚外。我觉得我们在某些方面应该向国外学习,比如搜索引擎和版权问题。打开百度搜索 "数据安全",第一行肯定是广告。打开谷歌搜索 "数据安全",第一条就是 "数据安全_百度百科" .....各种版权问题大家都明白,支持正版,但不仅客户一心想找免费破解,就连作者也往往没有保护自己劳动成果或产品的想法。但从另一个层面来说,国内的发展和安全,甩国外几条街。没有说哪里好,哪里不好,辩证地去学习更好。 国外也有别有用心的数据泄露,谈何安全? 从加密解密的角度看,自古以来就没有绝对安全的加密,只有相对安全的做法。苹果的棱镜门、微软的 cpu 漏洞,各种参差不齐的被破解案例 ....是的,这的确是一个很好的论据,但凡事都不能只看一面,当年苹果面对FBI破解手机的要求,几经论证,苹果还是拒绝破解。这点拿到国内,只要上面的文件传达下去,还有企业敢说不吗?还敢说不吗? 关于这次iCloud数据迁移个人看法? 把数据迁移到贵州的云端,相当于把手机的所有数据都存储在贵州的云端服务器上。也许访问数据的速度会快很多,但我会把我的iCloud区放到美国,因为我不想数据存在云上贵州后经常接到莫名其妙的电话或短信,更不想因为乱用国外服务器而被请去喝茶。iCloud一个ID,即从中国账号转到美国区,主要用于数据存在美国服务器上。appStore一个ID,除了注册一个中国ID外,专门用来下载应用用,因为国外ID不支持酷狗和网易云等应用。麻烦的是,用了新的 appStore ID 后,当前的应用还得重新下载安装,因为旧的应用 ID 与新的应用 ID 不兼容,安装不了。最后,iCloud迁移后,国内用户使用美国服务器,估计要 "扶墙 "了。 专业步骤: 首先,进行appleID设置,这是前提条件,否则无法选择转移区域! 取消 appleID 的双重认证 取消家庭共享选项 二、窗口下载并安装 icloud 3.0 版
-
深入学习 MNN:开源深度学习框架简介、安装和编译指南
-
紧急模式问题处理 - 图 1 紧急模式 根本原因分析 应急模式提供了尽可能小的环境,即使无法进入应急模式,也可以在其中修复系统。在应急模式下,系统只安装根文件系统供读取,不尝试安装任何其他本地文件系统,不激活网络接口,只启动一些基本服务。 进入应急模式的原因通常是 /etc/fstab 文件中存在错误,导致文件系统挂载失败。 文件系统中存在错误,导致。 约束和限制 本节适用于 Linux 操作系统紧急模式。程序涉及修复文件系统。修复文件系统有丢失数据的风险,因此请先备份数据,然后再执行修复操作。 处理方法 输入根密码,然后进入修复模式。 在应急模式下,根分区以只读模式挂载。要修改根目录中的文件,需要执行以下命令以读写模式重新挂载根分区。# mount -o rw,remount / 请执行以下命令首先检查 fstab 文件是否有误,然后尝试挂载所有未挂载的文件系统。# mount -a 如果挂载点不存在,请创建一个挂载点。 如果不存在此类设备,请注释或删除挂载行。 如果指定了不正确的挂载选项,请将挂载参数更改为正确的参数。 如果没有发生错误,但出现 UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY 消息(通常是由文件系统错误引起的),请跳至第 7 步。 执行以下命令打开 /etc/fstab 以修改相应的错误。# vi /etc/fstab /etc/fstab 文件包含以下字段,以空格分隔:[文件系统] [dir] [type] [options] [dump] [fsck] 表 1 /etc/fstab 参数 说明 参数 说明 [文件系统] 要挂载的分区或存储设备。 文件系统]列建议以 UUID 的形式写入。执行 blkid 命令可查询设备文件系统 UUID。 参考格式如下: # <device> <dir> <type> <options> <dump> <fsck>; UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2 使用 UUID 的好处是,它们与磁盘顺序无关。如果你在 BIOS 中更改了存储设备的顺序,或重新插入了存储设备,或者因为某些 BIOS 可能会随机更改存储设备的顺序,那么使用 UUID 会更有效率。 [文件系统] 文件系统]的挂载位置。 类型 挂载设备或分区的文件系统类型,支持多种不同的文件系统:ext2、ext3、ext4、reiserfs、xfs、jfs、smbfs、iso9660、vfat、ntfs、swap 和 auto。 设置为自动类型后,挂载命令会猜测所使用的文件系统类型,这对 CDROM 和 DVD 等移动设备非常有用。 选项 挂载时要使用的参数,有些参数是特定文件系统特有的。例如,默认值参数使用文件系统的默认挂载参数,ext4 的默认参数为:rw、suid、dev、exec、auto、nouser、async。 有关更多参数,请执行以下命令查看 man 手册:# man mount
-
CI/CD 环境设置--部署和安装
-
群晖 DSM7.0 系统套件应用系列 I:套件-WebDAV 的常见安装方法和设置
-
[开发环境设置] Git 安装和配置 - V.使用
-
旷视天元开源图像比对工具 MegSpot,助力图像算法研发 - 1.多样化图像比对:可提供叠加比对、拖拽比对等多种比对方式,支持缩放、移动等同步操作,并可生成 GIF 保存比对结果。2. 2.专业呈现:支持像素级图像查看、图像直方图、RGB 查看;支持预览亮度、对比度、饱和度、灰度等指标。3. 视频对比:Cognizant Megapixel 可提供多种图像对比方法,如拖放对比等。 3.视频对比:除了支持视屏的所有图像对比功能外,CCTV MegSpot 还支持同步回放、回放暂停和快进、回放速度设置等功能。 4.跨平台支持:CCTV MegSpot 提供对 Mac、Linux 和 Windows 系统的跨平台支持,借助 Electron 框架,可以低成本完成跨平台应用的开发,并保证各平台体验的一致性。 此外,央视网MegSpot支持跨平台自动更新和数据持久化,确保用户体验的连续性,并支持中、英、日三种语言:MegSpot为大尺寸图像文件的对比提供了本地解决方案。 MegSpot 是一种用于比较大型图像文件的本地解决方案。
-
如何更改 NPM 全局模式默认安装路径和 npm 镜像源设置