Використання вбудованого 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
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.
up
1
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.
To Top