Не создается база в ubuntu через запрос PHP

Рейтинг: -1Ответов: 1Опубликовано: 20.03.2015
<?php

require 'INewsDB.class.php';
class NewsDB implements INewsDB{

protected  $_db;
const DB_NAME = '/var/www/mysite/news.db';

/**
 *
 */
function __construct(){
    if(is_file(self::DB_NAME)){
    $this->_db = new SQLite3(self::DB_NAME);
    }else{
        $this->_db = new SQLite3(self::DB_NAME);
        $sql = "CREATE TABLE msgs(
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                title TEXT,
                category INTEGER,
                description TEXT,
                source TEXT,
                datetime INTEGER)";
        $this->_db->exec($sql) or die($this->_db->lastErrorMsg());
        $sql = "CREATE TABLE category(
                id INTEGER,
                name TEXT)";
        $this->_db->exec($sql) or die($this->_db->lastErrorMsg());
        $sql = "INSERT INTO category(id, name)
                SELECT 1 as id, 'Политика' as name
                UNION SELECT 2 as id, 'Культура' as name
                UNION SELECT 3 as id, 'Спорт' as name";
        $this->_db->exec($sql) or die($this->_db->lastErrorMsg());
    }
}
function __destruct(){
    unset($this->_db);
}
function saveNews($title, $category, $description, $sourse){}
function getNews(){}
function deleteNews($id){}
}
$news = new NewsDB;

interface INewsDB{ // другй файл
function saveNews($title, $category, $description, $source);
function getNews();
function deleteNews($id);

Ошибка:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Находится в папке /var/www/mysite
mysite - 755, владелец - Я
ubuntu 14.10 desktop

P.S. Такая же проблема возникла и с запросами на MySQL с такой же ошибкой, но я решил забить и попробовать через SQLlite это сделать, но, как видно, проблема не решилась.

Ответы

▲ 1

из ответа, который принят автором, с добавкой от меня:

похоже на то, что файл /var/www/mysite/news.db недоступен для записи пользователю, от имени которого http-сервер обрабатывает запросы.

надо что-то одно из трёх (в порядке убывания разумности):

  1. настроить http-сервер на обработку вашего сайта от имени пользователя, которому принадлежит /var/www/mysite/news.db.

  2. поменять принадлежность файла, чтобы его владельцем был пользователь, от имени которого http-сервер обрабатывает запросы:

    $ sudo chown пользователь /var/www/mysite/news.db
    
  3. дать право записывать в этот файл всем:

    $ chmod +w /var/www/mysite/news.db