В настоящее время я просто использую дополнительные вкладки терминала, чтобы вручную запускать рабочие и тактовые процессы в дополнение к постоянно включенному apache, проксирующему php-fpm.
Я пробовал локальную героку, когда начинал с heroku, но ее настройка победила меня.
Теперь я хочу попробовать еще раз.
Я в Высшей Сьерре с homebrew
php
но до сих пор придерживались встроенной в Apache Mac OS.Похоже, Apache Brew может быть лучшим выбором, но, надеюсь, мы узнаем, если это так в следующем.
Я понимаю, из ответа, предоставленного здесь (от главного автора в buildpack)что Apache, используемый Heroku Local, должен быть остановлен во время запуска Heroku Local.Есть аналогичная очевидная цитата из поддержки heroku по этому поводу в ответе здесь .
Я также отмечаю, мое собственное открытие, что нужно установить пакет сборки локально с *
, как в composer require-dev heroku/heroku-buildpack-php "*"
для обеспечения последней версии.
Прямо сейчас я получаю следующее, когда выдаю heroku local, используя встроенный в Mac OSX Apache (он прослушивает порт 8080 для обслуживания среды php dev, но остановил егодля этого с sudo apachectl stop
).
m$ heroku local
[OKAY] Loaded ENV .env File as KEY=VALUE Format
12:21:03 PM horizon.1 | Horizon started successfully.
12:21:03 PM clock.1 | [2019-09-20 11:21:03] Calling scheduler
12:21:03 PM clock.1 | No scheduled commands are ready to run.
12:21:03 PM web.1 | DOCUMENT_ROOT changed to 'public/'
12:21:04 PM web.1 | 4 processes at 128MB memory limit.
12:21:04 PM web.1 | Starting php-fpm...
12:21:06 PM web.1 | Starting httpd...
12:21:06 PM web.1 | Application ready for connections on port 5000.
12:21:06 PM web.1 | [Fri Sep 20 12:21:06.155117 2019] [core:emerg] [pid 25867] (2)No such file or directory: AH00023: Couldn't create the mpm-accept mutex (file /private/var/run/mpm-accept-0.25867)
12:21:06 PM web.1 | (2)No such file or directory: could not create accept mutex
12:21:06 PM web.1 | AH00015: Unable to open logs
12:21:06 PM web.1 | Process exited unexpectedly: httpd
12:21:06 PM web.1 | Going down, terminating child processes...
[DONE] Killing all processes with signal SIGINT
12:21:06 PM horizon.1 | Shutting down...
12:21:06 PM clock.1 Exited with exit code SIGINT
12:21:06 PM web.1 Exited with exit code null
12:21:07 PM horizon.1 | [2019-09-20 11:21:06][1033] Processing: Laravel\Scout\Jobs\MakeSearchable
12:21:07 PM horizon.1 | [2019-09-20 11:21:06][1032] Processing: Laravel\Scout\Jobs\MakeSearchable
12:21:07 PM horizon.1 | [2019-09-20 11:21:06][1034] Processing: Laravel\Scout\Jobs\MakeSearchable
12:21:08 PM horizon.1 | [2019-09-20 11:21:06][1033] Processed: Laravel\Scout\Jobs\MakeSearchable
12:21:08 PM horizon.1 | [2019-09-20 11:21:06][1032] Processed: Laravel\Scout\Jobs\MakeSearchable
12:21:08 PM horizon.1 | [2019-09-20 11:21:06][1034] Processed: Laravel\Scout\Jobs\MakeSearchable
12:21:08 PM horizon.1 Exited Successfully
Мой Mac OS Apache возвращается к /tmp/php72-fpm.sock
.Разрешения там в порядке, так как apache в локальном браузере достигает php-fpm штрафа.
Я вижу, что настоящая ошибка (она прокручивается вправо в коде выше из-за отсутствия перевода строки): Could not create the mpm-accept mutex
.Теперь я знаю, что есть несколько различных модулей обработки Apache, но я не уверен, что мне нужно больше об этом знать.
Но возможно ли, что это просто разрешения?Я заметил, что Mac OSX Apache нуждается в sudo, как в sudo apachectl start
, и я запускаю локальную героку без sudo.Я мог бы попробовать sudo heroku local
, но предпочел бы, пока я не знаю, что он будет делать.
Так что в отсутствие большего понимания (что было бы неплохо) я могу попытаться установить brew apache (httpd24).Похоже, что локальный герой просто позвонит httpd
, поэтому будет выбран первый в пути.
Частичный ответ
Я понял, что когда локальный герой запускает систему apache, системаУ apache, конечно же, останутся все текущие настройки.Это означает запись в места расположения sudo, журналы ошибок, vhosts, которые я добавил.Конечно, это будет ошибка без sudo.Первым шагом для исправления вышеуказанного было удаление директивы listen из httpd.conf, которая выдала новую ошибку:
(13)Permission denied: AH00091: httpd: could not open error log file /private/var/log/apache2/error_log.
Итак, я закомментировал журнал ошибок, чтобы исправить тот, который дал другой:
(2)No such file or directory: AH02291: Cannot access directory '/usr/logs/' for main error log
2:17:25 PM web.1 | AH00014: Configuration check failed
2:17:25 PM web.1 | This program requires Apache 2.4.10 or newer with mod_proxy and mod_proxy_fcgi enabled; check your 'httpd' command.
Можно увидеть, куда это идет.По сути, мне нужно было бы удалить почти всю мою конфигурацию Mac OSX Apache, чтобы она не вызывала ошибок (при запуске без sudo).
Итак, давайте рассмотрим brew apache вместо этого (ниже).
Заметим, что при проверке /tmp
каждый раз, когда я запускаю heroku local, я вижу следующие файлы, такие как heroku.xxxxx
, записанные как ноль байтов ниже.Я отмечаю, что приведенные ниже файлы журнала apache можно найти в виде директив Log в vhost по умолчанию, включенном в buildpack, в <buildpack>/conf/apache2/heroku.conf
, отсюда и их существование здесь.
mbp:tmp m$ ll
total 8
drwxrwxrwt@ 16 root wheel 512B 20 Sep 08:54 ./
drwxr-xr-x 6 root wheel 192B 31 Dec 2017 ../
srwxrwxrwx 1 root wheel 0B 18 Sep 22:02 .dbfseventsd=
srwxrwxrwx 1 m wheel 0B 20 Sep 07:59 .s.PGSQL.5432=
-rw------- 1 m wheel 49B 20 Sep 07:59 .s.PGSQL.5432.lock
srwxr-xr-x 1 m wheel 0B 8 Sep 21:05 OSL_PIPE_501_SingleOfficeIPC_48607cb6b283d6f2d9ab5973acdb43c=
drwx------ 3 m wheel 96B 27 Aug 17:28 com.apple.launchd.9wuyYAXuof/
drwx------ 3 m wheel 96B 27 Aug 17:28 com.apple.launchd.v9lh33yWhI/
-rw-r--r-- 1 m wheel 0B 20 Sep 08:54 heroku.apache2_access.5000.log
-rw-r--r-- 1 m wheel 0B 20 Sep 08:54 heroku.apache2_error.5000.log
-rw-r--r-- 1 m wheel 0B 20 Sep 08:54 heroku.php-fpm.5000.log
-rw-r--r-- 1 m wheel 0B 20 Sep 08:54 heroku.php-fpm.5000.www.slowlog
-rw-r--r-- 1 m wheel 0B 20 Sep 08:54 heroku.php-fpm.www.5000.log
drwxr-xr-x 3 m wheel 96B 19 Sep 20:23 pear/
srwxrwxrwx 1 m staff 0B 19 Sep 22:11 php72-fpm.sock=
drwxr-xr-x 2 root wheel 64B 19 Sep 08:29 powerlog/
Что еще я могу сделать, чтобы помочьускоряется ли веб-процесс?
Обновление - как установить brew apache для эксклюзивного использования heroku local?
Возможно, что может быть действительно полезным, это знать шаги по установке brew apache, учитывая, что он будетбыть использованным только для героку местным.Это несколько простых команд brew и удалить директиву listen?Я здесь осторожен, так как в идеале хотел бы не навредить моему текущему использованию встроенного apache;я думаю, они должны быть в состоянии работать рядом друг с другом, просто нужно быть достаточно уверенным, прежде чем я это сделаю.
Также
Homebrew больше не поддерживает параметры формул, поэтому brew install homebrew/apache/httpd24 --with-mpm-event
как указано по ссылке выше больше не представляется возможным.Можно сделать brew edit httpd24
для непосредственного редактирования формулы;это необходимо?Каковы правильные шаги установки?