/tmp
папка является заполнителем по умолчанию для файлов сессии. Лучше используйте свою собственную папку сессии
Если Ваш хост позволил .htaccess
разрешение переопределений, можно поместить следующую директиву в Ваш .htaccess
под public_html
или httpdocs
папка
php_value session.save_path '/yourpath/sessionfolder'
Если Вы НЕ работаете php
в suphp
режим, Удостоверьтесь, что папка перезаписываема другими (777
)
теперь он работал, когда я дал домашнему каталогу в / home / userx разрешение o + x, это безопасно, зачем ему разрешение на выполнение для всех
Мне нужно убедитесь, что я изменил информацию о владельце и группе в папках, с помощью следующей команды: chown apache2 / home / project1 / public -R и chgrp apache2 / home / project1 / public -R, если команды говорят, что пользователь apache2 этого не делает. t существует, замените его на httpd. Это причина, по которой он не работает в домашнем каталоге (принадлежащем вашему пользователю) и не работает в каталоге / var / www (принадлежит apache2). Я бы рекомендовал создать символическую ссылку в / var / www /, указывающую на ваш домашний каталог. Это стандартное дело. (другим легче понять, что происходит)
Просто быстрый снимок в темноте, но это может быть SELinux вопрос. Когда вы переходите на сайт, который вы настроили в качестве ServerName, отображается ли что-нибудь в журналах конкретного сайта? Что-нибудь отображается в /var/log/http/error.log?
-Убедитесь, что вы выполнили перезагрузку или перезагрузку с apache2 / httpd после ЛЮБЫХ изменений в конфигурации
-Убедитесь, что / home / project1 / web / public существует и разрешение 664 (выполните это рекурсивно с -R)
-Убедитесь, что владельцем и группой файлов является apache2 / httpd (в зависимости от дистрибутива), обычно идентификатор пользователя 33
-Убедитесь, что IP-адрес project1.cairocubicles.com указывает на правильный
- Я обычно избегаю www. поддомен с существующим поддоменом (не по техническим причинам, он просто выглядит беспорядочно)
-Для тестирования создайте файл с именем phpinfo.php, и пусть он содержит только следующие
<?php
phpinfo();
?>
и загрузит только его (так http://project1.cairocubicles.com/phpinfo.php)
- Вам необходимо убедиться, что вы изменили информацию о владельце и группе в папках. Попробуйте выполнить следующую команду (расширяя пункт 3 выше):
sudo chown apache2 /home/project1/public -R
и
sudo chgrp apache2 /home/project1/public -R
, если команды говорят, что пользователь apache2 не существует, замените его на httpd. Если процесс apache2 (запущенный как пользователь apache2) не может читать / выполнять файлы, могут возникнуть ошибки (например, 403 запрещено).
Другой способ обойти это - добавить вашего пользователя в группу apache2. Однако это немного сложнее правильно настроить
Попробуйте:
ServerName project1.cairocubicles.com ServerAlias www.project1.cariocubicles.com
Убедитесь, что пользователь, от имени которого запущен apache, имеет доступ для чтения к каталогу / home / project1 / web / public
Если домен не указан как ServerName или ServerAlias, он будет загружаться с первого определенного VirtualHost. Поэтому в первом случае вы оказались не на том сайте.
После изменения ServerName вы, вероятно, загружали правильный веб-сайт, но теперь у вас возникла проблема с разрешениями или контентом. Проверьте журналы ошибок, журналы доступа, разрешения файловой системы. Кроме того, предыдущий плакат упоминал SELinux как возможную проблему.