除了主页,我的 Laravel 项目中没有任何内容可以访问
Nothing accessible in my Laravel project except the home page
过去 3 天一直在搜索有关在我的 linux mint 18.2 系统 运行 apache 2.4 上配置 laravel 5.4 的信息。当 apache 服务器启动并且我在浏览器中手动输入 localhost 时,它确实显示了 laravel 的默认主页,但是当我尝试通过括号中的实时预览访问它时(实时预览基础 url : http://localhost 因为我的 laravel project pro 位于 /var/www/html/) 但它会抛出与我的 apache configuration.So 中的错误相对应的内部服务器错误在这里我提出了我的 .htaccess 文件, apache2 的站点启用目录中的 000-default.conf 文件和 apache2.conf 文件:
一件重要的事情:我在 /var/www/html/
下找到了我的项目文件夹 pro
1. 000-default.conf(sites-enabled)
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/pro/public
<Directory /var/www/html/pro/public>
Options Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
2. apache2.conf
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
Include /etc/phpmyadmin/apache.conf
3 .htaccess (/var/www/html/pro/public/.htaccess)
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /var/www/html/pro/public/
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
先谢谢你!
尝试授予 read/write 对您的存储空间和 laravel 中的 bootstrap 文件夹的权限。如果可以的话,还要设置虚拟主机。参考 here.
您的所有路线将在 index.php 之后可用,我的意思是如果您的路线 url 是 abc,那么它将以 http://localhost/index.php/abc
的形式开放。现在您无需更改 .htacesss 文件中的任何内容。
转到您的项目根目录并授予读写执行权限,以便laravel能够将文件缓存在bootstrap/cache目录中并能够在 storage/logs 目录中创建日志文件。
sudo chmod -R 777 bootstrap/cache
sudo chmod -R 777 storage/logs
如果您的项目在那之后也没有 运行,那么有时您也需要授予此权限。
sudo chmod -R 777 vendor/ storage/
运行这三个命令之后
sudo a2ensite 000-default.conf
sudo a2enmod rewrite
sudo service apache2 restart
你的路由应该在 localhost 之后提供。
希望这会有所帮助:)
过去 3 天一直在搜索有关在我的 linux mint 18.2 系统 运行 apache 2.4 上配置 laravel 5.4 的信息。当 apache 服务器启动并且我在浏览器中手动输入 localhost 时,它确实显示了 laravel 的默认主页,但是当我尝试通过括号中的实时预览访问它时(实时预览基础 url : http://localhost 因为我的 laravel project pro 位于 /var/www/html/) 但它会抛出与我的 apache configuration.So 中的错误相对应的内部服务器错误在这里我提出了我的 .htaccess 文件, apache2 的站点启用目录中的 000-default.conf 文件和 apache2.conf 文件: 一件重要的事情:我在 /var/www/html/
下找到了我的项目文件夹 pro1. 000-default.conf(sites-enabled)
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/pro/public
<Directory /var/www/html/pro/public>
Options Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
2. apache2.conf
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
Include /etc/phpmyadmin/apache.conf
3 .htaccess (/var/www/html/pro/public/.htaccess)
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /var/www/html/pro/public/
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
先谢谢你!
尝试授予 read/write 对您的存储空间和 laravel 中的 bootstrap 文件夹的权限。如果可以的话,还要设置虚拟主机。参考 here.
您的所有路线将在 index.php 之后可用,我的意思是如果您的路线 url 是 abc,那么它将以 http://localhost/index.php/abc
的形式开放。现在您无需更改 .htacesss 文件中的任何内容。
转到您的项目根目录并授予读写执行权限,以便laravel能够将文件缓存在bootstrap/cache目录中并能够在 storage/logs 目录中创建日志文件。
sudo chmod -R 777 bootstrap/cache
sudo chmod -R 777 storage/logs
如果您的项目在那之后也没有 运行,那么有时您也需要授予此权限。
sudo chmod -R 777 vendor/ storage/
运行这三个命令之后
sudo a2ensite 000-default.conf
sudo a2enmod rewrite
sudo service apache2 restart
你的路由应该在 localhost 之后提供。
希望这会有所帮助:)