Eu tenho tentado obter lithium
em execução com o Nginx sem sucesso. A estrutura de diretório de lithium
é assim
lithium
|-> app libraries .htaccess
|-> webroot .htacess --other directories
|-> index.php .htaccess --other files
Eu copiei a pasta lithium
para o meu /var/www/
. O caminho do lítio é /var/www/lithium/
Agora eu configurei as regras de reescrita dessa maneira no meu nginx.conf
server {
listen 80;
server_name localhost;
root /var/www/;
location /lithium {
rewrite ^/$ /app/webroot/ break;
rewrite ^(.*)$ /app/webroot/$1 break;
}
location /lithium/app {
rewrite ^/$ /webroot/ break;
rewrite ^(.*)$ /webroot/$1 break;
}
location /lithium/app/webroot {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?url=$1 break;
}
}
...then my php and other configurations
Mas o nginx sempre gera um erro 404
. Por que isso está acontecendo?
Eu também tentei isso
server {
listen 80;
server_name localhost;
root /var/www/;
location /lithium {
if (!-e $request_filename) {
rewrite ^/lithium/(.+)$ /lithium/app/webroot/$1 last;
break;
}
}
location /lithium/app/webroot {
if (!-e $request_filename) {
rewrite ^/lithium/app/webroot/(.+)$ /lithium/app/webroot/index.php?url=$1 last;
break;
}
}
...then my php and other configurations
Mas, novamente, há um erro 404
.
Editar
Como sugerido eu alterei a raiz do meu servidor para /var/www/lithium/app/webroot
, então meu nginx conf se parece com isso
server {
listen 80;
server_name localhost;
root /var/www/lithium/app/webroot;
access_log /var/log/lithium/access.log;
error_log /var/log/lithium/error.log warn;
index index.php index.html;
try_files $uri $uri/ /index.php?$args;
location ~ \.php$
{
.. ...
......
}
agora eu posso ver a casa de lítio, mas quando eu vou para o painel de teste de lítio que é http://localhost/test
novamente mostra casa de lítio em vez do painel de teste.Quando eu uso o apache e ir para o url http://localhost/test
me mostra o test dashboard
. Portanto, as regras de reescrita do nginx ainda não estão completamente corretas. Mais se eu apontar root
to lithium's webroot
i não consigo acessar outros diretórios no meu /var/www/
EDITADO ÁGIO
Este é o meu bloco de servidores completo
server {
server_name lithium;
root /var/www/lithium/app/webroot;
access_log /var/log/nginx/lith.access.log;
error_log /var/log/nginx/lith.error.log;
listen 127.0.0.2:80;
rewrite_log on;
# rewrite rules for lithium
location / {
index index.php index.html;
try_files $uri $uri/ /index.php?url=$uri&$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#include /etc/nginx/fastcgi_params;
fastcgi_param SERVER_NAME $host;
}
location ~ /\.ht {
deny all;
}
}
Estou usando o php 5.4.3. como php-fpm. Eu tentei fazer o que é mencionado no site oficial do lítio aqui mas eu não entendo essa linha
cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
qual localização é sapi
se referindo a? Alguma idéia?