質問: ### 前提・実現したいこと CentOS7でweb&dbサーバーをVMware上に構築していて、 php4時代から続く古いシステムをphp5.3→php7.1向けに移植中です。 並行してFuelPHP1.7.3も使っていたので CentOS7上でもphp7.1に合わせてFuelPHP1.7.3でなく1.8系にしようしています。 ### 発生している問題・エラーメッセージ FuelPHPはapacheグループ所属のwebuserのホームディレクトリ配下に配置して、 publicディレクトリを/var/www/html にシンボリックリンクを作る、 というところまでやっています。 httpdのエラーログに、 ``` AH00037: Symbolic link not allowed or link target not accessible: /var/www/html/fuel ``` との表示が出て、webブラウザには403 Forbiddenとなってます。 ### 試したこと 「/etc/httpd/conf/httpd.conf」内で、 ``` AllowOverride None # Allow open access: Require all granted ``` ``` Options Indexes FollowSymLinks AllowOverride None Require all granted ``` ってなっているので、シンボリックリンクを辿って実行できそうな気がします。 publicディレクトリのオーナーを「apache:apache」に変えたり、「chmod 755」したりしましたが、変化なしです。 「# setenforce 0」としても現象が変わらないので、SELinux由来ではなさそうな気がします。「# setenforce 1」として有効にしたまま動作させたいです。 念のため、「# setsebool -P httpd_enable_homedirs on」を実行してみましたが、変わりませんでした。 また、FuelPHP独自のログが残る「/home/webuser/works/fuel/app/logs」には 何ら生成されていないため、httpdでの遮断のせいなのかなと思ってます。 シンボリックリンクがダメならと、/etc/httpd/conf/httpd.conf に `Alias /fuel/ "/home/webuser/works/public/"` ってのを足してみたら、エラーログが変わりました。 ``` AH00035: access to /fuel/ denied (filesystem path '/home/webuser/works') because search permissions are missing on a component of the path ``` ### 補足情報(言語/FW/ツール等のバージョンなど) CentOS Linux release 7.3.1611 (Core) PHP 7.1.4 (cli) (built: Apr 11 2017 18:26:18) ( NTS ) vsftpd: version 3.0.2 OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013 psql (PostgreSQL) 9.5.4
回答: /home/webuser/works/public/ のパーミッションだけでなく、上位ディレクトリにも許可が必要です。 webuser のホームディレクトリ **/home/webuser/** のパーミッションが 700 または 750 となっていて、apache ユーザーからアクセスできなくなっているのではないでしょうか。 webuser と apache ユーザーが違うグループだと仮定して、少なくとも、**o+x** の権限が必要です。