Привет Линуксоиды!
Столкнулся с проблемой.
Не могу запустить php на Fedora28 в каталоге /home/user/public_html/
httpd сконфигурирован и видит файлы php
UserDirectory для httpd сконфигурирован
но то ли не запускаются сами скрипты, то ли нет соединения с базой данных
база данных postgresql
база установлена
mod_pgsql для httpd установлен
скрипты php (простое приложение) были написаны под Windows с базой данных postgres
Что ещё делать, ума не приложу.
Fedora 28. php в UserDirectory
Я бы для начала убедился что php работает нормально.
Для этого в корень можно положить файл index.php
С содержимым:
<?php phpinfo(); ?>
И вызывать его в браузере.
Далее если все ок.
Создаем файл .htaccess
Нужно в настройках сервера убедиться, что он будет работать с этим файлом.
со ~ следующим содержимым:
AddDefaultCharset UTF-8
DirectoryIndex index.php index.html
Options +Indexes
### Restrict Access to GIT
RedirectMatch 404 ^(.*/)?\.git+
### Restrict Access to includes folder
RedirectMatch 404 ^(.*/)?\includes+
### Restrict Access to database_dump folder
RedirectMatch 404 ^(.*/)?\database_dump+
### Restrict Access to NetBeans
RedirectMatch 404 ^(.*/)?\nbproject+
### DENY Access TO Users
# order deny,allow
# deny from all
# allow from 192.168.1.5
### Show Errors on Page
php_flag display_errors on
# E_ALL has code 2047
php_value error_reporting 2047
php_flag display_startup_errors on
php_flag html_errors on
# php_value error_log /var/www/html/PHP_errors.log
### Restrict Cashing some files
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header unset Cache-Control
</FilesMatch>
Сообщения об ошибках должны выводиться на странице.
И по этим сообщениям, обычно легко найти как с ними справиться.
И проверь не блокирует ли селинукс.
Скопировал index.php и .htaccess
рестартанул httpd
начал писать
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
искал лог ошибок httpd
в /var/log/httpd/error_log
пишет что-то про SELinux
положил ваш index в /var/www/html - работает
скопировал туда моё приложение
в war/log/php_fpm/www-error.log пишет, что не определена функция pg_connect() - функция подключения к postgres
буду искать что недоустановил c postgres
Добавлено: 15.06.2018 20:45:44
запустил в /var/www/html
SELinux блокировал - отключил блокировку
в /home пока не запускается
По идее, нужно установить php5-pgsql (Или какой-то другой актуальный сейчас пакет)
В php.ini разкомментить:
extension=php_pgsql.dll
И перестартовать сервер.
==========================
А так phpinfo() должен выводить информацию какие модули подключены, какой php.ini используется и много еще полезного.
Marley,
спасибо/премного благодарен за помощь
php_7
работает, но в каталоге /var/www/html
модуль pgsql разрешён
пробую запустить в UserDir
Все работает в каталоге /var/www/html
Но не работает в /home/username/
Так?
Все работает в каталоге /var/www/html
Но не работает в /home/username/
Так?
Да. Похоже, дело в файле .htaccess, сколько раз его можно копировать и в какие каталоги?
В принципе, меня устраивает и вариант с /var/www/html, но хочется знать что и с каталогом /home/username/.
Я не открываю хостинг :), делаю всё на домашнем компьютере.
хочется знать что и с каталогом /home/username
а пользователь apache (или откого в вашей системе работает httpd ??) имеет доступ в этот каталог?
а пользователь apache (или откого в вашей системе работает httpd ??) имеет доступ в этот каталог?
Apache пользователь httpd имеет все нужные права
---
Читал в интернете про .htaccess, пришёл к выводу, что возможно что синтаксис для последнего apache изменился.
Пока что не вижу других вариантов.
Добавлено: 16.06.2018 17:31:04
Самое интересное что тот же .htaccess работает в /var/www/html
Думаю, что в конфиге ошибка.
.htaccess (приведенный выше) использовался по сути только для вывода сообщений на страницу.
Что будет, если в каталог пользователя положить, index.php с вызовом phpinfo()?
Что будет, если в каталог пользователя положить, index.php с вызовом phpinfo()?
при вызове index.php из каталога пользователя
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Добавлено: 16.06.2018 19:41:20
заменил вывод лога с ошибками в локальный каталог (в каталоге пользователя)
не пишет ничего. видимо, права записи должны быть не только для группы,
а в каталог пользователя я не хочу, чтобы писали другие пользователи.
в конце концов, это основа безопасности Unix
Добавлено: 16.06.2018 19:45:49
посмотрел лог SELinux
это он портит
Добавлено: 16.06.2018 19:59:08
нашёл запись в логе сервера httpd
.htaccess не разрешён в /home/user/public_html (Options not allowed here)
Можно поробовать отключить SELinux и удалить из /home/user/public_html .htaccess
.htaccess из public_html удалил
SELinux - предупреждений больше не выдаёт
читает файл index.html
на php файлах ошибка - No input file specified.
SELinux - это разве не демон, чтобы его не запускать вообще?
Искал в интернете про ошибку php.
В большинстве решений предлагает конфигурировать mod_rewrite -
скорее всего для перезаписи каталога пользователя.
Но у меня не заработало.
Добавлено: 16.06.2018 21:13:26
Отключил SELinux командой
setenforce 0
Та же самая ошибка
index.php файл c вызовом phpinfo()?
Как вариант:
https://www.youtube.com/watch?v=J7THqucIjXM
это решение для Windows.
там document root на диске C:
прошёлся поиском по каталогу /etc на включение /var/www/html
находится только httpd.ini и файлы SELinux
Не хочу вас грузить дольше этим вопросом.
В корне вебсервера работает. Мне этого достаточно. Тему можно закрывать.
ок.
Ошибка аналогичная просто.
По идее можно посмотреть в выводе phpinfo()
Loaded Configuration File местоположение php.ini файла.
И посмотреть в нем параметр:
doc_root
Можно попробовать либо закомментировать этот параметр или прописать в нем пустое значение.
user_dir =
Selinux это не демон.
Просто сформируй разрешительное правило, раз уж так надо.
Делается это примерно так (от рута)
grep httpd /var/log/audit/audit.log | audit2allow -M myhttpd
semodule -i myhttpd.ppВыключать selinux полностью или переводить его в permissive режим ни в коем случае не надо.
Selinux это не демон.
Выключать selinux полностью или переводить его в permissive режим ни в коем случае не надо.
Есть графический помощник SELinux.
И он пишет, какую дать команду, чтобы пропустить трафик веи-сервера.
Им-то я и воспользовался.
Но дело не только в SELinux.
php не желает запускаться из пользовательского каталога, хотя HTML запускается
Также запускается phpMyAdmin - администрирование MySQL
Посмотрю ещё возможно как он сконфигурирован
Дорогие Линуксоиды!
Не хочу Вас излишне грузить данной темой.
Пока обхожусь php из корня всего компьютера.
Есть графический помощник SELinux.
o_O эт в терминале?
Или вы это делаете на десктопе? *SCRATCH*