ScotlandPHP

Использование готового пакета PHP

PHP стал стандартом для Маков начиная с OS X версии 10.0.0. Включение PHP в стандартный веб-сервер делается простым раскомментированием нескольких строк в конфигурационном файле Apache httpd.conf в то время как CGI и/или CLI включены по умолчанию (доступны для использования терминальными программами).

Включение PHP согласно приведенной ниже инструкции предназначено для быстрой настройки локальной среды разработки. Крайне рекомендуется всегда обновлять PHP до новейшей стабильной версии. Для любого развивающегося ПО, новые версии выпускаются для исправления ошибок и добавления новой фугкциональности, и PHP не является исключением. Читайте соответствующую документацию по установке на Mac OS X, в которой описываются все подробности. Следующие инструкции предназначены для начинающих разработчиков и описывают стандартную установку, позволяющую быстро приступить к работе. Всем пользователям рекомендуется скомпилировать или установить из репозитория самую новую версию PHP.

Стандартная установка с использованием mod_php, который включается для стандартного веб-сервера Mac OS X (сервер по умолчанию доступен через системные настройки) включает следующие шаги:

  1. Найдите и откройте конфигурационный файл Apache. По умолчанию он расположен по пути /private/etc/apache2/httpd.conf Использование Finder или Spotlight для нахождения этого файла может быть не простым, так как он располагается в приватном пространстве и принадлежит пользователю root.

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

    Замечание: Версии Mac OS X до 10.5 содержат устаревшие версии PHP и 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 будут автоматически обрабатываться им.

    <IfModule mod_php5.c>
        # Если PHP разрешен, он будет обрабатывать файлы .php и .phps.
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        # Часто требуется, что бы  index.php рассматривался как
        # страница по умолчанию, если она прямо не указана.
        # Сделать это можно следующим образом
        <IfModule mod_dir.c>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    

    Замечание:

    До OS X 10.5 (Leopard), в состав ОС был включен PHP 4, а не PHP 5. В таком случае в инструкциях выше просто поменяйте 5 на 4.

  4. Убедитесь, что DirectoryIndex загружает индексный файл по умолчанию Данное поведение задается в httpd.conf. Обычно используются index.php и index.html. По умолчанию index.php разрешен. Если требуется, то отключите.
  5. Определите местоположение php.ini или используйте настройки по умолчанию Обычно на Mac OS X он расположен по пути /usr/local/php/php.ini и вызов phpinfo() выведет соответствующую информацию. Если php.ini не используется, PHP будет использовать значения по умолчанию. Также обратите внимание на FAQ поиск php.ini.
  6. Как найти или установить DocumentRoot DocumentRoot - это корневая директория веб-сервера, в которой лежат скрипты сайта. Обычно, путь по умолчанию, он равен /Library/WebServer/Documents, но его можно изменить на любой другой в httpd.conf. Также, для индивидуальных пользователей, DocumentRoot может быть установлен как /Users/yourusername/Sites
  7. Создание файла с phpinfo()

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

    <?php phpinfo(); ?>

  8. Перезапустите Apache и запросите через браузер созданый выше файл.

    Для перезапуска выполните sudo apachectl graceful в терминале или выполните stop/start для "Personal Web Server" в системных настройках OS X. По умолчанию, локальные файлы можно загрузить введя в строке браузера URL, например так: http://localhost/info.php, или используя DocumentRoot в локальной директории пользователя, таким образом: http://localhost/~yourusername/info.php

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

add a note add a note

User Contributed Notes 6 notes

up
37
Anonymous
8 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
3
Julee
4 years ago
To work on Mac OS X Lion 10.7, I had to change /private/etc/php.ini.default to /private/etc/php.ini
up
0
cweiske at cweiske dot de
3 years ago
On recent (10.8/10.9) macs, the apache php config file is located at /etc/apache2/others/php5.conf
up
0
jaffle
8 years ago
Additionally, it seems that the default installation of php on Mac OS X (10.5 tested) does not point to the default location of the mysql.sock file that is installed in a standard MySQL 5.0 installation.

This prevents php working with locally hosted MySQL databases.

Adding the following line to the /private/etc/apache2/other/php5.conf file did the trick:

php_value mysql.default_socket /tmp/mysql.sock

(make sure you put it in between the </IfModule> statements)
up
-2
parampal
3 years ago
instead of step 3, add the following lines to the `/private/etc/apache2/mime.types` file

application/x-httpd-php                 php
application/x-httpd-php-source   phps
up
-13
sachin at dharmapurikar dot in
9 years ago
I am using MacOSX 10.5.4 and only enabling the mod_php5 wasn't enough to get the PHP support. I had to add following block before I could use php on machine -

<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>
To Top