За последние 24 часа нас посетили 23032 программиста и 1239 роботов. Сейчас ищут 804 программиста ...

SQlite3 и Apache

Тема в разделе "PHP и базы данных", создана пользователем Alexus, 24 окт 2019.

  1. Alexus

    Alexus Активный пользователь

    С нами с:
    1 май 2018
    Сообщения:
    64
    Симпатии:
    2
    Сделал установку Sqlite3 на linux, компиляцию в sublime проходит успешно (код срабатывает), но при попытке запуска скрипта из браузера ничего не происходит, код такой:

    PHP:
    1. <?php
    2. $db = new SQLite3('mydb.db');
    3. $sql = 'CREATE TABLE guest(
    4.        idguest INTEGER PRIMARY KEY
    5. )';
    6. $db->query($sql);;
    Работаю из linux/apache/firefox, понимаю что ошибка на уровне apache, но как исправить не имею представления.. Копался в php.ini снимал комментарии с extension=pdo_sqlite и extension=sqlite3, не помогло, может кто посоветовать что еще можно сделать?

    Благодарю за внимание
     
  2. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    А что должно произойти то?
     
  3. Alexus

    Alexus Активный пользователь

    С нами с:
    1 май 2018
    Сообщения:
    64
    Симпатии:
    2
    Должен создаться файл (база данных) mydb.db с таблицей внутри. При запуске скрипта из компилятора файл создается, потом я удаляю его и пытаюсь запустить этот же скрипт из firefox, получаю ошибку 500 Internal Server Error , mydb.db не создается
     
  4. Alexus

    Alexus Активный пользователь

    С нами с:
    1 май 2018
    Сообщения:
    64
    Симпатии:
    2
    Покопался в логах апача, полная ошибка выглядит так: Unable to open database: unable to open database file in /var/www/html/php-4/catalog/classes/example.php:3\nStack trace:\n#0 /var/www/html/php-4/catalog/classes/example.php(3): SQLite3->__construct('mydb.db')\n#1 {main}\n thrown in /var/www/html/php-4/catalog/classes/example.php on line 3, referer: http://localhost/php-4/catalog/classes/ [Thu Oct 24 20:54:49.216996 2019] [php7:error] [pid 11552] [client 127.0.0.1:45872]
    --- Добавлено ---
    На одном из форумов нашел решение на изменение полного пути внутри переменной:
    Код (Text):
    1. $db = new SQLite3('mydb.db');
    , мол путь указан не полностью, однако мне это не помогло ((

    http://forum.php.su/topic.php?forum=71&topic=15077
    --- Добавлено ---
    Всем спасибо разобрался )) оказывается в linux для создания файлов и записи внутри них должно быть разрешение не только у самого файла через директиву chmod 777, но и у самой дирректории в которой этот файл должен располагаться!
    --- Добавлено ---
    Решение нашел тут: https://stackoverflow.com/questions...pt-to-write-a-readonly-database-during-insert
     
    #4 Alexus, 24 окт 2019
    Последнее редактирование: 24 окт 2019