4
4
Installing & Setting up the Symfony Framework
5
5
=============================================
6
6
7
- This article explains how to install Symfony in different ways and how to solve
8
- the most common issues that may appear during the installation process.
7
+ This article explains how to install Symfony and solve the most common issues
8
+ that may appear during the installation process.
9
9
10
10
.. seealso ::
11
11
12
12
Do you prefer video tutorials? Check out the `Joyful Development with Symfony `_
13
13
screencast series from KnpUniversity.
14
14
15
+ .. _installation-creating-the-app :
16
+
15
17
Creating Symfony Applications
16
18
-----------------------------
17
19
18
- Symfony provides a dedicated application called the **Symfony Installer ** to ease
19
- the creation of Symfony applications. This installer is a PHP 5.4 compatible
20
- executable that needs to be installed on your system only once:
21
-
22
- .. code-block :: terminal
23
-
24
- # Linux and macOS systems
25
- $ sudo mkdir -p /usr/local/bin
26
- $ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
27
- $ sudo chmod a+x /usr/local/bin/symfony
28
-
29
- # Windows systems
30
- c:\> php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));"
31
-
32
- .. note ::
33
-
34
- In Linux and macOS, a global ``symfony `` command is created. In Windows,
35
- move the ``symfony `` file to a directory that's included in the ``PATH ``
36
- environment variable and create a ``symfony.bat `` file to create the global
37
- command or move it to any other directory convenient for you:
38
-
39
- .. code-block :: terminal
40
-
41
- # for example, if WAMP is used ...
42
- c:\> move symfony c:\wamp\bin\php
43
- # create symfony.bat in the same folder
44
- c:\> cd c:\wamp\bin\php
45
- c:\> (echo @ECHO OFF & echo php "%~dp0symfony" %*) > symfony.bat
46
- # ... then, execute the command as:
47
- c:\> symfony
48
-
49
- # moving it to your projects folder ...
50
- c:\> move symfony c:\projects
51
- # ... then, execute the command as
52
- c:\> cd projects
53
- c:\projects\> php symfony
54
-
55
- .. _installation-creating-the-app :
56
-
57
- Once the Symfony Installer is installed, create your first Symfony application
58
- with the ``new `` command:
20
+ Symfony applications are created with `Composer `_, the package manager used by
21
+ modern PHP applications. If you don't have Composer installed in your computer,
22
+ start by :doc: `installing Composer globally </setup/composer >`. Then, execute
23
+ this command to create a new empty Symfony application based on its latest
24
+ stable version:
59
25
60
26
.. code-block :: terminal
61
27
62
- $ symfony new my_project_name
63
-
64
- This command creates a new directory called ``my_project_name/ `` that contains
65
- an empty project based on the most recent stable Symfony version available. In
66
- addition, the installer checks if your system meets the technical requirements
67
- to execute Symfony applications. If not, you'll see the list of changes needed
68
- to meet those requirements.
69
-
70
- .. note ::
71
-
72
- If the installer doesn't work for you or doesn't output anything, make sure
73
- that the PHP `Phar extension `_ is installed and enabled on your computer.
74
-
75
- .. note ::
76
-
77
- If the SSL certificates are not properly installed in your system, you
78
- may get this error:
28
+ $ composer create-project symfony/skeleton my-project
79
29
80
- cURL error 60: SSL certificate problem: unable to get local issuer certificate.
81
-
82
- You can solve this issue as follows:
83
-
84
- #. Download a file with the updated list of certificates from
85
- https://curl.haxx.se/ca/cacert.pem
86
- #. Move the downloaded ``cacert.pem `` file to some safe location in your system
87
- #. Update your ``php.ini `` file and configure the path to that file:
88
-
89
- .. code-block :: ini
90
-
91
- ; Linux and macOS systems
92
- curl.cainfo = " /path/to/cacert.pem"
93
-
94
- ; Windows systems
95
- curl.cainfo = " C:\path\to\cacert.pem"
30
+ .. tip ::
96
31
97
- Basing your Project on a Specific Symfony Version
98
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32
+ If your Internet connection is slow, you may think that Composer is not
33
+ doing anything. If that's your case, add the ``-vvv `` flag to the previous
34
+ command to display a detailed output of everything that Composer is doing.
99
35
100
- In case your project needs to be based on a specific Symfony version, use the
101
- optional second argument of the ``new `` command:
36
+ If your project needs to be based on a specific Symfony version, use the
37
+ optional third argument of the ``create-project `` command:
102
38
103
39
.. code-block :: terminal
104
40
105
41
# use the most recent version in any Symfony branch
106
- $ symfony new my_project_name 2.8
107
- $ symfony new my_project_name 3.1
42
+ $ composer create-project symfony/skeleton my-project "3.3.*"
108
43
109
44
# use a specific Symfony version
110
- $ symfony new my_project_name 2.8.3
111
- $ symfony new my_project_name 3.1.5
45
+ $ composer create-project symfony/skeleton my-project "3.3.5"
112
46
113
47
# use a beta or RC version (useful for testing new Symfony versions)
114
- $ symfony new my_project 2.7.0-BETA1
115
- $ symfony new my_project 2.7.0-RC1
116
-
117
- # use the most recent 'lts' version (Long Term Support version)
118
- $ symfony new my_project_name lts
119
-
120
- Each version has its *own * documentation, which you can select on any documentation
121
- page.
48
+ $ composer create-project symfony/skeleton my-project 3.3.0-BETA1
122
49
123
50
.. note ::
124
51
125
52
Read the :doc: `Symfony Release process </contributing/community/releases >`
126
53
to better understand why there are several Symfony versions and which one
127
54
to use for your projects.
128
55
129
- Creating Symfony Applications with Composer
130
- -------------------------------------------
131
-
132
- If you still use PHP 5.3 or can't use the Symfony installer for any reason, you
133
- can create Symfony applications with `Composer `_, the dependency manager used by
134
- modern PHP applications.
135
-
136
- If you don't have Composer installed in your computer, start by
137
- :doc: `installing Composer globally </setup/composer >`. Then, execute the
138
- ``create-project `` command to create a new Symfony application based on its
139
- latest stable version:
140
-
141
- .. code-block :: terminal
142
-
143
- $ composer create-project symfony/framework-standard-edition my_project_name
144
-
145
- You can also install any other Symfony version by passing a second argument to
146
- the ``create-project `` command:
147
-
148
- .. code-block :: terminal
149
-
150
- $ composer create-project symfony/framework-standard-edition my_project_name "2.8.*"
151
-
152
- .. tip ::
153
-
154
- If your Internet connection is slow, you may think that Composer is not
155
- doing anything. If that's your case, add the ``-vvv `` flag to the previous
156
- command to display a detailed output of everything that Composer is doing.
157
-
158
56
Running the Symfony Application
159
57
-------------------------------
160
58
161
- Symfony leverages the internal PHP web server (available since PHP 5.4) to run
162
- applications while developing them. Therefore, running a Symfony application is
163
- a matter of browsing to the project directory and executing this command :
59
+ Symfony provides a utility called `` server `` that leverages the internal PHP web
60
+ server to run applications while developing them. First, install that utility
61
+ in your application :
164
62
165
63
.. code-block :: terminal
166
64
167
- $ cd my_project_name /
168
- $ php bin/console server:run
65
+ $ cd my-project /
66
+ $ composer require server
169
67
170
- Then, open your browser and access the ``http://localhost:8000/ `` URL to see the
171
- Welcome Page of Symfony:
68
+ Then, whenever you want to run the application, execute this command:
172
69
173
- .. image :: /_images/quick_tour/welcome.png
174
- :align: center
175
- :alt: Symfony Welcome Page
176
- :class: with-browser
70
+ .. code-block :: terminal
177
71
178
- If you see a blank page or an error page instead of the Welcome Page, there is
179
- a directory permission misconfiguration. The solution to this problem is
180
- explained in the :doc: `/setup/file_permissions `.
72
+ $ php bin/console server:run
181
73
182
- When you are finished working on your Symfony application, stop the server by
183
- pressing ``Ctrl+C `` from the terminal or command console.
74
+ Open your browser, access the ``http://localhost:8000/ `` URL and you'll see the
75
+ application running. When you are finished working on your Symfony application,
76
+ stop the server by pressing ``Ctrl+C `` from the terminal or command console.
184
77
185
78
.. tip ::
186
79
187
80
PHP's internal web server is great for developing, but should **not ** be
188
81
used on production. Instead, use Apache or Nginx.
189
82
See :doc: `/setup/web_server_configuration `.
190
83
191
- Checking Symfony Application Configuration and Setup
192
- ----------------------------------------------------
84
+ Checking Symfony Requirements
85
+ -----------------------------
193
86
194
- The Symfony Installer checks if your system is ready to run Symfony applications.
195
- However, the PHP configuration for the command console can be different from the
196
- PHP web configuration. For that reason, Symfony provides a visual configuration
197
- checker. Access the following URL to check your configuration and fix any issue
198
- before moving on:
87
+ In addition to PHP 7.1, Symfony has other `technical requirements `_ that your
88
+ server must meet. Symfony provides a tool called "Requirements Checker" (or
89
+ ``req-checker ``) to check those requirements:
199
90
200
- .. code-block :: text
91
+ .. code-block :: terminal
92
+
93
+ $ cd my-project/
94
+ $ composer require req-checker
201
95
202
- http://localhost:8000/config.php
96
+ The ``req-checker `` utility adds two PHP scripts in your application:
97
+ ``bin/check.php `` and ``public/check.php ``. Run the first one in the command
98
+ console and the second one in the browser. This is needed because PHP can define
99
+ a different configuration for both the command console and the web server, so
100
+ you need to check both.
203
101
204
- Fixing Permissions Problems
205
- ---------------------------
102
+ Once you fix all the reported issues, uninstall the requirements checker:
206
103
207
- If you have any file permission errors or see a white screen, then read
208
- :doc: `/setup/file_permissions ` for more information.
104
+ .. code-block :: terminal
105
+
106
+ $ composer remove req-checker
209
107
210
108
.. _installation-updating-vendors :
211
109
212
110
Updating Symfony Applications
213
111
-----------------------------
214
112
215
- At this point, you've created a fully-functional Symfony application! Every Symfony
216
- app depends on a number of third-party libraries stored in the `` vendor/ `` directory
217
- and managed by Composer.
113
+ At this point, you've created a fully-functional Symfony application! Every
114
+ Symfony app depends on a number of third-party libraries stored in the
115
+ `` vendor/ `` directory and managed by Composer.
218
116
219
- Updating those libraries frequently is a good practice to prevent bugs and
117
+ Updating those libraries frequently is a good practice to fix bugs and prevent
220
118
security vulnerabilities. Execute the ``update `` Composer command to update them
221
119
all at once (this can take up to several minutes to complete depending on the
222
120
complexity of your project):
@@ -226,68 +124,64 @@ complexity of your project):
226
124
$ cd my_project_name/
227
125
$ composer update
228
126
229
- .. tip ::
230
-
231
- Symfony provides a command to check whether your project's dependencies
232
- contain any known security vulnerability:
127
+ .. _install-existing-app :
233
128
234
- .. code-block :: terminal
129
+ Installing an Existing Symfony Application
130
+ ------------------------------------------
235
131
236
- $ php bin/console security:check
132
+ When working collaboratively in a Symfony application, it's uncommon to create
133
+ a new Symfony application as explained in the previous sections. Instead,
134
+ someone else has already created and submitted it to a shared repository.
237
135
238
- A good security practice is to execute this command regularly to be able to
239
- update or replace compromised dependencies as soon as possible.
136
+ It's recommended to not submit some files (``.env ``) and directories (``vendor/ ``,
137
+ cache, logs) to the repository, so you'll have to do the following when
138
+ installing an existing Symfony application:
240
139
241
- .. _ installing-a-symfony2-distribution :
140
+ .. code-block :: terminal
242
141
243
- Installing the Symfony Demo or Other Distributions
244
- --------------------------------------------------
142
+ # clone the project to download its contents
143
+ $ cd projects/
144
+ $ git clone ...
245
145
246
- You've already downloaded the ` Symfony Standard Edition `_: the default starting project
247
- for all Symfony apps. You'll use this project throughout the documentation to build
248
- your app!
146
+ # make Composer install the project's dependencies into vendor/
147
+ $ cd my- project/
148
+ $ composer install
249
149
250
- Symfony also provides some other projects and starting skeletons that you can use:
150
+ Checking for Security Vulnerabilities
151
+ -------------------------------------
251
152
252
- `The Symfony Demo Application `_
253
- This is a fully-functional application that shows the recommended way to develop
254
- Symfony applications. The app has been conceived as a learning tool for Symfony
255
- newcomers and its source code contains tons of comments and helpful notes.
153
+ Symfony provides a utility called "Security Checker" (or ``sec-checker ``) to
154
+ check whether your project's dependencies contain any known security
155
+ vulnerability. Run this command to install it in your application:
256
156
257
- `The Symfony CMF Standard Edition `_
258
- The `Symfony CMF `_ is a project that helps make it easier for developers to add
259
- CMS functionality to their Symfony applications. This is a starting project
260
- containing the Symfony CMF.
157
+ .. code-block :: terminal
261
158
262
- `The Symfony REST Edition `_
263
- Shows how to build an application that provides a RESTful API using the
264
- `FOSRestBundle `_ and several other related Bundles.
159
+ $ cd my-project/
160
+ $ composer require sec-checker
265
161
266
- .. _install-existing-app :
162
+ From now on, this command will be run automatically whenever you install or
163
+ update any dependency in the application.
267
164
268
- Installing an Existing Symfony Application
269
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
165
+ Installing the Symfony Demo application
166
+ ---------------------------------------
270
167
271
- When working collaboratively in a Symfony application, it's uncommon to create
272
- a new Symfony application as explained in the previous sections. Instead,
273
- someone else has already created and submitted it to a shared repository .
168
+ ` The Symfony Demo Application `_ is a fully-functional application that shows the
169
+ recommended way to develop Symfony applications. It's a great learning tool for
170
+ Symfony newcomers and its code contains tons of comments and helpful notes .
274
171
275
- It's recommended to not submit some files (:ref: `parameters.yml <config-parameters-yml >`)
276
- and directories (``vendor/ ``, cache, logs) to the repository, so you'll have to do
277
- the following when installing an existing Symfony application:
172
+ Run the following command to download and install the Symfony Demo application:
278
173
279
174
.. code-block :: terminal
280
175
281
- # clone the project to download its contents
282
- $ cd projects/
283
- $ git clone ...
176
+ $ composer create-project symfony/symfony-demo my-project
284
177
285
- # make Composer install the project's dependencies into vendor/
286
- $ cd my_project_name/
287
- $ composer install
178
+ Now, enter the ``my-project/ `` directory, run the internal web server and
179
+ browse ``http://127.0.0.1:8000 ``:
180
+
181
+ .. code-block :: terminal
288
182
289
- # now Composer will ask you for the values of any undefined parameter
290
- $ ...
183
+ $ cd my-project
184
+ $ php bin/console server:start
291
185
292
186
Keep Going!
293
187
-----------
@@ -315,10 +209,5 @@ Go Deeper with Setup
315
209
316
210
.. _`Joyful Development with Symfony` : http://knpuniversity.com/screencast/symfony
317
211
.. _`Composer` : https://getcomposer.org/
318
- .. _`Phar extension` : http://php.net/manual/en/intro.phar.php
319
- .. _`Symfony Standard Edition` : https://github.com/symfony/symfony-standard
212
+ .. _`technical requirements` : https://symfony.com/doc/current/reference/requirements.html
320
213
.. _`The Symfony Demo application` : https://github.com/symfony/symfony-demo
321
- .. _`The Symfony CMF Standard Edition` : https://github.com/symfony-cmf/standard-edition
322
- .. _`Symfony CMF` : http://cmf.symfony.com/
323
- .. _`The Symfony REST Edition` : https://github.com/gimler/symfony-rest-edition
324
- .. _`FOSRestBundle` : https://github.com/FriendsOfSymfony/FOSRestBundle
0 commit comments