在共享主机上部署laravel错误

时间:2017-12-26 14:33:33

标签: deployment permissions laravel-5.2 denied

我正在使用子域在共享主机上部署我的laravel 5.4项目 我安装了composer,更改了index.php的路径,供应商路径,数据库主机,用户名等。

我收到以下错误

致命错误:未捕获UnexpectedValueException:" / storage / logs"中没有现有目录。并且它不可构建:权限被拒绝  /vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:171

我尝试了以下命令: php artisan cache:清楚 php artisan clear-compiled sudo chmod -R 777存储/ -R

但是(composer dump-autoload)给出了一个错误,因为php -v是5,虽然我选择它在cpanel中为7

我也尝试了setenforce 0

但没有任何事情发生..任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

php artisan route:clear

php artisan config:clear

php artisan cache:clear

为我工作!

答案 1 :(得分:0)

这是一个重复的:see here

  1. 在 laravel 根文件夹中检查您的 .env 文件:

a) 检查您是否有 .env 文件,如果没有,将 .env.example 复制粘贴到 .env

b) APP_DEBUG = true(部署到服务器时,检查您的应用后 - 更改为 false)

c) APP_KEY = (必须为空)

d) 保存 .env 文件

e) 运行 php artisan key:generate

f) 打开您的网站(所有其他错误服务器返回)

  1. 运行composer install

这是我在 Ubuntu 20.4 上的 apache2 解决方案

我假设您已经完成了 phwt & Taras 中的步骤。这些仍然是必要的。

你需要改变:

  • ServerName 到您的 IP 地址或域
  • DocumentRoot 指向公共 Laravel 目录的路径
  • RewriteCond %{SERVER_NAME} = 到您的 IP 地址或域

文件:/etc/apache2/sites-available/laravel.conf

<VirtualHost *:80>
   ServerName www.mylaravelproject.com
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/laravel/public/

   <Directory /var/www/laravel/public/>
       AllowOverride All
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.mylaravelproject.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

保存此运行后:

sudo a2ensite laravel.conf
sudo systemctl restart apache2

(可选,推荐)如果您想使用 SSL 证书,请执行以下操作: sudo certbot 并按照说明操作