企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 动态网站 [toc] 等一下 - 在所有以前的例子中,我们从来没有在硬盘中创建任何目录来存储这些路由。简短的答案:我们不必。所有F3路线都是虚拟的。它们不反映我们的硬盘文件夹结构。它们不反映我们的硬盘文件夹结构。如果您有不使用框架的程序或静态文件(图像,CSS等)只要这些文件的路径与应用程序中定义的任何路由不冲突 - 如果服务器配置正确,则Web服务器软件将将它们传递到用户的浏览器。 ##### PHP 5.4的内置WEB服务器 * * * * * > PHP最新的稳定版本有自己的内置Web服务器。使用以下配置启动它: ```php php -S localhost:80 -t /var/www/ ``` 上述命令将开始将所有请求路由到Web根`/var/www`。如果接收到对文件或文件夹的传入HTTP请求,PHP将在Web根目录中查找它,并将其发送到浏览器(如果找到)。否则,PHP将加载默认的`index.php`(包含启用F3的代码)。 ##### Apache配置实例 * * * * * > 如果您使用Apache,请确保激活apache.conf(或httpd.conf)文件中的URL重写模块(mod_rewrite)。您还应该创建一个包含以下内容的.htaccess文件: ``` RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule .* index.php [L,QSA] ``` 脚本告诉Apache,只要HTTP请求到达,并且如果没有找到物理文件(!-f)或路径(!-d)或符号链接(!-l),它应该将控制权转移到`index.php`, 它包含我们的主/前端控制器,而这又调用框架。 包含上述Apache指令的.htaccess文件应始终位于与index.php相同的文件夹中。 您还需要设置Apache,以便知道您的硬盘中index.php的物理位置。一个典型的配置是: ``` DocumentRoot "/var/www/html" <Directory "/var/www/html"> Options -Indexes +FollowSymLinks +Includes AllowOverride All Order allow,deny Allow from All </Directory> ``` 如果您将Fat-Free项目放入现有文档根目录的子文件夹中,某些Apache配置可能需要在`.htaccess`文件中定义一个RewriteBase。如果应用程序不工作,或默认路由`/`工作,但是`/test`可能会失败,请尝试添加基本路径: ``` RewriteEngine On RewriteBase /fatfree-project/ ``` 如果您同时开发多个应用程序,则可以轻松管理虚拟主机配置: ``` NameVirtualHost * <VirtualHost *> ServerName site1.com DocumentRoot "/var/www/site1" <Directory "/var/www/site1"> Options -Indexes +FollowSymLinks +Includes AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> <VirtualHost *> ServerName site2.com DocumentRoot "/var/www/site2" <Directory "/var/www/site2"> Options -Indexes +FollowSymLinks +Includes AllowOverride All Order allow,deny Allow from All </Directory> </VirtualHost> ``` 必须在`/etc/hosts`文件中列出每个`ServerName`(我们示例中的site1.com和site2.com)。在Windows上,您应该编辑`C:/WINDOWS/system32/drivers/etc/hosts`。可能需要重新启动才能实现更改。然后,您可以将Web浏览器指向地址`http://site1.com`或`http://site2.com`。虚拟主机使您的应用程序更容易部署。 ##### Nginx配置实例 * * * * * > 对于Nginx服务器,以下是推荐的配置(将ip_address:port替换为您的环境的FastCGI PHP设置): ``` server { root /var/www/html; location / { index index.php index.html index.htm; try_files $uri /index.php?$query_string; } location ~ \.php$ { fastcgi_pass ip_address:port; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ``` ##### Lighttpd配置实例 * * * * * > Lighttpd服务器的配置方式类似: ``` $HTTP["host"] =~ "www\.example\.com$" { url.rewrite-once = ( "^/(.*?)(\?.+)?$"=>"/index.php/$1?$2" ) server.error-handler-404 = "/index.php" } ``` ##### IIS 配置实例 * * * * * > 安装URL重写模块和对应于您的Windows版本的相应的.NET框架。然后在您的应用程序根目录中创建一个名为web.config的文件,具有以下内容: ``` <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Application" stopProcessing="true"> <match url=".*" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration> ```