Хорошо, у меня все получилось, благодаря помощи Дерека. Вот что я сделал для полной Ma c PHP Настройка разработки:
0) Установите необходимое программное обеспечение, если оно еще не установлено (homebrew, xcode, et c)
Xcode инструменты командной строки:
$ xcode-select --install
Домашний напиток:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Catalina Required Libraries:
Необходимые библиотеки Каталины:
$ brew install openldap libiconv
1) Полное удаление php, httpd (apache) ) и удалите файлы xdebug (если они у вас уже установлены):
$ brew update
$ brew upgrade
$ brew cleanup
$ brew list | grep php
Найдите все установленные вами версии php на основе команды brew list, а затем удалите их, например:
brew uninstall --force php72
Удалите все старые php конфигурации
rm -Rf /usr/local/etc/php/*
2) Установите Apache
Если у вас уже работает встроенный Apache, потребуется сначала отключить и удалить все сценарии автозагрузки:
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
Установить apache:
$ brew install httpd
Установить Apache на автоматический запуск:
$ sudo brew services start httpd
Теперь вы должны иметь возможность go до http://localhost: 8080 и видеть сообщение «Это работает».
3) Настроить Apache
Нас В своем любимом текстовом редакторе откройте /usr/local/etc/httpd/httpd.conf
Найдите строку с надписью Listen 8080
и измените ее на Listen 80
Если хотите, перейдите в каталог по умолчанию, где вы обслуживаете свой сайты от. Найдите термин DocumentRoot
и измените значение на нужное вам место. Я использовал:
/Library/WebServer/Documents
, но вы можете поместить его где угодно (например, /Users/your_user/Sites
)
Вам также нужно изменить ссылку на тег прямо под Документом Root линия. Это также должно быть изменено, чтобы указать на ваш новый документ root также:
/Library/WebServer/Documents
В этом же блоке вы найдете настройку AllowOverride, это должно быть изменено на:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All
Также теперь мы должны включить mod_rewrite, который закомментирован по умолчанию. Найдите файл mod_rewrite.so и раскомментируйте строку, удалив начальный #:
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Измените пользователя и группу в соответствии с текущим вошедшим пользователем:
User your_user
Group staff
Измените имя сервера на localhost
Сохраните файл.
Перезапустите Apache, чтобы изменения вступили в силу:
$ sudo apachectl -k restart
3) Установите PHP
Я установил php 7.2, хотя он и не самый последний, просто потому, что мой хостинг и WordPress используют php 7.2, и я хочу интегрировать мое приложение php с моим сайтом WordPress.
$ brew install php@7.2
После установки php, go вернитесь в файл httpd.conf и добавьте следующую строку:
LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
ниже ранее не комментированного перезаписи модуля LoadModule _module из последний шаг.
Также вы должны явно задать индексы каталогов для PHP, поэтому найдите этот блок:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Скопируйте и замените его следующим:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Сохраните файл и перезапустите сервер apache:
$ sudo apachectl -k restart
4) Проверьте установку php
Просто создайте файл с именем info. php в своем Сайты / папки, которые вы создали ранее с помощью этой однострочной.
echo "<?php phpinfo();" > ~/Sites/info.php
Укажите в браузере http://localhost/info.php, и вы должны увидеть информационную страницу PHP.
Homebrew должен был добавить свои предпочтительные каталоги / usr / local / bin и / usr / local / sbin к вашему пути как часть процесса установки. Чтобы быстро проверить это, введите:
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Apple/bin
Если вы этого не видите, возможно, вам придется добавить их вручную в свой путь. В зависимости от используемой вами оболочки, вам может понадобиться добавить эту строку в ~ / .profile, ~ / .bash_profile или ~ / .zshr c:
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
5) Установить Xdebug.
Если команда:
$ pecl install xdebug
Сбой из-за того, что phpize не возвращает правильную информацию, или пытается записать в папки, которые не может или не может найти php .h, et c, как это было для меня и с чего начался этот пост, попробуйте следующее:
Во-первых, вам нужно убедиться, что Xcode и инструменты командной строки установлены. Откройте окно терминала и выполните следующую команду, чтобы отобразить путь SDK:
$ xcrun --show-sdk-path
Эта команда должна вывести что-то вроде этого: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
Если этого не произойдет, установите их, используя команду, указанную в шаге 0.
Теперь создайте новую папку в вашем доме папка для phpize:
$ mkdir ~/php-private/
и скопируйте в нее следующий файл:
$ cp /usr/bin/phpize ~/php-private/
Откройте текстовый редактор и создайте файл со следующим кодом патча:
--- /usr/bin/phpize 2019-09-11 02:46:18.000000000 +0200
+++ ./phpize 2019-12-26 23:10:32.000000000 +0100
@@ -1,11 +1,12 @@
#!/bin/sh
# Variable declaration
+XCODE_SDK_ROOT=$(/usr/bin/xcrun --show-sdk-path)
prefix='/usr'
datarootdir='/usr/php'
exec_prefix="`eval echo ${prefix}`"
phpdir="`eval echo ${exec_prefix}/lib/php`/build"
-includedir="`eval echo ${prefix}/include`/php"
+includedir="`eval echo ${XCODE_SDK_ROOT}${prefix}/include`/php"
builddir="`pwd`"
SED="/usr/bin/sed"
Сохраните этот файл как phpize-catalina.patch в новой папке php -private (не забудьте также зайти в эту папку).
Затем установите новую копию phpize:
$ patch ~/php-private/phpize < phpize-catalina.patch
Затем загрузите последние исходные файлы xdebug, для меня это было 2.9.0
$ git clone git://github.com/xdebug/xdebug.git
Это должно было загрузить все исходные файлы по пути ~ / xdebug. Измените каталоги на этот путь.
$ cd ~/xdebug
Теперь запустите исправленный нами файл phpize:
$ ~/php-private/phpize
Вы должны увидеть следующий вывод:
Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731
Если вы получить сообщение об ошибке:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
Это означает, что у вас не установлен autoconf. Попробуйте:
$ brew install autoconf
Как только вы получите вышеуказанный вывод phpize, сконфигурируйте и установите xdebug:
./configure --with-php-config=/usr/local/opt/php@7.2/bin/php-config
Это должно использовать конфигурацию php, которую вы установили через homebrew на шаге 3 .
Теперь создайте расширение:
$ make
Теперь установите его:
$ make install
Вы должны увидеть что-то вроде:
Installing shared extensions: /usr/local/Cellar/php@7.2/7.2.26/pecl/20170718/
+----------------------------------------------------------------------+
| |
| INSTALLATION INSTRUCTIONS |
| ========================= |
| |
| See https://xdebug.org/install.php#configure-php for instructions |
| on how to enable Xdebug for PHP. |
| |
| Documentation is available online as well: |
| - A list of all settings: https://xdebug.org/docs-settings.php |
| - A list of all functions: https://xdebug.org/docs-functions.php |
| - Profiling instructions: https://xdebug.org/docs-profiling2.php |
| - Remote debugging: https://xdebug.org/docs-debugger.php |
| |
| |
| NOTE: Please disregard the message |
| You should add "extension=xdebug.so" to php.ini |
| that is emitted by the PECL installer. This does not work for |
| Xdebug. |
| |
+----------------------------------------------------------------------+
Сейчас вам нужно добавить расширение к вашему php .ini файлу. Используйте ваш любимый редактор для изменения /usr/local/etc/php/7.2/php.ini
(не забывайте sudo при открытии текстового редактора) и добавьте его в самый низ:
[xdebug]
zend_extension=/usr/local/Cellar/php@7.2/7.2.26/pecl/20170718/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
Обратите внимание, все, что вам действительно нужно добавить, это строка zend_extension но для того, чтобы он работал с Eclipse, я использую флаги удаленного включения вместе с другими настройками, перечисленными там.
Наконец, перезапустите apache:
$ sudo apachectl -k restart
И затем, когда вы обновите sh страницу информации. php, которую вы создали ранее, вы должны увидеть строки для xdebug в конфигурации. Что-то вроде:
успешной проверки xdebug
6) Наконец, для моей полной PHP ma c настройки разработки я установил последнюю версию eclipse для php (с их сайта), а также SQL Сервер (с использованием homebrew). Вы можете Google, как установить их, поскольку они довольно просты.