Vagrantのパーミッション問題、Laravelでのエラー
MacのローカルでVagrantを使用して共有フォルダを使用していると、Laravelで500エラーが発生してviewが返ってこない現象に陥った。
VagrantにSSHで入ってパーミッションを変更してもうまくいかない。
原因としては、共有フォルダを使用すると、Mac側でパーミッションが書き換えられてしまうらしい? 対策としてはVagrantfileにパーミッションの設定をしてあげることで問題を解決した。
具体的な手順としては、Vagrantfileのconfig.vm.synced_folderの設定を下記の用に変更した。
config.vm.synced_folder "data", "/var/www/html/", :owner => 'apache', :group => 'apache', mount_options: ['dmode=777', 'fmode=755']
最初に共有するローカルのフォルダ、共有先のVagrant内でのフォルダを指定。
次にそのフォルダのパーミッショングループを指定。
Apacheのユーザーとグループに関してはhttpd.confを参照
User apache #Apacheのユーザー Group apache #Apacheのグループ
最後にパーミッション設定(ここらへんまた調べて追記します)。
これでviewが表示されました。めでたしめでたし
PHPのエラー
CentOS上でphp -vを打つとこんなエラーが出ていた。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/php_mysql.dll' - /usr/lib64/php/modules/php_mysql.dll: cannot open shared object file: No such file or directory in Unknown on line 0
原因としては/etc/php.iniに間違った記述を行っていたことでした。
そりゃ、存在しないものを読み込んでって設定していたらエラー吐くよね・・・
WordPressのパーマリンクが反映されないとき
パーマリンクが反映しない
現状
デフォルト http://xxx.com/?p=123
↓
日付と投稿名 http://xxx.com/2015/01/04/sample-post/
としたかった。
記事や固定ページの投稿ページではリンクの名前は反映されているのに、そのURLに飛ぶと404 NOT FOUNDとなってしまう。
WordPressで生成される.htaccessをWordPress側で生成しても自分で作成しても同様。
実行環境
さくらのVPS
WordPress 4.1
対処法
.htaccessを使用できるように設定していないことが問題でした。
httpd.confに下記を追加。
AllowOverride All
</Directory>
これによって、.htaccessが動作しそれぞれのパーマリンクでの移動が可能となりました。
ついでに
WordPressで.htaccessが自動設定されないならばそのWordPressのフォルダーのパーミッションを書き込み可能なものにすることで生成が可能となります。
終わったら戻しましょう。
WordPressをインストールし初歩から学び始め、つまずいたので備忘録。