Не удается открыть микшер нет такого файла или каталога

Обновлено: 06.07.2024

В PHP скриптах, вызывая include() , require() , fopen() или их производные, такие как include_once , require_once или даже move_uploaded_file() , часто появляются ошибки или предупреждения:

Не удалось открыть поток: нет такого файла или каталога.

Как быстро найти первопричину проблемы?

Ответ 1

Есть много причин, по которым можно столкнуться с этой ошибкой, и поэтому я дам контрольный список того, что необходимо проверить в первую очередь для решения этой ситуации.

Предположим, у нас есть следующая строка:

require "/path/to/file"

Контрольный список

1. Проверьте путь к файлу на предмет опечаток

  • проверьте вручную (визуально проверив путь) ;

  • переместите все, что вызывается с помощью require* или include* в переменную, скопируйте ее и попробуйте получить к ней доступ с терминала:

2. Убедитесь, что путь к файлу правильный с точки зрения относительного и абсолютного пути

  • если он начинается с косой черты "/", то это относится не к корню папки вашего веб-сайта (корень документа), а к корню вашего сервер :

    • например, каталог вашего веб-сайта может быть /users/tony/htdocs ;

    • не относительно пути к корню вашего веб-сайта или файла ;

    • или всегда используйте абсолютные пути к файлам .

    1. используйте require __DIR__."/relative/path/from/current/file" , который возвращает каталог текущего файла ;

    2. определите SITE_ROOT константу самостоятельно:

      • в корне каталога вашего веб-сайта создайте файл, например , config.php

      • в config.php напишите :

    • в каждом файле, в котором вы хотите сослаться на корневую папку сайта, включите config.php и затем используйте SITE_ROOT константу везде, где хотите:

    3. Проверьте свои пути включения

    Другой способ включения файлов, ни относительный, ни абсолютный, - это полагаться на путь включения . Это часто бывает с библиотеками или фреймворками, такими как, например, Zend framework.

    Подобное включение будет выглядеть так:

    include "Zend/Mail/Protocol/Imap.php"

    В этом случае вы должны убедиться, что папка, в которой находится «Zend», является частью пути включения.

    Это можно проверить с помощью:

    echo get_include_path();

    Вы можете добавить в него папку с помощью:

    set_include_path(get_include_path().":"."/path/to/new/folder");

    4. Убедитесь, что у вашего сервера есть доступ к этому файлу

    Может случиться так, что у пользователя, запускающего серверный процесс (Apache или PHP), просто нет разрешения на чтение или запись в этот файл.

    Чтобы проверить, под каким пользователем запущен сервер, можно использовать posix_getpwuid :

    $user = posix_getpwuid(posix_geteuid());

    var_dump($user);

    Чтобы узнать права доступа к файлу, введите в терминале следующую команду:

    ls -l <path/to/file>

    5. Проверьте настройки PHP

      • Если установлено, PHP не сможет получить доступ к любому файлу за пределами указанного каталога (даже через символическую ссылку).

      • По умолчанию не устанавливается, и в этом случае ограничений нет.

      • Можно проверить, вызвав phpinfo() или используя ini_get("open_basedir") .

      • Вы можете изменить настройку, отредактировав файл php.ini или файл httpd.conf.

      • Е сли включено, могут быть ограничения. Однако данный режим был удален в PHP 5.4. Если вы все еще используете версию, которая поддерживает безопасный режим, обновитесь до версии PHP, которая это еще поддерживает .

      • О тносится только к включению или открытию файлов через сетевой процесс, такой как http://, но не работает для локальной файловой системы.

      • Э ти опции можно проверить, используя ini_get("allow_url_include") или установи в с помощью ini_set("allow_url_include", "1") .

    Другие случаи

    Если ничего из вышеперечисленного не помогло диагностировать проблему, могут возникнуть следующие особые ситуации:

    1. Включение библиотеки на основе пути включения

    Может случиться так, что вы подключаете библиотеку, например, платформу Zend, используя относительный или абсолютный путь. Например:

    require "/usr/share/php/libzend-framework-php/Zend/Mail/Protocol/Imap.php"

    Но по-прежнему получаете такую же ошибку.

    Это могло произойти из-за того, что файл, который вы (успешно) включили, сам имеет оператор include для другого файла, и этот второй оператор include предполагает, что вы добавили путь этой библиотеки к пути включения.

    Например, упомянутый ранее файл фреймворка Zend может включать следующее:

    include "Zend/Mail/Protocol/Exception.php"

    что не является включением ни по относительному пути, ни по абсолютному пути. Предполагается, что каталог фреймворка Zend был добавлен в путь включения.

    В таком случае единственное практическое решение - добавить каталог в ваш путь включения.

    2. SELinux

    3. Symfony

    Если вы используете Symfony и получаете эту ошибку при загрузке на сервер, возможно, к э ш приложения не был сброшен, либо потому, что app/cache был загружен, либо этот к э ш не был очищен.

    Для этого надо выполнить следующую консольную команду:

    cache:clear

    4. Внутри Zip-файла символы, отличные от A SC II

    По-видимому, эта ошибка может произойти также при вызове zip->close(), когда некоторые файлы внутри zip имеют в своем имени не-ASCII символы, такие как, например, «é».

    Потенциальное решение - обернуть имя файла, используя utf8_decode(), перед созданием целевого файла.

    Ответ 2

    В дополнение к предыдущему ответу:

    Программное обеспечение для виртуального хостинга

    Права доступа к файлам

    1. Этот пользователь владеет файлом и, возможно, родительским каталогом (особенно родительским каталогом, если вы хотите записывать файлы). В большинстве сред общего хостинга это не будет проблемой, потому что ваш пользователь должен владеть всеми файлами под вашим корневым каталогом.

    2. В Linux хорошей практикой будет использова ние chmod 600 (только владелец может читать и писать) или chmod 644 (владелец может писать, но все могут читать) .

    Ответ 3

    Samba Shares

    Если у вас есть тестовый сервер Linux и вы работаете из клиента Windows, общий ресурс Samba мешает команде chmod . Даже если вы используете:

    chmod -R 777 myfolder

    со стороны Linux вполне возможно, что Unix Group\www-data все еще не будет иметь доступ на запись. Есть рабочее решение : если ваш общий ресурс настроен так, что администраторы Windows сопоставлены с корневым каталогом – в Windows откройте разрешения, отключите наследование для вашей папки с копией, а затем предоставьте полный доступ для www-данных.

    Мы будем очень благодарны

    если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

    Сделал, что должно было измениться?
    пс
    сделал от рута, ибо от пользователя ругается что прав нету.
    ппс
    Кстати, посмотрел на сайте гагабайта, если название кодека что-то даст, то вот он:

    Кодек Realtek ALC889

    вКонтакте
    ОСь указана под аватаркой .
    Вот скажите, я один такой? У меня всегда уникальные проблемы. Гугл о них ничего не знает, и другие линуксойды тоже.
    Если проблемы решаются, только методом тыка.

    NAME
    depmod - program to generate modules.dep and map files.

    SYNOPSIS
    depmod [ -b basedir ] [ -e ] [ -E Module.symvers ] [ -F System.map ] [ -m ] [ -n ] [ -v ] [ -A ] [ -P prefix ] [ -w ] [
    version ]

    depmod [ -e ] [ -E Module.symvers ] [ -F System.map ] [ -m ] [ -n ] [ -v ] [ -P prefix ] [ -w [ [ version ]
    [ filename . ]
    ] ]

    DESCRIPTION
    Linux kernel modules can provide services (called "symbols") for other modules to use (using one of the EXPORT_SYMBOL
    variants in the code). If a second module uses this symbol, that second module clearly depends on the first module.
    These dependencies can get quite complex.

    depmod creates a list of module dependencies by reading each module under /lib/modules/version and determining what sym-
    bols it exports and what symbols it needs. By default, this list is written to modules.dep, and a binary hashed version
    named modules.dep.bin, in the same directory. If filenames are given on the command line, only those modules are exam-
    ined (which is rarely useful unless all modules are listed). depmod also creates a list of symbols provided by modules
    in the file named modules.symbols and its binary hashed version, modules.symbols.bin. Finally, depmod will output a file
    named modules.devname if modules supply special device names (devname) that should be populated in /dev on boot (by a
    utility such as udev).

    If a version is provided, then that kernel version's module directory is used rather than the current kernel version (as
    returned by uname -r).

    depmod will also generate various legacy map files in the output directory for use by the older hotplug infrastructure.
    These map files are largely deprecated.

    Нет звука после установки или маленький How-To

    Модератор: adventurer

    Нет звука после установки или маленький How-To

    Привет всем. В третий раз сталкиваюсь с проблемой, что нет звука в lubuntu (11.10) после установки. установка производилась на разные машины хотя по идее все должно работать из коробки.

    Выручала установка PulseAudio. Это кроссплатформенный звуковой сервер, предоставляющий бóльшие возможности, по сравнению со стандартным набором драйверов и утилит, так же известных как ALSA.
    Для установки pulseaudio вводим одну единственную команду:

    Lubrox писал(а): А звуковуха какая? Почему сразу не пишем? 00:01.1 Audio device: ATI Technologies Inc Wrestler HDMI Audio [Radeon HD 6250/6310]
    00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) (rev 40)

    При настройке alsamixer необходимо не только всё включить, но , возможно, кого-то и выключить.

    У меня, например,
    Lubuntu 11.10

    lspci | grep audio
    00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller (rev 04)

    Но вот беда: этот параметр alsamixer-а не сохраняется!
    Приходится каждый раз после входа выполнять вышеозначенную команду.

    Что делал:
    добавил в /usr/bin/ такой скрипт:

    Кто в курсе- поправте!

    mutaborus писал(а): Но вот беда: этот параметр alsamixer-а не сохраняется!

    После того как выполнены настройки командой 'amixer'(консольный миксер) их необходимо сохранить командой
    alsactl store <ИмяКарты>

    Узнать имя карты можно так:

    Сохранить настройки миксера таким образом можно так:

    ЗЫ: По идее, при старте системы. гдето в недрах штатных стартовых скриптов (/etc/apm/) должна выполняться команда которая и инициализирует миксер
    alsactl restore
    Сами настройки миксера обычно сохраняются в файл
    /var/lib/alsa/asound.state
    Проверьте.

    256MB_RAM писал(а): После того как выполнены настройки командой 'amixer'(консольный миксер) их необходимо сохранить командой
    alsactl store . ls -l /proc/asound/ | grep '^l'
    lrwxrwxrwx 1 root root 5 2012-02-28 18:35 ICH6 -> card0 А содержание файла /var/lib/alsa/asound.state осталось как было control.34 <
    iface MIXER
    name 'External Amplifier'
    value true
    comment <
    access 'read write'
    type BOOLEAN
    count 0
    >
    >

    value true сменил на false.
    Тоже ничего не дало
    Сброс настройки External происходит по выходу из сессии.

    И что характерно:
    Все изменения в переключателях-ползунках Alsamixer сохраняются автоматически- без дополнительных телодвижений- просто после выхода из Alsa.
    Кроме External Amplifier !

    и всетаки попробуем еще раз.
    $ amixer sset 'External Amplifier' off
    Убеждаемся что он off.
    Сохраняем конфигурацию.
    $ sudo alsactl store
    Теперь "портим" звук .
    $ amixer sset 'External Amplifier' on
    и просто "восстанавливаем" обратно сохраненную конфигурацию.
    $ sudo alsactl restore
    После чего
    $ amixer sget 'External Amplifier'
    Должно быть off.
    Если это так, то сохранение/восстановление работает.

    По идее при старте системы настройки миксера(amixer) должны восстанавливаться именно путем запуска alsactl restore из стартовых скриптов. Однако данные знания почерпнуты мною
    при работе с неким чисто консольным Embedded Linux в котором кроме amixer ничего и не было.
    Потому рискну предположить что настройки низкоуровневого amixer "ктото портит сверху", ну мож GUI-миксер или pulseaudio.
    Возможно стоит попытаться забанить запуск всяких микшеров и pulseaudio и в итоге добиться
    чтобы работали самые примитивные и низкоуровневые консольные вещи, такие как:
    * 'alsactl store' и 'alsactl restore'
    * 'amixer'
    * 'arecord' и 'aplay'

    А после этого уже разбираться с высокоуровневыми микшерами и pulseaudio.

    Насколько я понимаю, alsamixer это почти тот же amixer, но с ncurses интерфейсом и он наверно делает store и restore и как вы пишите делает это он некорректно, т.к. не сохраняет настройки External Amplifier так что не используйте его пока не добъетесь работоспособности в консольных alsactl, amixer и aplay.

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: LinuxMint
    Description: Linux Mint 19.3 Tricia
    Release: 19.3
    Codename: tricia

    $ lspci
    00:00.0 Host bridge: Intel Corporation Device 3e34 (rev 0c)
    00:02.0 VGA compatible controller: Intel Corporation Device 3ea0 (rev 02)
    00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 0c)
    00:12.0 Signal processing controller: Intel Corporation Device 9df9 (rev 11)
    00:14.0 USB controller: Intel Corporation Device 9ded (rev 11)
    00:14.2 RAM memory: Intel Corporation Device 9def (rev 11)
    00:14.3 Network controller: Intel Corporation Device 9df0 (rev 11)
    00:15.0 Serial bus controller [0c80]: Intel Corporation Device 9de8 (rev 11)
    00:15.1 Serial bus controller [0c80]: Intel Corporation Device 9de9 (rev 11)
    00:16.0 Communication controller: Intel Corporation Device 9de0 (rev 11)
    00:1c.0 PCI bridge: Intel Corporation Device 9dbc (rev f1)
    00:1d.0 PCI bridge: Intel Corporation Device 9db4 (rev f1)
    00:1f.0 ISA bridge: Intel Corporation Device 9d84 (rev 11)
    00:1f.3 Multimedia audio controller: Intel Corporation Device 9dc8 (rev 11)
    00:1f.4 SMBus: Intel Corporation Device 9da3 (rev 11)
    00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 9da4 (rev 11)
    00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 11)
    01:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
    02:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
    02:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
    02:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 2C 2018] (rev 06)
    03:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 2C 2018] (rev 06)
    39:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 2C 2018] (rev 06)
    3a:00.0 Non-Volatile memory controller: Intel Corporation Device f1a8 (rev 03)

    после обновления почему нет alsamixer
    serega@EliteBook:

    $ alsamixer
    Не удаётся открыть микшер: Нет такого файла или каталога

    правил файл daemon.conf
    float32le и так float64le
    не работает

    resample-method = speex-float-1 этот параментр тоже правил: resample-method = src-sinc-best-quality
    не работает

    оригинал файла выглядит так

    ; high-priority = yes
    ; nice-level = -11

    ; realtime-scheduling = yes
    ; realtime-priority = 5

    ; exit-idle-time = 20
    ; scache-idle-time = 20

    ; dl-search-path = (depends on architecture)

    ; load-default-script-file = yes
    ; default-script-file = /etc/pulse/default.pa

    ; log-target = auto
    ; log-level = notice
    ; log-meta = no
    ; log-time = no
    ; log-backtrace = 0

    ; resample-method = speex-float-1
    ; avoid-resampling = false
    ; enable-remixing = yes
    ; remixing-use-all-sink-channels = yes
    ; enable-lfe-remixing = no
    ; lfe-crossover-freq = 0

    ; rlimit-fsize = -1
    ; rlimit-data = -1
    ; rlimit-stack = -1
    ; rlimit-core = -1
    ; rlimit-as = -1
    ; rlimit-rss = -1
    ; rlimit-nproc = -1
    ; rlimit-nofile = 256
    ; rlimit-memlock = -1
    ; rlimit-locks = -1
    ; rlimit-sigpending = -1
    ; rlimit-msgqueue = -1
    ; rlimit-nice = 31
    ; rlimit-rtprio = 9
    ; rlimit-rttime = 200000

    ; default-sample-format = s16le
    ; default-sample-rate = 44100
    ; alternate-sample-rate = 48000
    ; default-sample-channels = 2
    ; default-channel-map = front-left,front-right

    ; default-fragments = 4
    ; default-fragment-size-msec = 25

    ; enable-deferred-volume = yes
    deferred-volume-safety-margin-usec = 1
    ; deferred-volume-extra-delay-usec = 0

    ну сходу по твоей звучке первое же в поиске выдало

    . Короче что делать НЕ знаю((( ставить windows?? ставить другой дистрибутив ubuntu??


    (Переходить к аппаратной части диагностики?)

    Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

    Конфигурация компьютера
    Процессор: Intel i5-580M (2,66 ГГц)
    Память: CMSA8GX3M2A1333C9 (8 Гб)
    HDD: WDS500G2B0A (500 Гб)
    Ноутбук/нетбук: Sony VPCEB1S1R (upgrade)
    ОС: Windows 10 x64
    На ХР звук был? lspci, что показывает? Попробуй 12.04 в режиме live cd На XP звука не было, lspci говорит что есть аудио девайс intel-hda, касательно 12,04 попробую
    Нет не работает в режиме live cd 12.04 при загрузке увидел строчку типа hda-intel no codecs found и не работает

    Последний раз редактировалось Eugene Shugaev, 06-04-2014 в 22:58 .

    Конфигурация компьютера
    Процессор: Intel Core i7 10700 2.9-4.8GHz
    Материнская плата: ASUS Prime B460M-A s-1200 B460
    Память: G.Skill DDR4 32GB 2x16GB 3000MHz Aegis
    HDD: SSD M.2 500GB Samsung 970 EVO Plus + SATA 2TB Toshiba P300
    Звук: Realtek ALC887 (Intel HD Audio)
    Блок питания: 550W be quiet! Straight Power 11
    Монитор: Samsung E2320 (1920x1080, 23'')
    Ноутбук/нетбук: MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)
    ОС: Gentoo Linux amd64 / Mac OSX Big Sur
    Индекс производительности Windows: faster than any windows
    Прочее: Scythe Kotetsu Mark II

    Меня смущает вот что:

    сипит ошибкой что такого пакета нет и поставить нельзя »
    Как это нет пакета? А репозиторий соответствующий подключен? Какой конкретно пакет пытаетесь ставить?
    Конфигурация компьютера
    Процессор: Intel i5-580M (2,66 ГГц)
    Память: CMSA8GX3M2A1333C9 (8 Гб)
    HDD: WDS500G2B0A (500 Гб)
    Ноутбук/нетбук: Sony VPCEB1S1R (upgrade)
    ОС: Windows 10 x64

    $ sudo apt-get install alsa-utils
    Чтение списков пакетов… Готово
    Построение дерева зависимостей
    Чтение информации о состоянии… Готово
    Уже установлена самая новая версия alsa-utils.
    обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 6 пакетов не обновлено.
    не установлено до конца или удалено 1 пакетов.
    После данной операции, объём занятого дискового пространства возрастёт на 0 B.
    Хотите продолжить [Д/н]? Д
    Настраивается пакет alsa-driver-linuxant (1.0.18.0) …
    Building modules for the 3.11.0-12-generic kernel, please wait. done.
    ERROR: Build failed. Please review the build log at /tmp/alsa-driver-linuxant.2604.log
    dpkg: ошибка при обработке параметра alsa-driver-linuxant (--configure):
    подпроцесс установлен сценарий post-installation возвратил код ошибки 1
    Отчёты apport не записаны, так достигнут MaxReports
    При обработке следующих пакетов произошли ошибки:
    alsa-driver-linuxant
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    И почему у меня не работает
    sudo alsamixer
    Не удаётся открыть микшер: Нет такого файла или каталога

    Читайте также: