いがにんのぼやき

WEBエンジニアのブログ。IT、WEB、バンド、アニメ。

Vagrantのパーミッション問題、Laravelでのエラー

MacのローカルでVagrantを使用して共有フォルダを使用していると、Laravelで500エラーが発生してviewが返ってこない現象に陥った。

VagrantSSHで入ってパーミッションを変更してもうまくいかない。

原因としては、共有フォルダを使用すると、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

php_mysql.dllなんてないよ〜ってことです。

原因としては/etc/php.iniに間違った記述を行っていたことでした。

extension=php_mysql.dll

そりゃ、存在しないものを読み込んでって設定していたらエラー吐くよね・・・

WordPressのパーマリンクが反映されないとき

パーマリンクが反映しない

現状

パーマリンク

デフォルト http://xxx.com/?p=123

 

 

日付と投稿名 http://xxx.com/2015/01/04/sample-post/

 

としたかった。

WordPressパーマリンク設定から設定済み。

記事や固定ページの投稿ページではリンクの名前は反映されているのに、そのURLに飛ぶと404 NOT FOUNDとなってしまう。

WordPressで生成される.htaccessWordPress側で生成しても自分で作成しても同様。

 

実行環境

さくらのVPS

Linux

WordPress 4.1

 

対処法

.htaccessを使用できるように設定していないことが問題でした。

httpd.confに下記を追加。

 

<Directory "WordPressへの絶対パス">

    AllowOverride All

</Directory>

 

これによって、.htaccessが動作しそれぞれのパーマリンクでの移動が可能となりました。

 

ついでに

WordPress.htaccessが自動設定されないならばそのWordPressのフォルダーのパーミッションを書き込み可能なものにすることで生成が可能となります。

終わったら戻しましょう。

 

 

 

 

 

 

 

 

 

 

WordPressをインストールし初歩から学び始め、つまずいたので備忘録。