Php/Symfony/Symfony2/インストール
提供: 初心者エンジニアの簡易メモ
目次
- 1 composer追加
- 2 symfonyインストーラーのDL
- 3 symfony2.3のプロジェクトを作成
- 4 symfony2.8のプロジェクトを作成
- 5 composer実行
- 6 準備
- 7 インストール確認
- 8 timezone修正
- 9 設定ファイル
- 10 ビルトインサーバで起動
- 11 バージョン確認方法
- 12 venderがない時
- 13 webの下に.cssなどがない時
- 14 cacheディレクトリ権限
- 15 logディレクトリ権限
- 16 cacheクリア
- 17 bootstrap.php.cache再作成
- 18 nginx
- 19 httpアクセスでのエラー
- 20 nginxのlogに502の以下エラーが出る場合
- 21 cssが適用されないエラー
- 22 vendor Call to a member function getServiceName() on nullエラーのとき
composer追加
$ curl -s http://getcomposer.org/installer | php $ sudo mv composer.phar /usr/local/bin/composer.phar $ composer -V Composer version 1.2.4 2016-12-06 22:00:51
symfonyインストーラーのDL
curl -LsS http://symfony.com/installer > symfony.phar sudo mv symfony.phar /usr/local/bin/symfony chmod a+x /usr/local/bin/symfony symfony --help
symfony2.3のプロジェクトを作成
$ symfony new leaning-symfony2 2.3 Symfony 2.3.42 was successfully installed. Now you can:
symfony2.8のプロジェクトを作成
$ symfony new leaning-symfony2_8 2.8 Symfony 2.8.19 was successfully installed. Now you can:
composer実行
composer.phar install
準備
mkdir app/cache
simplexml_import_dom() must be available がでた場合
(debian系の場合) sudo apt-get install php7.0-xml
the requested PHP extension mbstring is missing from your system. がでた場合
(debian系の場合) sudo apt-get install php7.0-mbstring
the requested PHP extension soap is missing from your system.
(debian系の場合) sudo apt-get install php7.0-soap
Install PDO drivers (mandatory for Doctrine).
(debian系の場合) sudo apt-get install php7.0-pdo php7.0-mysql
Install and enable the intl extension (used for validators).
(debian系の場合) sudo apt-get install php7.0-intl
インストール確認
php app/check.php
timezone修正
$ php -r "phpinfo();" | grep php.ini $ vi /etc/php5/cli/php.ini date.timezone = Asia/Tokyo
設定ファイル
$ vi app/config/parameters.yml parameters: database_driver: pdo_mysql database_host: 127.0.0.1 database_port: null database_name: symfony database_user: root database_password: null mailer_transport: smtp mailer_host: 127.0.0.1 mailer_user: null mailer_password: null locale: en secret: e1d43f3fa7a03ac8dc47196fd9ffb4xxxxxxxxxx
ビルトインサーバで起動
php app/console server:run localhost:8000
localhost:8000をブラウザで開く
バージョン確認方法
$ app/console -V Symfony version 2.3.42 - app/dev/debug
venderがない時
php composer.phar install
webの下に.cssなどがない時
$ app/console assets:install $ tree web web/bundles/ ├── framework │ ├── css │ │ ├── body.css │ │ ├── exception.css │ │ └── structure.css │ └── images │ ├── blue_picto_less.gif │ ├── blue_picto_more.gif │ ├── grey_magnifier.png │ └── logo_symfony.png └── sensiodistribution └── webconfigurator ├── css │ ├── configurator.css │ └── install.css └── images ├── blue-arrow.png ├── favicon.ico └── notification.gif
cacheディレクトリ権限
sudo chmod 777 -R app/cache/dev sudo chmod 777 -R app/cache/prod
logディレクトリ権限
sudo chmod 777 -R app/logs
cacheクリア
本番
php app/console cache:clear --env=prod --no-debug
開発
php app/console cache:clear --env=dev --no-debug
bootstrap.php.cache再作成
php ./vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
nginx
Linux/nginx/php-symfony [ショートカット]
httpアクセスでのエラー
You are not allowed to access this file. Checkエラーが起こる場合 web/app_dev.phpの'127.0.0.1'を自分のipに変更
nginxのlogに502の以下エラーが出る場合
*1 upstream sent too big header while reading response header from upstream, client:
vi /etc/nginx/conf.d/hogehoge.confのhttp{}内に以下を追加 fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 256k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k;
参考:http://www.geek.sc/archives/936
cssが適用されないエラー
php app/console assets:install --symlink
vendor Call to a member function getServiceName() on nullエラーのとき
sudo php app/console cache:clear --env=dev --no-debug