Jump to content
Fórum Script Brasil
  • 0

Aplicação PHP MVC/Composer Apache/Nginx


Thyago Dantas

Question

Bom! Eu estudo PHP faz pouco tempo e com base no que aprendi em cursos. Eu desenvolvi um painel em PHP para controlar postagens na minha aplicação NodeJS, só que, em localhost usando XAMPP, tudo funciona corretamente, mas ao fazer o deploy para minha VPS usando apache ou nginx, ele mostra sempre a página de erro 404 definida no Application.php. Segue abaixo fotos da estrutura do projeto e os códigos importantes onde preciso de ajuda para identificar esse erro.

Código do index.php

<?php
session_start();
date_default_timezone_set('America/Recife');
require('vendor/autoload.php');

define('INCLUDE_PATH_STATIC', 'http://localhost/Painel/Views/Pages/');
define('INCLUDE_PATH', 'http://localhost/');


$app = new Painel\Application;

$app->run();

?>

Código do Painel/Application.php

<?php

namespace Painel;

class Application
{

    private $controller;

    private function setApp()
    {
        $loadName = 'Painel\Controllers\\';
        $url = explode('/', @$_GET['url']);

        if ($url[0] == '') {
            $loadName .= 'Home';
        } else {
            $loadName .= ucfirst(strtolower($url[0]));
        }

        $loadName .= 'Controller';

        if (file_exists($loadName . '.php')) {
            $this->controller = new $loadName();
        } else {
            include('Views/Pages/404.php');
            die();
        }
    }

    public function run()
    {
        $this->setApp();
        $this->controller->index();
    }
}

?>

 

imagem_2023-04-19_024458765.png

imagem_2023-04-19_024533382.png

imagem_2023-04-19_024611837.png

imagem_2023-04-19_024636444.png

imagem_2023-04-19_024653643.png

imagem_2023-04-19_024720149.png

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Eu não uso o servidor VPS, por enquanto. Mesmo assim, eu fiz algumas modificações:

index.php

<?php
require 'Painel/Application.php'; // aqui
session_start();
date_default_timezone_set('America/Recife');
require('vendor/autoload.php');
define('INCLUDE_PATH_STATIC', 'http://localhost/Painel/Views/Pages/');
define('INCLUDE_PATH', 'http://localhost/');
$app = new Application(); // aqui
echo $app->teste(); // aqui
$app->run();
?>

----------------------

Application.php 
<?php
/* namespace Painel;  <--- Aqui */
class Application {
    private $controller;
    private function setApp() {
        $loadName = 'Painel\Controllers\\';
        $url = explode('/', @$_GET['url']);
        if ($url[0] == '') {$loadName .= 'Home';} else {
            $loadName .= ucfirst(strtolower($url[0]));}
        $loadName .= 'Controller';
        if (file_exists($loadName . '.php')) {
            $this->controller = new $loadName();} else {
            include('Views/Pages/404.php');
            die();}
    }
    public function teste(){return "olá mundo!";} // aqui
    public function run(){
        $this->setApp();
        $this->controller->index();}
}

?>

 

Edited by Frank K Hosaka
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...