1 (14.06.2018 23:11:21 отредактировано ValentinK)

Привет Линуксоиды!

Столкнулся с проблемой.
Не могу запустить php на Fedora28 в каталоге /home/user/public_html/
httpd сконфигурирован и видит файлы php
UserDirectory для httpd сконфигурирован
но то ли не запускаются сами скрипты, то ли нет соединения с базой данных
база данных postgresql
база установлена
mod_pgsql для httpd установлен
скрипты php (простое приложение) были написаны под Windows с базой данных postgres
Что ещё делать, ума не приложу.

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

2 (15.06.2018 00:15:25 отредактировано Marley)

Я бы для начала убедился что 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>

Сообщения об ошибках должны выводиться на странице.
И по этим сообщениям, обычно легко найти как с ними справиться.

No Woman No Cry...

3

И проверь не блокирует ли селинукс.

4 (15.06.2018 20:30:03 отредактировано ValentinK)

Скопировал 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 пока не запускается

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

5 (15.06.2018 21:00:22 отредактировано Marley)

По идее, нужно установить php5-pgsql (Или какой-то другой актуальный сейчас пакет)

В php.ini разкомментить:

extension=php_pgsql.dll

И перестартовать сервер.

==========================

А так phpinfo() должен выводить информацию какие модули подключены, какой php.ini используется и много еще полезного.

No Woman No Cry...

6

Marley,

спасибо/премного благодарен за помощь

php_7
работает, но в каталоге /var/www/html
модуль pgsql разрешён
пробую запустить в UserDir

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

7

Все работает в каталоге /var/www/html
Но не работает в /home/username/

Так?

No Woman No Cry...

8

Marley пишет:

Все работает в каталоге /var/www/html
Но не работает в /home/username/

Так?

Да. Похоже, дело в файле .htaccess, сколько раз его можно копировать и в какие каталоги?
В принципе, меня устраивает и вариант с /var/www/html, но хочется знать что и с каталогом  /home/username/.
Я не открываю хостинг ab, делаю всё на домашнем компьютере.

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

9

ValentinK пишет:

хочется знать что и с каталогом  /home/username

а пользователь apache (или откого в вашей системе работает httpd ??) имеет доступ в этот каталог?

Путь важнее цели.

10

caspar пишет:

а пользователь apache (или откого в вашей системе работает httpd ??) имеет доступ в этот каталог?

Apache пользователь httpd имеет все нужные права
---
Читал в интернете про .htaccess, пришёл к выводу, что возможно что синтаксис для последнего apache изменился.
Пока что не вижу других вариантов.
*** Добавлено: 16.06.2018 17:31:04 ***

Самое интересное что тот же .htaccess работает в /var/www/html

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

11 (16.06.2018 18:26:29 отредактировано Marley)

Думаю, что в конфиге ошибка.
.htaccess (приведенный выше) использовался по сути только для вывода сообщений на страницу.

Что будет, если в каталог пользователя положить, index.php с вызовом phpinfo()?

No Woman No Cry...

12

Marley пишет:

Что будет, если в каталог пользователя положить, 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)

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

13

Можно поробовать отключить SELinux и удалить из /home/user/public_html .htaccess

No Woman No Cry...

14

.htaccess из public_html удалил
SELinux - предупреждений больше не выдаёт
читает файл index.html
на php файлах ошибка - No input file specified.

SELinux - это разве не демон, чтобы его не запускать вообще?

Искал в интернете про ошибку php.
В большинстве решений предлагает конфигурировать mod_rewrite -
скорее всего для перезаписи каталога пользователя.
Но у меня не заработало.
*** Добавлено: 16.06.2018 21:13:26 ***

Отключил SELinux командой
setenforce 0
Та же самая ошибка

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

15

index.php файл c вызовом phpinfo()?

Как вариант:

https://www.youtube.com/watch?v=J7THqucIjXM

No Woman No Cry...

16

это решение для Windows.
там document root на диске C:

прошёлся поиском по каталогу /etc на включение /var/www/html
находится только httpd.ini и файлы SELinux

Не хочу вас грузить дольше этим вопросом.
В корне вебсервера работает. Мне этого достаточно. Тему можно закрывать.

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

17 (17.06.2018 00:46:53 отредактировано Marley)

ок.
Ошибка аналогичная просто.

По идее можно посмотреть в выводе  phpinfo()
Loaded Configuration File местоположение php.ini файла.

И посмотреть в нем параметр:
doc_root

Можно попробовать либо закомментировать этот параметр или прописать в нем пустое значение.
user_dir =

No Woman No Cry...

18 (18.06.2018 10:36:42 отредактировано Vascom)

Selinux это не демон.
Просто сформируй разрешительное правило, раз уж так надо.

Делается это примерно так (от рута)

grep httpd /var/log/audit/audit.log | audit2allow -M myhttpd
semodule -i myhttpd.pp

Выключать selinux полностью или переводить его в permissive режим ни в коем случае не надо.

19

Vascom пишет:

Selinux это не демон.
Выключать selinux полностью или переводить его в permissive режим ни в коем случае не надо.

Есть графический помощник SELinux.
И он пишет, какую дать команду, чтобы пропустить трафик веи-сервера.
Им-то я и воспользовался.

Но дело не только в SELinux.
php не желает запускаться из пользовательского каталога, хотя HTML запускается
Также запускается phpMyAdmin - администрирование MySQL
Посмотрю ещё возможно как он сконфигурирован

Дорогие Линуксоиды!

Не хочу Вас излишне грузить данной темой.
Пока обхожусь php из корня всего компьютера.

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

20

ValentinK пишет:

Есть графический помощник SELinux.

ai  эт в терминале?
Или вы это делаете на десктопе?  bw

Спросить - стыд минуты, не узнать - стыд всей жизни

21

lone_wolf пишет:

эт в терминале?

в KDE есть графическая утилита, называется SELinux Troubleshooter

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

22

ValentinK пишет:

в KDE есть графическая утилита, называется SELinux Troubleshooter

Понял, спасибо  bw

Спросить - стыд минуты, не узнать - стыд всей жизни

23 (23.06.2018 20:58:16 отредактировано ValentinK)

Вот что выяснил.
Нaдо поставить пакет php-fpm и сконфигурировать его.
Он должен работать как прокси и компилировать php за прокси.
php из UserDirectory будет обращаться к прокси и получать на выходе html.

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!

24

Вот работающая инструкция:

https://www.if-not-true-then-false.com/ … -hat-rhel/

Fedora 35 KDE.
Linux is great and super! Long live rock'n'roll! Opera and libretto.
По-русски калинка-малинка моя! Люблю оливье и винегрет.
Yours sincerely, wasting away! Salute people!