Контекст: я пытаюсь запустить Apache на своем локальном Mac27» (2009 г.), чтобы использовать OwnCloud в качестве альтернативы iCloud от Apple (я просто хочу выполнить локальную синхронизацию своего календаря, как в старой доброй «OS X big кошачьи дни. Из параноидальных соображений конфиденциальности я не хочу, чтобы Купертино знал, кого я знаю или чем я занимаюсь - возможно, неуместно, но вот так). Мой набег на это был основан на сообщении в блоге Майкла Грейси на 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
Я вижу Apache "Это работает!" сообщение.
Адаптация файла 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.
Это возможно?
Что я пропустил?
Любая помощь принята с благодарностью.
DJ
*.html.en
обычно не связано с php-интерпретатором, попробуйте test.php сphpinfo()
- person birdspider   schedule 20.11.2014test.php won't load into Safari
- person birdspider   schedule 20.11.2014