Cms apache: ASF Content Management System

php — ModX большие траблы с CMS и с Сервером nginx + apache


Вопрос задан


Изменён
4 года 4 месяца назад


Просмотрен
114 раз

С утра ищу решение своей проблемы и от отчаяния решил обратиться к СтакОверфлоувцам.
Возникла следующая проблема: ничего не предвещало беды, как вдруг сайт на ModX начал грузить только главную страницу.
А, например, страницы /404 или /kviz, или /sitemap.xml or /robots.txt вообще не грузят и постоянно разные ошибки (либо Too many redirects, либо 502 bad gtway nginx).
Причем, если отключить файлы .htaccess, то тогда на все перечисленные выше адреса вылетает 404 not found (и не тот который я на CMS 404 создавал, а просто надпись)

Мое предположение было, что сайт создает овер много запросов, апач не успевает обработать и отправить НГИНКСУ и nginx выдает ошибку.

В Файле .htaccess ничего еще не прописано было (стандартный ModX-овский)

В логах ModX обнаружил, что у меня криво работает phpthumbOf (а точнее он дублирует пути и вместо assets/gallery/2/2.jpg выдает assets/gallery/assets/gallery/2/2.jpg и потому в логах вылетает ошибка о невозможности создать превью)

Мое последнее преположение, что именно из-за phpthumbOf и зависает апач и НгинкС

Помогите пожалуйста разобравться с этой проблемой

Логи ModX: https://pastebin.com/CGyH5Qw1

  • php
  • .htaccess
  • apache
  • modx
  • логирование






1

Фууууф. Проблема заключалась в том, что при настройке «Группы ресурсов» на ModX (т.е. чтобы, например, менеджеры не видели некоторые страницы сайта такие как: /404, /sitemap.xml, /robots.txt и др) страницы, необходимые скрыть от манагеров, попадали в группу ресурсов админа. И по какой-то необъяснимой причине они начинали блокироваться для просмотра в браузере. Ну и 2ая проблема тоже каким-то образом после удаления групп ресурсов (я про логи), сама себя вылечила.
Всем спасибо )







Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации


Почта

Необходима, но никому не показывается




Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки


OctoberCMS на русском — Конфигурация приложения

  • Конфигурация веб-сервера
    • Конфигурация Apache
    • Конфигурация Nginx
    • Конфигурация Lighttpd
    • Конфигурация IIS
  • Конфигурация приложения
    • Режим отладки
    • Безопасный режим
    • Защита от CSRF
    • Последние обновления
    • Конфигурация среды выполнения
  • Расширенная конфигурация
    • Использование обшей папки
    • Расширенная конфигурация среды выполнения

Все файлы настроек Октября хранятся в папке config/. Опции хорошо описаны в комментариях, так что рекомендуем внимательно изучить эти файлы.

Конфигурация веб-сервера

Apache configuration

Если на вашем веб-сервере установлен Apache, то перед началом работы убедитесь, что модуль mod_rewrite и параметр AllowOverride включены. Это необходимо для корректной обработки файла .htaccess.

В некоторых случаях, возможно, потребуется раскомментировать эту строку в файле .htaccess:

##
## You may need to uncomment the following line for some hosting environments,
## if you have installed to a subdirectory, enter the name here also.
##
# RewriteBase /

Если Вы установили приложение в подпапку, то должны указать ее название:

RewriteBase /mysubdirectory/

Конфигурация Nginx

Если на вашем веб-сервере установлен Nginx, то перед началом работы требуются внести небольшие изменения.

nano /etc/nginx/sites-available/default

Используйте следующий код в разделе server. (.*)$» ignoreCase=»false» />
<conditions logicalGrouping=»MatchAll»>
<add input=»{REQUEST_FILENAME}» matchType=»IsFile» negate=»true» pattern=»» ignoreCase=»false» />
</conditions>
<action type=»Rewrite» url=»index.php» appendQueryString=»true» />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Конфигурация приложения

Режим отладки

Параметр debug находится в файле с настройками config/app.php и включен по умолчанию.

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

В режиме отладки используются следующие функции:

  1. Отображается подробное описание ошибки.
  2. Указывается конкретная причина при неудачной аутентификация пользователя.
  3. Скрипты и стили не минифицируются.
  4. Безопасный режим по умолчанию отключен.

Важно: Всегда указывайте значение false для параметра app.debug в рабочих проектах.

Безопасный режим

Вы можете включить Безопасный режим при помощи параметра enableSafeMode в файле с настройками config/cms.php. По умолчанию значение параметра — null.

Если безопасный режим включен, то секция PHP кода будет отключена в CMS шаблонах по соображениям безопасности. Если установлено значение null, то безопасный режим включен, когда [режим отладки](# debug-mode) отключен.

Защита от CSRF

October provides an easy method of protecting your application from cross-site request forgeries. First a random token is placed in your user’s session. Then when a opening form tag is used the token is added to the page and submitted back with each request.

While CSRF protection is disabled by default, you can enable it with the enableCsrfProtection parameter in the config/cms.php configuration file.

Последние обновления

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

Вы можете получать самые последние обновления, изменив параметр edgeUpdates в файле с настройками config/cms.php на true.

/*
|--------------------------------------------------------------------------
| Bleeding edge updates
|--------------------------------------------------------------------------
|
| If you are developing with October, it is important to have the latest
| code base, set this value to 'true' to tell the platform to download
| and use the development copies of core files and plugins.
|
*/
'edgeUpdates' => false,

Примечание: Мы рекомендуем включить edgeUpdates для разработчиков плагинов.

Конфигурация среды выполнения

Часто бывает полезно иметь разные значения конфигурации на основе среды, в которой работает приложение. Это можно сделать, задав переменную APP_ENV (по умолчанию — production). Существует два способа изменить это значение:

  1. Установить значение APP_ENV напрямую при помощи сервера.

    Например, если Вы используете Apache, то можете просто добавить следующую строку в .htaccess или httpd.config:

    SetEnv APP_ENV "dev"
  2. Создать файл .env в корне приложения со следующим содержимым:

    APP_ENV=dev

Теперь файлы с настройками можно добавить в папку config/dev, тем самым переопределив базовую конфигурацию приложения.

Например, чтобы использовать другую базу данных MySQL только для dev, создайте файл с именем config/dev/database.php и добавьте в него следующие содержимое:

<?php
return [
    'connections' => [
        'mysql' => [
            'host'     => 'localhost',
            'port'     => '',
            'database' => 'database',
            'username' => 'root',
            'password' => ''
        ]
    ]
];

Расширенная конфигурация

Использование обшей папки

Вы можете использовать папку public/, чтобы обеспечить дополнительную безопасность своему приложению:

php artisan october:mirror public/

Эта консольная команда создаст новый каталог с именем public/ в корне Вашего проекта. Вы также должны указать новый путь до сайта в настройках веб-сервера.

Примечание: Выполняйте эту команду после каждого обновления системы или при установке нового плагина. Возможно для этого Вам потребуются права администратора сервера.

Расширенная конфигурация среды выполнения

Вы можете использовать хелпер env для получения значений переменных из Ваших конфигурационных файлов. Выполните команду october:env, чтобы переместить значение в среду выполнения:

php artisan october:env

Первый параметр — название ключа. Второй параметр, принимаемый функцией env, является значением по умолчанию. Если Вы ознакомитесь с конфигурационными файлами, то увидите несколько параметров, которые уже используют этот хелпер:

'debug' => env('APP_DEBUG', true),

Файл .env не должен попадать в Вашу систему контроля версий, так как каждый из разработчиков и серверов, использующих ваше приложение, может иметь свои собственные настройки окружения.

Если вы занимаетесь разработкой в команде, то вы можете включить файл .env.example в Ваше приложение. Замените в нём значения «секретных» параметров (пароли, ключи доступа) на пустые строки или поясняющие комментарии — так другие разработчики в вашей команде смогут увидеть переменные окружения, необходимые для запуска вашего приложения.

Please enable JavaScript to view the comments powered by Disqus.

Требования | Документация Grav

Быстрое меню
  • Веб-серверы
  • Рекомендуемые инструменты

Grav специально разработан с учетом нескольких требований. Вы можете легко запустить Grav на своем локальном компьютере, как и 99% всех провайдеров веб-хостинга. Если у вас есть ручка, запишите следующие системные требования Grav:

  1. Веб-сервер (Apache, Nginx, LiteSpeed, Lightly, IIS и т. д.)

  2. PHP 7.3.6 или выше

  3. хм… это действительно так (но, пожалуйста, ознакомьтесь с требованиями PHP для плавной работы)!

Grav создан из текстовых файлов для вашего контента. База данных не нужна.

Для оптимальной производительности настоятельно рекомендуется использовать пользовательский кэш PHP, такой как APCu, Memcached или Redis. Не беспокойтесь, обычно они уже являются частью вашего пакета хостинга!

Веб-серверы

Grav настолько прост и универсален, что вам даже не нужен веб-сервер для его запуска. Вы можете запустить его прямо со встроенного веб-сервера PHP, если вы используете PHP 7.3.6 или новее.

Тестирование со встроенными веб-серверами — полезный способ проверить установку Grav и выполнить небольшую разработку, но не рекомендуется для работающего сайта или даже для сложных задач разработки. Мы описали, как это сделать, в нашем руководстве по установке.

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

Mac

  • MacOS 10.14 Mojave уже поставляется с веб-сервером Apache и PHP 7. 1, так что дело сделано!
  • MAMP/MAMP Pro поставляется с Apache, MySQL и, конечно же, с PHP. Это отличный способ получить больше контроля над используемой версией PHP, настроить виртуальные хосты, а также воспользоваться другими полезными функциями, такими как автоматическая обработка динамического DNS.
  • AMPPS — это программный стек от Softaculous, поддерживающий Apache, PHP, Perl, Python и т. д. Он включает в себя все необходимое (и даже больше) для разработки GRAV.
  • Brew Apache/PHP — это альтернативный подход, позволяющий полностью настраиваемую установку с различными версиями PHP.

Windows

  • Портативная, изолированная, быстрая и мощная универсальная среда разработки Laragon для PHP, Node.js и т. д. Он быстрый, легкий, простой в использовании и легко расширяемый.
  • XAMPP предоставляет Apache, PHP и MySQL в одном простом пакете.
  • EasyPHP предоставляет персональный пакет веб-хостинга, а также более мощную версию для разработчиков.
  • MAMP для Windows — давний фаворит Mac, но теперь он доступен и для Windows.
  • IIS с PHP — это быстрый способ запуска PHP в Windows.
  • AMPPS — это программный стек от Softaculous, поддерживающий Apache, PHP, Perl, Python и т. д. Он включает в себя все необходимое (и даже больше) для разработки GRAV.
  • Подсистема Linux

  • — отличный способ запустить Linux-подобную среду в Windows
  • .

Linux

  • Многие дистрибутивы Linux уже поставляются со встроенными Apache и PHP. Если это не так, дистрибутив обычно предоставляет менеджер пакетов, с помощью которого вы можете установить их без особых хлопот. Более продвинутые конфигурации следует исследовать с помощью хорошей поисковой системы.

Требования Apache

Несмотря на то, что большинство дистрибутивов Apache поставляются со всем необходимым, для полноты картины вот список необходимых модулей Apache:

  • mod_rewrite
  • mod_ssl (если вы хотите запустить Grav под SSL)
  • mod_mpm_itk_module (если вы хотите запустить Grav под своей учетной записью)

Вы также должны убедиться, что у вас есть AllowOverride All , установленный в и/или блокирует, чтобы файл . htaccess обрабатывался правильно, и правила перезаписи вступили в силу.

Требования IIS

Хотя IIS считается веб-сервером, готовым к работе «из коробки», необходимо внести некоторые изменения.

Чтобы запустить Grav на сервере IIS, необходимо установить URL Rewrite . Это можно сделать с помощью Microsoft Web Platform Installer из IIS. Вы также можете установить URL Rewrite, перейдя на iis.net.

Требования PHP

Большинство хостинг-провайдеров и даже локальные установки LAMP имеют предварительно настроенный PHP со всем необходимым для запуска Grav «из коробки». Тем не менее, некоторые установки Windows и даже локальные дистрибутивы Linux или VPS (я смотрю на вас, Debian!) поставляются с минимальной компиляцией PHP. Поэтому вам может потребоваться установить или включить следующие модули PHP:

  • curl (клиент для обработки URL-адресов, используемый GPM)
  • ctype (используется symfony/yaml/Inline)
  • дом (используется новостной лентой grav/admin)
  • gd (графическая библиотека, используемая для управления изображениями)
  • json (используется Symfony/Composer/GPM)
  • mbstring (поддержка многобайтовых строк)
  • openssl (библиотека защищенных сокетов, используемая GPM)
  • сеанс (используется набором инструментов)
  • simplexml (используется новостной лентой grav/admin)
  • xml (поддержка XML)
  • поддержка расширения zip (используется GPM)

Для включения поддержки openssl и (un)zip вам нужно будет найти в файле php. ini вашего дистрибутива Linux такие строки, как:

 ;extension=openssl.so
;extension=zip.so 

и удалите начальную точку с запятой.

Дополнительные модули
  • apcu для увеличения производительности кэш-памяти
  • opcache для повышения производительности PHP
  • yaml PECL Yaml обеспечивает встроенную обработку yaml и может значительно повысить производительность
  • xdebug полезно для отладки в среде разработки

Разрешения

Для правильной работы Grav ваш веб-сервер должен иметь соответствующие права доступа к файлам для записи журналов, кешей и т. д. При использовании CLI (интерфейс командной строки) или GPM (диспетчер пакетов Grav) пользователь, запускающий PHP из командной строки, также должен иметь соответствующие разрешения для изменения файлов.

По умолчанию Grav будет устанавливаться с разрешениями 644 и 755 для файлов и папок соответственно. У большинства хостинг-провайдеров есть конфигурации, которые гарантируют, что веб-сервер, работающий под управлением PHP, позволит вам создавать и изменять файлы в вашей учетной записи пользователя. Это означает, что Grav запускает из коробки на подавляющем большинстве хостинг-провайдеров.

Однако, если вы работаете на выделенном сервере или даже в локальной среде, вам может потребоваться настроить разрешения, чтобы гарантировать, что ваши 9Пользователь 0035 и ваш веб-сервер могут изменять файлы по мере необходимости. Есть несколько подходов, которые вы можете предпринять.

  1. В локальной среде разработки обычно можно настроить веб-сервер для работы под вашим профилем пользователя. Таким образом, веб-сервер всегда позволит вам создавать и изменять файлы.

  2. Измените разрешения группы для всех файлов и папок, чтобы группа веб-сервера имела доступ на запись к файлам и папкам при сохранении стандартных разрешений. Для этого требуется несколько команд.

Сначала выясните, под каким пользователем работает Apache, выполнив следующую команду:

 ps aux | grep -v корень | grep апач | вырезать -d\ -f1 | сортировать | uniq 

Теперь узнайте, к какой группе принадлежит этот пользователь, выполнив эту команду (примечание: скорректируйте USERNAME с именем пользователя apache, которое вы нашли в предыдущей команде) ваш apache работает под управлением, найденным в предыдущей команде. [ www-data , apache , none и т. д.]):

 chgrp -R GROUP.
найти . -тип f | xargs chmod 664
найти ./bin -тип f | xargs chmod 775
найти . -тип д | xargs chmod 775
найти . -тип д | xargs chmod +s
umask 0002 

Если вам нужно вызвать права суперпользователя, вы должны запустить find … | sudo xargs chmod … вместо этого .

PhpStorm

Grav разработан с использованием PhpStorm, что делает его лучшей IDE для Grav. Тем не менее, это не приходит бесплатно.

PhpStorm лучше всего подходит для PHP-разработчиков, включая людей, которые пишут сложные плагины для Grav. Он предлагает автоматическую компиляцию кода для Grav (вам просто нужно добавить Grav и любой плагин, который вы используете, во включаемые файлы) и множество других инструментов, помогающих в разработке кода. Он также имеет хорошую поддержку форматирования twig, yaml, html, js, scss и tailwind.

Текстовые редакторы

Хотя вы можете использовать Notepad, Textedit, Vi или любой другой текстовый редактор по умолчанию, поставляемый с вашей платформой, мы рекомендуем использовать хороший текстовый редактор с подсветкой синтаксиса, чтобы упростить работу. Вот некоторые рекомендуемые варианты:

  1. Код Visual Studio. Подобно Atom, он построен с использованием Electron, Node, а также HTML/CSS. Он довольно легкий и имеет множество доступных плагинов, включая очень хорошую поддержку PHP и JavaScript. Это текущий рекомендуемый редактор для разработки для Grav.
  2. Atom — MacOS/Windows/Linux — новый редактор, разработанный Github. Это бесплатно и с открытым исходным кодом. Он похож на Sublime, но пока не имеет такой глубины доступных плагинов.
  3. SublimeText — MacOS/Windows/Linux — Коммерческий редактор для разработчиков, но стоит своих денег. Очень мощный, особенно в сочетании с такими плагинами, как Markdown Extended, Pretty YAML и PHP-Twig.
  4. Notepad++ — Windows — Бесплатный и очень популярный редактор для разработчиков для Windows.
  5. Bluefish — MacOS/Windows/Linux — бесплатный текстовый редактор с открытым исходным кодом, предназначенный для программистов и веб-разработчиков.
  6. Kate — MacOS/Windows/Linux — легкий, но мощный и универсальный текстовый редактор с открытым исходным кодом и инструмент программирования, поддерживающий выделение для более чем 300 языков (включая Markdown).

Редакторы Markdown

Другой вариант, если вы в основном работаете только с созданием контента, — использовать выделенный Редактор уценки . Они часто очень ориентированы на контент и обычно обеспечивают предварительный просмотр вашего контента в формате HTML. Их буквально сотни, но есть несколько хороших вариантов:

  1. MacDown — MacOS — бесплатный, простой и легкий редактор Markdown с открытым исходным кодом.
  2. LightPaper — MacOS — $17,99, чистый, мощный. Наш любимый редактор уценки на Mac. Получите скидку 25% с кодом скидки: GET_GRAV_25
  3. MarkDrop — MacOS — 5 долларов, но очень чистый и со встроенной поддержкой Droplr.
  4. MarkdownPad — Windows — версии Free и Pro. Даже имеет поддержку переднего плана YAML. Отличное решение для пользователей Windows.
  5. Mark Text — бесплатный редактор Markdown с открытым исходным кодом для Windows/Linux/MacOS.

FTP-клиенты

Хотя существует множество способов развертывания Grav , в основном вам нужно всего лишь скопировать локальный сайт на хостинг-провайдера. Самый простой способ сделать это — использовать FTP-клиент. Есть много доступных, но некоторые рекомендуемые включают:

  1. Передача — MacOS — де-факто клиент FTP/SFTP в MacOS. Простой в использовании, быстрый, с синхронизацией папок и почти всем, что вы можете пожелать.
  2. FileZilla — MacOS/Windows/Linux — возможно, лучший вариант для пользователей Windows и Linux. Бесплатная и очень мощная (но очень уродливая на Mac!).
  3. Cyberduck — MacOS/Windows — достойный бесплатный вариант для пользователей MacOS и Windows. Не такой полнофункциональный, как другие.
  4. ForkLift — MacOS — надежная альтернатива Transmit, немного дешевле в загрузке.

Git

Если вы используете распределенную систему управления версиями Git в своей среде разработки и на сервере, вы можете настроить простой рабочий процесс через размещенную службу Git, например Github или GitLab. Это немного больше работы по настройке, но обеспечивает более чистый и надежный рабочий процесс, который позаботится о резервном копировании за вас. Попробуйте это, только если вы знакомы с Git и его клиентскими инструментами.

Подробнее об использовании Git в вашем рабочем процессе мы расскажем позже в разделе «Развертывание с помощью Git» в главе «Веб-серверы и хостинг».

Нашли ошибки? Думаете, вы можете улучшить эту документацию? Просто щелкните ссылку Изменить в верхней части страницы, а затем значок на Github, чтобы внести изменения.

craft3 — Структура каталогов Craft 3 и Apache

Задавать вопрос

спросил

Изменено
3 года, 8 месяцев назад

Просмотрено
651 раз

Я новичок в Craft CMS и борюсь с тем, что и как разместить правильные файлы в нужных местах. Я начал со стека LAMP на дроплете Ubuntu 18.04 Digital Ocean и продолжил настройку Craft CMS. В настоящее время я получаю сообщение об ОШИБКЕ 404: «Запрошенный URL-адрес /index.php не найден на этом сервере».

Куда его положить? Помогает ли этот ответ и все еще работает в этом случае: https://stackoverflow.com/questions/5891802/как изменить-корневой-каталог-сервера-apache/23175981#23175981?

Мой файл VH:

 
Администратор сервера [email protected]
DocumentRoot /var/www/html/craftcms
Имя сервера example.com
Псевдоним сервера www.example.com
<Каталог /var/www/html/craftcms/>
Параметры
Разрешить переопределить все
Требовать все предоставленные

Журнал ошибок ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log вместе
<Каталог /var/www/html/craftcms/>
RewriteEngine включен
Переписать Базу /
RewriteCond %{REQUEST_FILENAME} !-f
Правило перезаписи ^(.