ubuntuでlaravelを動かす手順

DocumentRootの変更

sudo gedit /etc/apache2/sites-enabled/000-default.conf
ここでDocumentRootの変更をする
DocumentRootの設定変更を次のようにする。
sudo gedit /etc/apache2/apache2.conf

mod_rewriteが利用可能となっているかを確認する。

cat /etc/apache2/mods-available/rewrite.load
次のように表示されればインストールはされている
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
有効にするには
sudo a2enmod rewrite
そして
sudo systemctl restart apache2
とすれば有効になる

Laravelをxdomainに設置する方法のメモ

VPS(Virtual Private Server)などでは、httpd.confがいじれるためにDocumentRootを変更できるが無料レンタルサーバーなどでは、Laravel を設置するのは、下記のように行う。

他のレンタルサーバーでは次の方法だけでいいようだ。「Laravelディレクトリ/public/」の中身全部を公開されるディレクトリのルート、xdomainならFTPから見れるルート「/」にコピー。ルートの「index.php」の中の「require __DIR__.’/../vendor/autoload.php’;」を「require __DIR__.’/Laravelディレクトリ/vendor/autoload.php’;」に修正。「$app = require_once __DIR__.’/../bootstrap/app.php’;」を「$app = require_once __DIR__.’/Laravelディレクトリ/bootstrap/app.php’;」に修正。

さらにxdomain特有の修正は、.htaccessの修正が必要になります。mod_negotiation.c がxdomainのApacheにはないようだ。

<IfModule mod_rewrite.c>
# <IfModule mod_negotiation.c>
# Options -MultiViews -Indexes
# </IfModule>

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

Fedora27WorkstationにLaravel 5.5を設置する

Laravel 5.5の動作環境は、「https://readouble.com/laravel/」によると

  • PHP >= 7.0.0
  • OpenSSL PHP拡張
  • PDO PHP拡張
  • Mbstring PHP拡張
  • Tokenizer PHP拡張
  • XML PHP拡張

なので、次のパッケージをインストールする。

  1. $su –
  2. #dnf -y install php php-common php-pdo php-mbstring php-xml php-pear
  3. #exit

次に「composer」をインストールします。composerの中身はphpなので、「https://getcomposer.org/」からダウンロードしても構いません。

  1. $su
  2. #dnf -y install composer
  3. #exit

composerを使ってLaravelをインストールします。次の例は、Laravel 5.5を「blog」というディレクリにインストールします。rootユーザでは実行しないでくださいとエラーが出てたので、一般ユーザで実行してください。/var/www/htmlなどに入れる場合 #chmod 755 /var/www を実行する必要があると思います。

  • $composer create-project –prefer-dist laravel/laravel blog “5.5.*”

10分程度かかります。赤色で囲まれたメッセージが出たときは、読んで、対応して、もう一度実行してください。

SELinux環境では次のコマンドも参考にしてください。

  • sudo semanage fcontext -a -t httpd_sys_content_t ‘/var/www/html(/.*)?’
  • sudo restorecon -R /var/www/html
  • sudo chcon -R -t httpd_cache_t /var/www/html/blog/storage
  • sudo chcon -R -t httpd_cache_t /var/www/html/blog/bootstrap/cache

その他、パーミッション設定

  • $sudo chmod 755 /var/www
  • $sudo chmod 777 /var/www/html
  • $sudo chmod -R 777 storage
  • $sudo chmod -R 777 bootstrap/cache

よくわからない設定 $sudo chown -R root:apache /var/www

最後に、/etc/httpd/conf/httpd.confのDocumentRootを「/var/www/html/blog/public/」に変更して「http://localhost」でアクセスして、「Laravel」と中央に表示されれば成功です。