Ubuntu 16.04通过引用这个和这个来设置 。 我能够看到我的欢迎来到http://xxxx/index.php上的CI页面,但是当我添加一个testing控制器并转到http://xxxx/index.php/test我得到一个404响应。 我也没有使用域,而只是IP。 /etc/nginx/nginx.conf: user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 2; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## […]
我有一个特定的要求,在同一个Nginx服务器上指定两个基于CodeIngniter的应用程序,指向domain.com/和domain.com/site2 。 到目前为止,我已经尝试过各种configuration组合,没有任何运气。 大多数时候,它给了我404错误。 以下是我最新的configuration文件。 server { listen 80; server_name domain.com www.domain.com; root /var/www/domain.com/; location / { root /var/www/domain.com/site1/public/; index index.html index.php access_log /var/www/domain.com/site1/logs/access.log; error_log /var/www/domain.com/site1/logs/errors.log; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /var/www/domain.com/main/public$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } } location /site2{ root /var/www/domain.com/site2/public/; index index.html index.php; access_log /var/www/domain.com/site2/logs/access.log; error_log /var/www/domain.com/site2/logs/errors.log; location ~ […]
基本上,我用Apache的htaccess说“像是如果请求的文件或目录不存在,通过index.php路由请求” 我怎样才能用nginx做到这一点? 这样,如果一个样式表被请求,它被送达。 但是,如果url不是磁盘上的文件,那么它应该运行框架。
我有一个在NGINX上运行的股票CI应用程序。 没有重写(我尝试了16个小时,并没有得到它的工作,它是500,404,403,或input文件没有指定),PHP文件传递给PHP-FPM。 这是我的默认文件在可用网站(Ubuntu 12.04,尝试在CentOS上的一切,没有任何工作): server { listen 80; root /usr/share/nginx/www/; index index.php index.html index.htm; server_name fish-in-a-bowl.net; location / { try_files $uri $uri/ /index.html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www/cloud; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { […]
我使用Codeigniter为我的网站,根网站工作得很好,其中有一个着陆页,但是我有一个开发部分位于/var/www/domain.com/www/dev/ which /var/www/domain.com/www/是根(login页面存储在那里)。 现在,当我去domain.com/dev ,我的codeigniter网站工作正常,但是当我加载一个控制器,例如domain.com/index.php/search它给了我一个404错误。 在domain.com的错误日志中显示: 2011/10/02 02:03:37 [error] 17042#0: *568 open() "/var/www/domain.com/www/dev/index.php/search" failed (20: Not a directory), client: xx.xx.xx.xx, server: domain.com, request: "GET /dev/$ 现在我不知道为什么要这样做,以及如何解决这个问题。 我怎样才能阻止这一点,也删除“index.php”删除的URL,因为Codeigniter教程只包含Apache的重写,这是无效的nginx。
的背景 我正在使用在Nginx上运行的CodeIgniter 2.1.4和PHP 5.3。 我有一个HTML表单,表示同质数据的基本行。 每个“行”有几个<input />字段,每个都有相同的名称。 这是一个简单的例子: <input type="text" name="firstname[]" /> <input type="text" name="lastname[]" /> 所以,我有很多firstname[]input, lastname[]input等。提交表单(操作是POST )后,我检索像这样的控制器方法中的数据(请注意,我使用CodeIgniter): $firstnames = $this->input->post('firstnames'); $lastnames = $this->input->post('lastnames'); 这些variables是包含表单中相应行的值的数组,从这里我对这些数据做了一些处理。 问题 当表单中的行数很大(几百)时,生成的PHP数组的大小与表单中input的数量不匹配 – 例如,表单可能有200个firstnameinput,但$firstname数组只有167.另外, $lastnamevariables也有不同的大小 – 166。 当表单的元素数量较less时,一切正常。 我的理论是,我超过了某种最大尺寸设置或缓冲区中的某个地方,导致表单数据被截断。 是否有一个PHP或CodeIgniter或nginx设置为“最大表单大小”,我不知道? 对于它的价值,在使用application/x-www-form-urlencoded或multipart/form-data作为multipart/form-data的内容types时,我已经看到了相同的行为。 我错过了什么?
从Apache移动到一个新的Nginx服务器我找不出这个新的重写代码… 我有一个网站,主要CodeIgniter应用程序,让我们说www.codeigniterapp.com 。 然后我有单独的CodeIgniter应用程序,如www.codeigniterapp.com/random-directory/app2等 主要的CodeIgniter应用程序工作正常,但加载任何其他的比基础的url时,子目录中的应用程序将失败。 例如, www.codeigniterapp.com/random-directory/app2有效,但是www.codeigniterapp.com/random-directory/app2/some-action-这将打印出404错误。 我需要一些行动在这里被发送到index.php。 它的工作原理是这样的: www.codeigniterapp.com/random-directory/app2/index.php?/some-action-here 所以我需要帮助创buildNginx重写代码。 app2 -directory中的旧apache .htaccess是这样的: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /random-directory/app2/ RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 /index.php </IfModule> 现在我正在使用一个像这样的Nginx(Code Igniter optimized)vhostconfiguration: server { listen 80; server_name codeigniterapp.com www.codeigniterapp.com; root […]
我有一台安装了CentOS 6.5 Plesk 11.5的专用服务器,我打开了Nginx来处理PHP文件。 我已经在Plesk Tools / Services Management中启用了服务: 反向代理服务器(nginx) PHP-FPM支持nginx 和域/ example.com / Web服务器设置 智能静态文件处理 由nginx直接提供静态文件 通过nginx处理PHP 我使用CodeIgniter框架,一切工作与默认configuration。 但是当我尝试删除CodeIgniterconfiguration文件(config.php)中的index.php时, $config['index_page'] = ''; $config['uri_protocol'] = 'REQUEST_URI'; 以前的URL example.com/project/index.php/text变成example.com/project/text,虽然我无法访问链接,并有以下错误: 没有指定input文件。 我已经search,有很多解决scheme,没有为我工作。 Plesk自动为每个域生成Nginxconfiguration。 根据指南,我已经尝试在域/ example.com / Web服务器设置中的其他nginx指令中添加此代码。 location ~ /project { try_files $uri $uri/ /index.php?$args; } 我得到一个不同的错误: 文件未find。 我应该改变什么,在哪里? 我浪费了2天没有成功。 我在example.com.conf中有下面的代码,但它是由Plesk自动生成的。 server { listen IP_IS_HIDDEN:80; server_name domain.com; […]
我有一个login表单的Codeigniter应用程序。 我在Apache和Nginx上运行它。 在Apache上,一切工作正常,表单操作是正常的。 但在Nginx上,表单动作使用的是https而不是http (目前我不想)。 我使用这个来生成表单: <?php echo form_open(site_url('/user/do_login')); ?> 它产生这个: <form action="https://example.com/index.php/user/do_login" method="post" accept-charset="utf-8"> 我如何强制它在Nginx上生成http而不是https ?
这是我的CodeIgniter控制器类代码。 class View extends MY_Controller { function index($number) { ….. } ……. } 通过浏览器,我可以使用这个URL访问View类的索引方法 http://localhost/view/index/12 所以,我的问题是 是否有任何有效的方式来重写URL,例如,到这个URL http://localhost/view/12 我的networking服务器是Nginx。