Je veux faire tourner Codeigniter sous NGINX mais cela ne fonctionne pas. Je veux être capable d'envoyer des paramètres aux méthodes des contrôleurs. Mais jusqu'à présent, je ne peux même pas accéder au contrôleur en utilisant l'adresse exemple.com/index.php/welcome.php . Il est dit Aucun fichier d'entrée n'a été spécifié . Cependant, lorsque je tape exemple.com/index.php/ il redirige vers le contrôleur de bienvenue. Je dirais que j'ai essayé tous les fichiers de configuration de nginx sur Internet.
voici ma configuration ngnix
server {
## Your website name goes here.
server_name compute.amazonaws.com;
## Your only path reference.
root /var/www/;
listen 80;
## This should be in your http block and if it is, it's not needed here.
index index.html index.htm index.php;
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
log_not_found off;
}
# location / {
# This is cool because no php is touched for static content
#try_files $uri $uri/ /index.php?q=$uri&$args;
# try_files $uri $uri/ /index.php;
#
location / {
try_files $uri $uri/ /index.php?$args;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}
location ~ \.php$ {
#try_files $uri =404;
#fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_split_path_info ^(.+\.php)(.*)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
c'est mon contrôleur de bienvenue
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->helper('url');
$this->load->view('welcome_message');
}
function a($a)
{
echo "AHOJ ";
echo $a;
}
}
Je veux être capable d'appeler la fonction a à partir du contrôleur de bienvenue et obtenir une réponse. En gros, je veux construire un serveur REST et c'est mon problème. routes.php
$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['test_welcome'] = 'welcome';
$route['api/v1/(:any)'] = "api_v1/$1";
$route['item/(:any)'] = "item/show_item/$1";
$route['scaffolding_trigger'] = "";
La ligne importante est $route['api/v1/(:any)'] = "api_v1/$1" ; Je veux que ça marche.
Voici mon codeigniter config.php
$config['base_url'] = '';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
Aidez-moi, s'il vous plaît. Merci beaucoup.