尝试在Apache下运行Laravel
2019年8月9日 (2019 8 yuè 9 rì)
请参考以下文章来了解如何搭建环境。
尝试在CentOS 7上创建LAMP环境
尝试安装Laravel
将Laravel安装在Apache的目录下。
为了在Apache上运行,将Laravel安装到/var/www目录下。
$ cd /var/www ← /var/wwwに移動
$ composer create-project laravel/laravel laratest ← 「laratest」というプロジェクトを作成
当显示“应用密钥已成功设置。”时,完成。
在Apache中设置虚拟主机
因为将整个Apache设置为适用于Laravel有点笨拙,所以进行虚拟主机配置,设置laratest的子域名。
创建用于虚拟主机的conf文件。
在/etc/httpd下创建一个目录,用于存放虚拟主机配置文件的conf文件。
# mkdir /etc/httpd/vhost.d
将虚拟主机配置到conf文件中。
<VirtualHost *:80>
DocumentRoot /var/www/laratest/public
ServerName test.lalatest.com
</VirtualHost>
修改httpd.conf文件以导入存储在vhost.d目录中的conf文件。
(最終行に追加)
include /etc/httpd/vhost.d/*conf
当把vhost.d中存储的conf文件导入到httpd.conf中,这样就完成了。
修改httpd.conf后需要重新启动httpd。
如果你真的想把它分成多个url,那么要么分配不同的端口,要么确保在DNS中正确解析名称来访问。
!!注意!!无法写入日志
当使用上述配置来访问宿主操作系统的IP地址时,会连接到Laravel,但会出现以下错误信息:“无法打开流或文件“/var/www/laratest/storage/logs/laravel-2019-08-10.log”:打开流失败:权限被拒绝。”这是说日志的权限设置不正确,我根据下面的网站进行了修正,但情况没有改变。在使用CentOS/Apache/Laravel时设置权限的方法。
添加了这个设置后,就能顺利访问了。
在laravel5的安装中,出现了文件权限错误。
整理一下,大概是这样的。
· 确认能够访问以下laravel目录的组和权限。
./storage
./bootstrap/cache
如果仍然出现权限错误,很有可能是由于selinux的干扰。
使用以下命令设置上下文。
# semanage fcontext -a -t httpd_sys_rw_content_t "[laravel projectのディレクトリ]/storage"
# semanage fcontext -a -t httpd_sys_rw_content_t "[laravel projectのディレクトリ]/bootstorage/cahce"
顺便说一下,通常在Apache中使用的目录会设置为“httpd_sys_content_t”,但是上述目录必须设置为“httpd_sys_rw_content_t”。然而,Selinux真是一件麻烦事…
确认访问
当使用客户操作系统的IP地址访问时,会显示Laravel的页面。
当想要运行多个Laravel环境时,请参考附录。
以下的网站很有参考价值。
我想在Homestead上创建两个Laravel项目,并且希望将它们放在本地开发环境中,但是报错说’homestead-7’已经存在,问题已经解决。
使用Homestead创建多个Laravel项目的简便方法。