Використання вбудованого 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 (типовий вебсервер, який доступний в
Системних налаштуваннях) включає наступні кроки:
-
Знайти і відкрити файл конфігурації 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.
-
За допомогою текстового редактора розкоментувати рядки (видаливши "#"),
які виглядають подібно до наведених нижче (ці два рядки часто знаходяться
не разом, треба знайти їх обидва у файлі):
# LoadModule php5_module libexec/httpd/libphp5.so
# AddModule mod_php5.c
Варто звернути увагу на розташування/шлях. Під час наступного збирання PHP
вищевказані файли слід замінити або закоментувати.
-
Переконатися, що потрібні закінчення розпізнаються як закінчення 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.
-
Переконатися, що DirectoryIndex завантажує зазначений стандартний файл
індексу.
Це також задається в httpd.conf. Зазвичай
використовують index.php та
index.html. Стандартно index.php
увімкнено, як у прикладі вище. Необхідно налаштувати це відповідно.
-
Вказати розташування php.ini або використати початкове значення.
Типове розташування в macOS — /usr/local/php/php.ini.
Виклик функції phpinfo() покаже цю інформацію.
Якщо файл php.ini не використовується, PHP буде використовувати всі
стандартні значення. Докладніше у відповідному розділі ЧаПів про пошук php.ini.
-
Знайти або встановити
DocumentRoot
Це коренева тека для всіх вебфайлів. Файли в цій теці обслуговуються
вебсервером, тому PHP-файли будуть опрацьовані інтерпретатором, перш ніж
виводитися в браузер. Типовий шлях —
/Library/WebServer/Documents, але його можна змінити в
httpd.conf. Крім того, типовий шлях
DocumentRoot для окремих користувачів —
/Users/ім_я_користувача/Sites.
-
Створити скрипт з phpinfo() всередині.
Функція phpinfo() відображає інформацію про PHP.
Розглянемо створення файлу в корені DocumentRoot з наступним PHP-кодом:
-
Перезапустити 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() також покаже цю
інформацію.
Anonymous ¶16 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.
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.