Автор Тема: prestashop_1.6.0.14 На FreeBSD без Apache  (Прочитано 1510 раз)

11 Май 2015, 18:50:42
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Доброго времени!

Решил пощупать Престу, а именно, поднять хостинг на FreeBSD + Nginx + Php-fpm + Mysql.
Скопировал, запустил установку. Ругается, что нет прав на пользователя Apache. Ясно дело,
такого пользователя в системе нет и быть не может. Хочу обойтись вообще без Apache.

Собственно, "?" - как заменить пользователя Apache на Nginx? То есть где в prestashop_1.6.0.14
прописан пользователь Apache?
Какие пермиссии следует установить? (Чтение+запись+исполнение каталог, Чтение+запись файл ?)

Всякие варианты типа Apache + Nginx не приемлемы, городить буду вышеуказанную связку только на Nginx.

Если данная схема по Вашему мнению не работоспособна  укажите причины, постараюсь допилить.
Думаю, тема будет полезной. Всё таки FreeBSD одна из самых надёжных осей.

Спасибо.

11 Май 2015, 21:36:29
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В prestashop нет пользователя Apache.
Вам нужно настроить права для пользователя, от которого запускаются скрипты php.
Установка и настройка: Nginx + php5-fpm
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
12 Май 2015, 09:05:55
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Странно.....
Платформа настроена, Например, PhpMyadmin работает нормально, остальные web сервисы тоже.
Инсталлятор PrestaShop запускается и проходим первый шаг - выбор языка, второй шаг - лицензионное соглашение, на третьем шаге - "Проверка совместимости системы" инсталлятор ругается, что пользователю Apache нехватает прав на запись в каталоги.

Таким образом, платформа здесь не причём. Если prestashop_1.6.0.14 не содержет процедур проверки пермиссий для Apache,  почему в таком случае, происходит проверка его пермиссий? Странно.
Сейчас рекурсивно сделаю Apache владельцем каталога prestashop, посмотрим.
12 Май 2015, 10:47:23
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop нет проверки для определенного пользователя. При установке проверяются права на запись / чтение файлов и директорий. Пользователь будет определен системой, это от кого работает prestashop.
Смотрите кофиг веб-сервера. По-умолчанию он находится в - /usr/local/etc/nginx/nginx.conf.
user www;
worker_processes 1
....
Значит пользователь WWW должен иметь права на изменение файлов в корневой директории сайта.
chown www:www /var/www/prestashop.ru
chmod 755 /var/www/prestashop.ru
Далее проверяете конфиг php-fpm. По-дефолту он лежит в - /usr/local/etc/php-fpm.conf.
<value name="user">www</value>
<value name="group">www</value>
12 Май 2015, 10:54:04
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
FreeBSD одна из самых надёжных осей.
Любой дистрибутив линукс надежный, если он правильно настроен.

Цитировать
Всякие варианты типа Apache + Nginx не приемлемы, городить буду вышеуказанную связку только на Nginx.
Prestashop нормально работает и на Nginx. Только правила из htaccess нужно записать в конф. файл сайта.
# /etc/nginx/sites-available/prestashop.ru
server {
  ...
  rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
  rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$1$2.jpg last;
  rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
  rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
  rewrite ^/c/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;
  rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+.jpg$ /img/c/$1.jpg last;
  rewrite ^/([0-9]+)(-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*.jpg$ /img/c/$1$2.jpg last;
 ...
12 Май 2015, 10:56:59
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
www      nginx      1151  6  tcp4   *:80                  *:*
www      nginx      1150  6  tcp4   *:80                  *:*
......................
www      php-fpm    726   0  tcp4   127.0.0.1:9000        *:*
www      php-fpm    725   0  tcp4   127.0.0.1:9000        *:*

Права установлены как : владелец и группа www , На файлы 644,  На каталоги 755
---------------------------------------------------------------------------------------------------------------

Как раз здесь вопросов не возникает, Откуда тогда берётся этот пользователь Apache? Почему инсталлятор пытается сопоставить его пермисии? Apache в системе то нет....

-------------------------------------------------------------------------------------------------------------------------
DarinSr

По поводу особенностей осей....... в общем, это другая тема.  Если есть желание, обсудим позже лады?

За рег. выражения спасибо, испытаю. Но ведь сперва нужно установится.
12 Май 2015, 11:03:13
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это общее имя, не нужно на него обращать внимание.
if (!is_callable('getenv') || !($user = @getenv('APACHE_RUN_USER')))
$user = 'Apache';
При установке prestashop не опредилил точное имя пользователя системы и показал общее название 'Apache'.
12 Май 2015, 11:20:44
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
DarinSr
Ага..... ясно. Но тогда в чём м.б проблема?

USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
www      nginx      1151  6  tcp4   *:80                  *:*
www      nginx      1150  6  tcp4   *:80                  *:*
......................
www      php-fpm    726   0  tcp4   127.0.0.1:9000        *:*
www      php-fpm    725   0  tcp4   127.0.0.1:9000        *:*

Права установлены как : владелец и группа www , На файлы 644,  На каталоги 755

Теперь вообще error 500

В логе Nginx
2015/05/12 14:07:37 [error] 1151#0: *101 upstream timed out (60: Operation timed out) while reading response header from upstream, client: 192.168.0.4, server: prestashop, request: "GET /install/index.php HTTP/1.1", upstream: "fastcgi://unix:/tmp/php5-fpm.sock", host: "192.168.0.9"

Ошибка по таймауту.....  На этом же сокете PhpMyAdmin, работает отлично.
srw-rw----  1 www  www     0B May 12 19:05 /tmp/php5-fpm.sock

С пермиссиями должно быть всё ОК, т.к. перенаправление в каталог install работает и страница ошибки правильная, а она в к-логе prestashop (error500.html)

12 Май 2015, 11:27:20
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Это означает, что не хватает времени, чтобы получить ответ сервера. Нужно в nginx.conf изменить значение директивы proxy_read_timeout. Эта директива определяет, как долго будет Nginx ждать, чтобы получить ответ на запрос. По умолчанию это 60 секунд. Измените его на 300  или больше.
server {
    listen       80;
    server_name  ....;
 
    location / {
        ...
        proxy_read_timeout 300;
        ...
    }
    ...
}

Решение не очень, но может помочь установить. Потом уже проверять настройки будете и искать почему долго отклик идет. А для тестового сервера и так сойдет.
12 Май 2015, 12:07:35
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Решено..... да только опять "??" возникают, но не к Вам.
Сервер поднят на виртуалке, доступ в и-нет ему был закрыт роутером.  Выпустил его (виртуалку эту) в и-нет и сразу все проблемы решились. Всё сразу же установилось, грузится махом..... никаких таймаутов.....  да вот только не понятно, какое отношение и-нет имеет к скрипту установки? Грубо говоря, чтобы заполнить базу, прописать пути и зависимости из файла "А" в файл "Б" интернет нужен?
------------------------------------------------------------------------------------
И в логе роутера ни одного отброшенного пакета с адреса, на котором PrestaShop ставилась ..... чудеса!!! Ведь если сервис лезет в и-нет, а его не пускают должны быть записи в логах.... ан нет ничего. Все остальные Deny присутствуют, кроме адреса виртуалки. (Виртуалка подключена, как мост - непосредственное подключение к сети, с отдельным адресом и маком)
Может быть, кто-нибудь ещё сталкивался с подобным чудом?
12 Май 2015, 13:25:17
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Так при установке prestashop стучится в оф.сайт, проверяет модули, языковые версии. Если выбрать русский при установке, то он будет загружать языковой пакет по сети.
12 Май 2015, 14:28:42
Ответ #11
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Ясно. Спасибо ВСЕМ!!! Траблы, относящиеся к теме, буду выкладывать сюда.
26 Май 2015, 14:23:16
Ответ #12
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +5/-0
  • BSDA Certification
    • Просмотр профиля
Крутил связку несколько дней..... работает СУПЕР!
Есть проблемки по настройкам, но по настройкам самой PrestaShop, это дело наживное. Разберусь с ин-фейсом.

Если кого-то интересуют конфиги, спрашивайте, выложу.