Використання вбудованого PHP до версії macOS Monterey

PHP входить до складу macOS, починаючи з macOS X (10.0.0) до macOS Monterey (12.0.0). Щоб увімкнути PHP зі стандартним вебсервером, потрібно розкоментувати кілька рядків у файлі конфігурації Apache httpd.conf, тоді як CGI та/або CLI вже увімкнені (легко доступні в програмі Terminal).

Увімкнення PHP за допомогою наведених нижче інструкцій призначене для швидкого налаштування локального середовища розробки. Наполегливо рекомендується завжди оновлювати PHP до найновішої версії. Як і більшість програмного забезпечення, нові версії створюються для виправлення помилок і додавання нових функцій, тож PHP не виняток. Більше інформації є у відповідній документації щодо встановлення macOS. Наведені нижче інструкції призначені для початківців і містять кроки для налаштування стандартного середовища розробки. Всім користувачам рекомендується скомпілювати або встановити нову упаковану версію.

Стандартний тип встановлення - це використання mod_php. Увімкнення вбудованого mod_php на macOS для вебсервера Apache (типовий вебсервер, який доступний в Системних налаштуваннях) включає наступні кроки:

  1. Знайти і відкрити файл конфігурації Apache. Зазвичай він знаходиться у наступному місці: /private/etc/apache2/httpd.conf Використання Finder або Spotlight для пошуку цього файлу може виявитися складним, оскільки стандартно він є приватним і належить користувачеві root.

    Зауваження: Одним із способів відкрити цей файл є використання текстового редактора на основі Unix у терміналі, наприклад, nano, і оскільки файл належить користувачеві root, потрібно скористатися командою sudo, щоб відкрити його (від імені користувача root). Наприклад, ввести наступне у програму Terminal (після цього вона запитає пароль): sudo nano /private/etc/apache2/httpd.conf Команди nano, які заслуговують на увагу: ^w (пошук), ^o (збереження) і ^x (вихід), де ^ позначає клавішу Ctrl.

    Зауваження: Mac OS X до версії 10.5 постачалися зі старими версіями PHP та Apache. Тож, шлях до конфігураційного файлу Apache на застарілих машинах може бути таким: /etc/httpd/httpd.conf.

  2. За допомогою текстового редактора розкоментувати рядки (видаливши "#"), які виглядають подібно до наведених нижче (ці два рядки часто знаходяться не разом, треба знайти їх обидва у файлі):

    # LoadModule php5_module libexec/httpd/libphp5.so
    
    # AddModule mod_php5.c
    
    Варто звернути увагу на розташування/шлях. Під час наступного збирання PHP вищевказані файли слід замінити або закоментувати.

  3. Переконатися, що потрібні закінчення розпізнаються як закінчення PHP-файлів (приклади: .php .html і .inc)

    Завдяки наступному оператору, який вже існує в httpd.conf (починаючи з Mac Panther), коли PHP увімкнено, файли .php автоматично опрацьовуються як PHP.

    <IfModule mod_php5.c>
        # If php is turned on, we respect .php and .phps files.
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        # Since most users will want index.php to work we
        # also automatically enable index.php
        <IfModule mod_dir.c>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    

    Зауваження:

    До Mac OS X 10.5 (Leopard), замість PHP 5 постачався PHP 4. В цьому випадку наведені вище інструкції будуть дещо відрізнятися зміною 5 на 4.

  4. Переконатися, що DirectoryIndex завантажує зазначений стандартний файл індексу. Це також задається в httpd.conf. Зазвичай використовують index.php та index.html. Стандартно index.php увімкнено, як у прикладі вище. Необхідно налаштувати це відповідно.
  5. Вказати розташування php.ini або використати початкове значення. Типове розташування в macOS — /usr/local/php/php.ini. Виклик функції phpinfo() покаже цю інформацію. Якщо файл php.ini не використовується, PHP буде використовувати всі стандартні значення. Докладніше у відповідному розділі ЧаПів про пошук php.ini.
  6. Знайти або встановити DocumentRoot Це коренева тека для всіх вебфайлів. Файли в цій теці обслуговуються вебсервером, тому PHP-файли будуть опрацьовані інтерпретатором, перш ніж виводитися в браузер. Типовий шлях — /Library/WebServer/Documents, але його можна змінити в httpd.conf. Крім того, типовий шлях DocumentRoot для окремих користувачів — /Users/ім_я_користувача/Sites.
  7. Створити скрипт з phpinfo() всередині.

    Функція phpinfo() відображає інформацію про PHP. Розглянемо створення файлу в корені DocumentRoot з наступним PHP-кодом:

    <?php phpinfo(); ?>

  8. Перезапустити Apache і відкрити в браузері створений вище PHP-файл.

    Для перезапуску необхідно виконати sudo apachectl graceful в командному рядку або зупинити/запустити опцію «Персональний вебсервер» у Системних налаштуваннях macOS. Стандартно, локальні файли у браузері матимуть такий URL: http://localhost/info.php. Ще одним варіантом є використання теки користувача, як DocumentRoot. Тоді URL матиме такий вигляд: http://localhost/~yourusername/info.php.

CLI (або CGI у старих версіях) має відповідну назву php і, здебільшого, має шлях /usr/bin/php. Необхідно відкрити термінал, прочитавши розділ про командний рядок у посібнику з PHP і виконати php -v, щоб перевірити версію PHP цього бінарного файлу. Виклик phpinfo() також покаже цю інформацію.

add a note

User Contributed Notes 2 notes

up
41
Anonymous
15 years ago
You only have to uncomment:
#LoadModule php5_module libexec/apache2/libphp5.so

This is gone:
# AddModule mod_php5.c

The statement in 3 was changed to:
<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig /private/etc/apache2/mime.types

#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi

# For type maps (negotiated resources):
#AddHandler type-map var

#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>

Extra MIME types can either be added to the file /private/etc/apache2/mime.types or by using an AddType directive as commented on above.
up
1
10086 at xiaoi dot me
5 years ago
setup apache + php environment on macOS 10.12.6

step 1: start httpd by apachectl
> sudo apachectl start

step 2: find httpd.conf
> sudo apachectl -t -D DUMP_INCLUDES

step 3: edit conf, eg: /opt/local/etc/apache2/httpd.conf
> sudo vim /opt/local/etc/apache2/httpd.conf

step 4: Load php module before <IfModule unixd_module>, eg:
```
LoadModule php5_module /usr/libexec/apache2/libphp5.so
<IfModule unixd_module>
```

step 5: add mod_php5.c end of httpd.conf
```
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
```

step 6: save and quit
step 7: restart httpd
> sudo apachectl restart

step 8: write demo.php , test configuration
```
<?php
phpinfo
();
?>
```

step 9: copy demo.php to "DocumentRoot", you can find by httpd.conf

step 10: visit demo.php

all done.
To Top