laravel october 的安装以及配置,官网翻译、实践、分析、总结

本文详细介绍OctoberCMS的安装步骤及常见问题解决方法,并提供针对生产环境的安全配置建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

october 安装向导:
	1.准备空目录,网站根目录下,创建 october/
	2.下载安装包,http://octobercms.com/download
	3.将安装包解压到 october/
	4.设置安装目录具有写权限
	5.访问解压的安装脚本:october/install.php
	6.按步骤安装即可。

安装过程可能出现的问题:
	1.下载应用文件时,出现500错误。可能需要增加或者取消服务器的超时时间限制。例如:Apache的FastCGI可以将 '-idle-timeout' 设置为30s
	2.打开应用,出现空白页。检查 '/storage' 文件和目录的权限,设置为 '写权限'
	3.出现 'liveConnection' 错误码。安装程序使用80端口,来测试与安装服务器的连接。检查你的web服务器是否可以通过PHP,在80端口上创建传出连接(outgoing connection)。联系服务器运营商或者检查防火墙设置。
	4.访问后台,出现 '404'。如果应用程序招不到数据库,后端将显示404页面。尝试启用调试模式(debug mode),来查看底层错误信息。
	(这正是我出现的错误,安装完全没问题,也并非是官网提到的数据库,而是:未添加后面的服务器配置中的 'rewrite',在server中添加即可!)
	注意:在install_files/install.log文件中可以找到详细的安装日志。

安装完成后的操作步骤:
	1.删除安装文件
		install_files
		install.php
	2.查看配置
		配置文件在 config/ 目录下,每个文件的每个配置项都有说明,根据自己系统环境、需要进行配置
		例如:生产环境需要开启 'CSRF protection',而开发环境,可能想要开启 'Bleeding edge updates'
		强烈建议,在生产环境下,关闭调试模式(debug mode)
	3.设置程序调度(setting up the scheduler)
		确保计划任务正常运行,将以下cron条目,添加到服务器
		crontab -e
		* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
		我们系统,目前就是这么做的!(laravel的机制)
		注意:将 '/path/to/artisan' 替换成你系统的绝对路径
		注意:如果将上面的cron条目,添加到了 '/etc/cron.d',需要在 '* * * * *' 后面,指定一个用户!(linux crontab命令的机制 - 我也不太清楚,不过好像真是这样。我们登录服务器 crontab -e 添加的条目,好像不在 '/etc/cron.d',应该属于当前用户创建的任务计划,其他用户并不执行。每个用户自己创建的任务计划,只对自己有效。 '/ect/cron.d' - 应该是全局所有用户都有效,所以我们才需要指定某个用户??)
	4.设置队列
		可以选择项的设置一个外部队列来处理队列中的作业,默认情况下这些将由平台异步处理。该默认行为可以通过修改配置文件config/queue.php中的default参数来改变。
		如果你决定使用 'database' 队列驱动,为命令 'php artisan queue:work --once',添加一条 crontab 条目是一个非常好的主意,用于处理队列中的第一个有效的job。

配置
	所有的配置文件,都在 config/。每个配置项都有文档注释,可以自由查看这些文件,以及熟悉这些配置项。
	1.web服务器配置
		1>apache配置
		2>nginx配置(我用的这个,只翻译这个)
			vim /usr/local/etc/nginx/sites-enabled/october 	// 配置成你自己的虚拟主机路径
			在 'server' 块中添加:
				location / {
				    try_files $uri /index.php$is_args$args;
				}

				rewrite ^themes/.*/(layouts|pages|partials)/.*.htm /index.php break;
				rewrite ^bootstrap/.* /index.php break;
				rewrite ^config/.* /index.php break;
				rewrite ^vendor/.* /index.php break;
				rewrite ^storage/cms/.* /index.php break;
				rewrite ^storage/logs/.* /index.php break;
				rewrite ^storage/framework/.* /index.php break;
				rewrite ^storage/temp/protected/.* /index.php break;
				rewrite ^storage/app/uploads/protected/.* /index.php break;

		/*
			这个是我的一般 '非laravel' 项目的虚拟主机配置:
			server {
			    listen      80;
			    server_name october.devil.com;
			    root    /var/www/october;

			    error_log   /usr/local/var/logs/nginx/october.error.log;
			    access_log  /usr/local/var/logs/nginx/october.access.log main;

			    location / {
			        index  index.php index.html index.htm;
			        include   /usr/local/etc/nginx/conf.d/php-fpm;
			    }
			}
		*/

		而 'laravel' 项目一般都配置在 'public' 下,october将laravel,进行了修改。我们不需要一般的laravel配置

		注意:
			如果,我们将 'october' 安装到一个子目录下,将 'location /' 替换为:'location /october'(不知道能不能将october,直接集成到我现有的laravel项目中,等我整完了再看)
		3>lighttpd配置
		4>IIS配置

	2.应用配置
		1>调试模式
			config/app.php -> debug,默认为true
			生产环境下,应该设置为false,防止敏感信息泄露。
			调试模式开启,有以下几个特性:
				1)详细的错误信息
				2)用户认证未通过,提供一个详细的原因
				3)使用到的前端的一些css、js组件,不会被压缩
				4)默认,安全模式关闭的。(safe mode)
		2>安全模式
			config/cms.php -> enableSafeMode,默认为null
			如果启用安全模式,出于安全原因,CMS模板中禁用PHP代码部分。如果设置为null,当禁用调试模式时,安全模式也将开启(所以,我们一般不用配置,调试模式下,默认会开启。生产环境下,默认就是禁止的)。
		3>CSRF保护
			october提供了一个简单的方法,来保护应用程序免受csrf。首先,会在用户的session中,存储一个 '随机token'。之后,当使用了 '<?= Form::token() ?>',会自动将 '随机token' 追加到页面,并随每个请求返回。
			config/cms.php -> enableCsrfProtection,默认为false
		4>Bleeding edge updates
			october平台和一些插件将在两个阶段实现更改,以确保平台的整体稳定性和完整性。这意味着除了默认的稳定构建之外,它们还有一个测试构建。
			(应该是这个意思:等同于版本控制,有稳定版,最新的测试版,默认情况下,是使用的稳定版,如果想要最新版,可以设置该值为 'true',来下载最新版。。。。高、大、上!)
			config/cms.php -> edgeUpdates,默认为false
			注意:对于插件开发者,官方建议开启 'Test updates',通过插件页的配置!(给开发者说的)

	3.环境配置
		根据应用程序运行的不同环境,从而设置不同的配置项,通常是有帮助的(例如:我现在的laravel,就有:local/test/production,然后根据不同的环境,代码中可实现不同环境下的一些自动化配置)。设置 'APP_ENV' 环境变量,默认为 'production'。有2种方法设置值:
			1>直接在web服务器设置
				例如:在apache的 '.htaccess' 或 'httpd.config',添加:
					SetEnv APP_ENV "dev"
			2>october根目录下,创建一个 '.env' 文件,设置:		// laravel机制
				APP_ENV=dev
		注意:
			其他环境,需要创建不同的配置目录。'dev' ====> 'config/dev/' 放置所有的 'dev' 环境的配置(这点,应该是不同于 laravel,我用的是 5.2,不知道新版是不是改架构了)

	4.高级配置
		1>使用 'public' 目录(看到这里,就知道还是采用了 laravel 的机制,而且laravel为什么将入口文件放到了 'public' 下)
			因为生产环境的最终安全性,可以配置Web服务器使用 'public' 目录,以确保只能访问公共文件。	
			1)使用october命令生成 'public' 目录
				php artisan october:mirror public/
			2)我们修改服务器配置,将项目根目录设置到 public
				root    /var/www/october/public;
			注意:
				1)上面的命令可能需要执行的系统管理员或sudo权限。
				2)它也应该在每次系统更新后或者安装新插件时执行。

		2>扩展的环境配置(laravel的配置机制!!!)
			作为标准环境配置的替代品,可以在环境中放置公共值,而不是使用配置文件(上面刚说了,可以创建不同的配置子目录,来使用不同环境的配置项)。

			/*
				这里应该是对 '配置子目录' 的替代方案!
				大部分的配置,我们应该使用的是 '系统默认配置'。而不同环境变量,不同的配置项,应该很少,都可以放到 '.env' 中来配置! 然后,每个不同的环境,我们使用自己独有的 '.env' 文件,保证 '.env' 不要添加到版本库
				例如:
					local环境:
						.env
							APP_ENV=local
							debug=true
					test环境:
						.env
							APP_ENV=test
							debug=true
					production环境:
						.env
							APP_ENV=production
							debug=false
				不用再创建 '/config/local', 'config/test',将每个配置文件,都得复制一遍
			 */

			使用dotenv语法(https://github.com/vlucas/phpdotenv)来访问配置文件。运行october命令,将公共配置值移动到环境中:
				php artisan october:env
			这将会创建一个 '.env' 文件,并且通过使用 'env()' 帮助函数,来修改了各个配置文件,从而让我们可以方便的切换不同的环境,来得到不同的配置项。
				'debug' => true ======> debug' => env('APP_DEBUG', true),
			保证 '.env' 文件,不被加入到版本控制,因为不同的开发人员或服务器使用不同的环境配置!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值