Контекст: я пытаюсь запустить Apache на своем локальном Mac27 «(2009), чтобы я мог использовать OwnCloud в качестве альтернативы iCloud от Apple (я просто хочу сделать локальную синхронизацию моего календаря, как в старой доброй» OS X большой кошачьи дни. Из-за параноидальных соображений конфиденциальности я не хочу, чтобы Купертино знал, кого я знаю или что я делаю — вероятно, неуместно, но вы идете). Мой набег в этом был основан на сообщении в блоге Майкла Грейси в http://michaelgracie.com/2013/11/13/getting-ios-7-calendar-and-contacts-syncing-directly-with-os-x-10-9-mavericks/ (за что большое спасибо).
Когда я перешел на Yosemite несколько недель назад (напомните мне, почему я это сделал?), Я потратил целую эпоху, исправляя свои очень простые настройки, и я вернулся. Вчера я обновил (снова напомните, почему я это сделал?) До 10.10.1, и он снова сломался. Кажется, все должно работать, но PHP не работает.
Симптом заключается в том, что при запуске OwnCloud (localhost / owncloud / index.htm) я получаю логотип и стиль OwnCloud, а затем появляется ошибка:
PHP module GD is not installed.
Please ask your server administrator to install the module.
Это, однако, отвлекает, потому что проблема не в модуле GD — я думаю, что Apache вообще не может видеть PHP. Причина в следующем:
1) PHP работает на Apache?
Когда я иду в:
http://localhost
Я вижу апач «Это работает!» сообщение.
Адаптация файла index.html.en в / Library / Webserver / documents / позволяет мне, однако, изменить это сообщение, когда я вызываю PHP из этого файла, например.
<h1>It works!</h1> <h2>This file is in /Library/Webserver/Documents</h2> <h3>Trying to printout phpinfo()</h3> <?php echo phpinfo(); ?>
Затем я вижу три строки текста, но без информации PHP.
Таким образом, PHP не доступен при отображении этой веб-страницы.
2) PHP вообще доступен?
Исследуя это, я запускаю следующую команду из терминала:
sudo echo <?php phpinfo() ?> | php
и я получаю четыре тысячи строк информации PHP, которая включает в себя
'--with-gd'
в команде настройки.
3) Apache загрузил модуль PHP?
Затем я запускаю:
httpd -t -D DUMP_MODULES
Apache говорит мне, что среди многих других модулей он использует:
php5_module (shared)
4) Совместим ли файл httpd.conf с этим:
Я прошел через httpd.conf в моем каталоге / etc / apache2 и раскомментировал следующие строки:
LoadModule php5_module libexec/apache2/libphp5.so
LoadModule authn_core_module libexec/apache2/mod_authn_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
5) Что еще?
Чтобы завершить картину, в моем файле / etc / apache2 / users я настроил свои собственные настройки пользователя на:
<Directory "/Users/DJBrown/Sites/">
Options Indexes MultiViews FollowSymLinks
Require all granted
AllowOverride All
Order allow,deny
Allow from all
</Directory>
(Признаюсь, на данный момент — так же, как и другие — я действительно не совсем уверен, что я делаю, так как я следую большую часть этого из некоторых других ответов в StackOverflow).
6. Заключение
Apache работает с PHP загружен и httpd и PHP могут быть опрошены из командной строки … но Apache не будет запускать PHP.
Это возможно?
Что я пропустил?
Любая помощь с благодарностью получена.
диджей
Вот частичный ответ.
Изменение строки в httpd.conf
AddType application/x-httpd-php .php
в
AddType application/x-httpd-php .php .htm .html
Разрешает apache отображать встроенный PHP-код в HTML-файлах.
(Я получил это от http://php.about.com/od/advancedphp/p/html_php.htm)
У меня все еще есть проблема с OwnCloud, которую я приму на их форум.
Спасибо за вашу помощь
диджей
Других решений пока нет …