在阅读本文档安装系统时,请确保您已经 熟练掌握 如何使用 apache 或 nginx 的进行网站系统的配置方法。
如果您 不是很了解 或 了解甚少,请直接购买我们的 付费安装服务,同时把服务器信息、需要安装的系统源码提供给我们,我们会帮您配置并安装系统。
使用虚拟主机安装需要您对技术有足够的自信,因为很有可能不能自动化完成安装的,需要技术不断的采坑并解决。
请自行下载一个环境检测程序来进行虚拟主机环境的检测;
http://www.tecmz.com/env_check.php.zip
当使用的是虚拟主机时,通常网站的根目录不能绑定到 <网站目录>/public 目录,因此需要进行特殊的配置。
配置 apache/nginx 服务器,请将网站的根目录配置到 <网站目录>;
访问 http://www.example.com/install;
使用安装引导向导进行安装;
server { listen 80; server_name www.example.com; charset utf-8; index index.php index.html; root /var/www/html/www.example.com; autoindex off; location ^~ /.git { deny all; } location ^~ /.env { deny all; } location ^~ /storage/ { deny all; } location / { try_files /public$uri /public$uri/ /public/index.php?$query_string; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param PHP_VALUE "open_basedir=/var/www/html/www.example.com/:/tmp/:/var/tmp/"; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}
<VirtualHost *:80> ServerName www.example.com DocumentRoot d:/wwwroot/example.com</VirtualHost>
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !^public RewriteRule ^(.*)$ public/$1 [L]</IfModule>
<?xml version="1.0" encoding="UTF-8"?><configuration> <system.webServer> <directoryBrowse enabled="false" /> <rewrite> <rules> <rule name="Imported Rule 3" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions> <add input="{APPL_PHYSICAL_PATH}public/{R:1}" matchType="IsFile" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="/public/index.php" /> </rule> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <action type="Rewrite" url="/public/{R:1}" /> </rule> </rules> </rewrite> </system.webServer></configuration>
需要开启PHP5.5版本;
由于阿里云禁用了putenv函数,这个函数尤为重要,所以需要打一个函数补丁,在程序最开始(public/index.php)的位置嵌入PHP代码;
<?phpfunction env($key, $defaultValue = null){ static $envFileConfig = null; if (null === $envFileConfig) { $envFileConfig = []; $envFile = file_get_contents(__DIR__ . '/.env'); foreach (explode("\n", $envFile) as $line) { $line = trim($line); if (empty($line) || strpos($line, '#') === 0) { continue; } list($k, $v) = explode('=', $line); $envFileConfig[trim($key)] = trim($value); } } if (array_key_exists($key, $envFileConfig)) { return $envFileConfig[$key]; } return $defaultValue;}
在虚拟主机配置环境下,由于网站的所有数据都被暴露在浏览器访问路径下,因此要控制系统的系统文件不被访问到,当您配置好之后,至少要测试一下路径不能直接被用户下载,否则系统将会受到严重威胁。
http://www.example.com/.env
http://www.example.com/storage/install.lock