Symfony2.8+Apacheのインストール~Webアクセス確認まで(パーミッショントラブル解消法など)

Symfony2.8+Apacheのインストール~Webアクセス確認まで(パーミッショントラブル解消法など)

2017年4月21日 オフ 投稿者: KYO
Table of Contents

久しぶりに、新規サイトを立ち上げようとSymfonyをいつもの感じでフフフーンと準備していたら、バッチが止まっている。
よく見ると、Symfony1.4バッチだった。

たまたま気付いたが、いい機会だと Symfony2.8の情報を少し。
一旦、ApacheやDBは既にあるものとして、Symfony2.8を新たにインストールからアクセス出来る状況にするまでをメモ。

・Symfonyインストーラ
[shell]
$ sudo mkdir -p /usr/local/bin
$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
$ sudo chmod a+x /usr/local/bin/symfony
[/shell]

・Symfonyインストール
[shell]
$ symfony new <<…>> [version]
[/shell]

・composerをインストール
[shell]
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
[/shell]

・composerを利用して、アプリを構築
実行後のウィザードで、app/config/parameters.ymlが更新される
[shell]
$ composer create-project symfony/framework-standard-edition <<…>> [version]
[/shell]

・php.iniのTimezoneを確認
[shell]
$ sudo vim /etc/php.ini
[/shell]

以下がなければ追記
[shell]
[Date]
date.timezone = ‘UTC’
[/shell]

・config.phpへアクセスしてみる
その前に、ACLへクライアントIPを追記しておく
[shell]
$ vim web/config.php
[/shell]

適当な場所へアクセスするクライアントIPを追記。
[php]
if (!in_array(@$_SERVER[‘REMOTE_ADDR’], array(
‘<<この辺りに>>’,
‘127.0.0.1’,
‘::1’,
))) {
header(‘HTTP/1.0 403 Forbidden’);
exit(‘This script is only accessible from localhost.’);
}
[/php]

※ついでに、web/app_dev.phpにも同じIPの追加をしておきましょ。

ここで、おそらくパーミッションエラーの警告が出る(画像の MAJOR PROBRELS」

原因は、apacheユーザで書けないだけ。
その後も色々と影響が出るので、以下で対応。

[shell]
$ HTTPDUSER=`ps aux | grep -E ‘[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx’ | grep -v root | head -1 | cut -d\ -f1`
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
[/shell]

詳細は、この辺りを参照
http://symfony.com/doc/current/book/installation.html
やってることはシンプルで、apacheユーザと開発者ユーザに書き込み権限を付与。

コマンドを分離して確認するとわかるが、Tomcatが同時に動いていると意図通り動かない場合がある。
やってることは、$HTTPDUSERを利用する事なので、
1行目は、手動でセットしてしまえばよい。

・再度、config.phpへアクセス。
画像のような画面ならば、OK

・おまけで設定していた、web/app_dev.phpへアクセスしてみる。
画像のような、ステータスラインなど表示される。

・VirtualHostの設定(参考)
[shell]
cat /etc/httpd/conf.d/vhost/vhost-symfony2.8.conf
<VirtualHost *:80>
ServerName hoge.fuga.com
#ServerAlias hoge2.fuga.com

DocumentRoot /home/git.sites/hoge/web
<Directory "/home/git.sites/hoge/web">
AllowOverride All
Require all granted
</Directory>

ErrorLog /var/log/httpd/symfony2.8.error_log
CustomLog /var/log/httpd/symfony2.8.access_log combined
</VirtualHost>
[/shell]