Використання вбудованого 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.soThis is gone:# AddModule mod_php5.cThe 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 ¶6 years ago
setup apache + php environment on macOS 10.12.6step 1: start httpd by apachectl > sudo apachectl startstep 2: find httpd.conf > sudo apachectl -t -D DUMP_INCLUDESstep 3: edit conf, eg: /opt/local/etc/apache2/httpd.conf > sudo vim /opt/local/etc/apache2/httpd.confstep 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 quitstep 7: restart httpd > sudo apachectl restartstep 8: write demo.php , test configuration```<?php phpinfo();?>```step 9: copy demo.php to "DocumentRoot", you can find by httpd.confstep 10: visit demo.phpall done.