Лучшие практики для настройки среды разработки LAMP

2877
Jono

У меня кошмар, когда я создаю достойную среду для разработки Wordpress на локальной машине.

  1. Я постоянно вручную настраиваю права доступа к файлам каждый раз, когда добавляю плагин.
  2. Я не могу установить темы или плагины через интерфейс Wordpress.
  3. Я должен держать- sudoкаждый раз, когда мне нужно изменить содержимое папки сайта, над которой я работаю (файлы тем и т. Д.)
  4. Я пытался использовать XAMPP, который поставляется со встроенной настройкой FTP, но затем все файлы, загруженные через веб-интерфейс, получают разрешения пользователя nobody.

Каковы некоторые рекомендации по созданию достойной среды LAMP, которая имитирует - хотя бы частично - удобство размещенной среды?

Я думаю, это может начаться с изменения конфигурации apache, чтобы он указывал на папку разработки в моей ~/папке, но у меня были ужасные проблемы с разрешениями там.

Для справки, я использую Xubuntu 9.10 на одной системе и Ubuntu-нетбук 9.10 на другой.

Любой совет или руководство, к которому я могу обратиться для этого?

[править] Я не совсем против использования виртуальной машины (как видно здесь, но только в качестве крайней меры; нетбук, вероятно, недостаточно мощный, и я обычно имею в виду работу над локальной копией вещей. [/ edit] ]

5
ТАК или serverfault.com? ukanth 14 лет назад 0
Нет. Это не вопрос программирования, и я не настраиваю сеть компьютеров, которыми не владею. Jono 14 лет назад 0
serverfault было бы лучше всего - это действительно вопрос системного администратора. gbjbaanb 14 лет назад 0
Интуитивно, это вопрос системного администратора. Но на самом деле это вопрос разработчика, а не вопрос программирования. Если вы прочитаете определения на сервере, вы увидите, что это не подходит. Jono 14 лет назад 0

5 ответов на вопрос

1
Remy

Похоже, ваш apache (и, следовательно, XAMPP) работает как пользователь «nobody», тогда как ваша установка Wordpress принадлежит вашему имени пользователя для входа. Я предполагаю, что это не доступный для Интернета сервер разработки, и в этом случае проще всего изменить пользователя, запускаемого от имени в файле apd httpd.conf, на свой логин.

Лучше было бы установить suPHP или suexec, но настроить их немного сложнее, чем выше.

Пользователь `nobody` по умолчанию для ftp-компонента XAMPP, насколько я знаю. Весь смысл XAMPP в том, что я просто придерживаюсь, и это работает, но это не так. Но в любом случае я использую только XAMPP на нетбуке. Jono 14 лет назад 0
С другой стороны, run-as для apache звучит важно. Может быть, это решит мою последнюю проблему. Jono 14 лет назад 0
Вы также рассматривали возможность просмотра mod_userdir? Remy 14 лет назад 0
1
Jono

Для начала не стоит засовывать все в / var / www и указывать браузеру http: // localhost / somesite / . С одной стороны, это усложняет ситуацию, когда вы позже переходите на новый сервер. Лучше всего создать виртуальный хост на вашем компьютере, создав новый файл с именем somesite(имя вашего сайта) в разделе

/etc/apache2/conf/sites-available/ 

Создайте VirtualHost для полного URL. Таким образом, при переносе базы данных WordPress вам не нужно редактировать адрес сайта. В нашем примере это будет виртуальный хост для www.somesite.com.

Вот пример такого файла:

<VirtualHost somesite:80> ServerAdmin username@localhost ServerName somesite DocumentRoot /var/www/somesite <Directory /> AllowOverride All Options FollowSymLinks </Directory>  ErrorLog /var/log/apache2/error.log  LogLevel debug  </VirtualHost> 

Затем выполните следующие команды:

$ sudo a2ensite somesite $ sudo /etc/init.d/apache2 reload 

Вам также необходимо обновить /etc/hostsфайл, изменив первую строку с

127.0.0.1 localhost 

в

127.0.0.1 localhost, somesite, www.somesite.com 

но потом я сталкиваюсь с проблемой:

Я хотел бы поместить файлы в мою домашнюю папку, где у меня есть полные права, вместо того, чтобы вставлять их в / var / www. Таким образом, мне не нужно судиться каждый раз, когда я хочу что-то сделать, и при этом я не рискую испортить систему, когда я это делаю. Я также могу работать с SVN более легко.

Но если я создаю такую ​​конфигурацию, когда я указываю браузеру, http://www.somesite.com/я получаю ошибку 403 без каких-либо разрешений.

Даже когда я установил всю somesiteпапку с разрешениями 777, я все равно получаю эту ошибку. Что еще я должен делать?

1
gavaletz

Я бы использовал виртуальную машину и использовал бы тот же дистрибутив, что и целевой хост. Это может устранить много разочарований позже. Что касается виртуальной машины и нетбука, то я думал, что весь смысл «нетбука» заключается в том, что локальное хранилище представляет собой только кэш, а основная часть работы должна быть удаленно помещена в «облако»?

Вы можете найти старый настольный компьютер для установки в качестве временного хоста и развивать его. Если вы заставите ваш сайт работать там, то перемещение его на хост только повысит производительность, а если вы используете виртуальный хостинг (большинство людей так делают), то результаты со старой машины будут более точно соответствовать ожидаемым от вашего хостинга. в любом случае.

0
gbjbaanb

Звучит так, как будто вы распаковываете надстройки как свои собственные, а затем запускаете их с помощью chmod для пользователя. Это нормально, не беспокойтесь об этом.

Суть в том, что вы запускаете apache как пользователь с низкими привилегиями, у которого есть разрешения только для некоторых вещей, таких как доступ только к своим файлам и ни к одному из них, скажем, в вашем домашнем каталоге (потому что вы будете раздражены если бы Сэм Хакер мог скачать ваши личные файлы). В каком бы каталоге вы ни работали, ваш сайт должен быть читаем (и в некоторых случаях доступен для записи) пользователем Apache.

Это позволит вам устанавливать плагины внутри Wordpress - так как он (то есть Apache) будет иметь доступ на запись в нужные ему каталоги. Ваш FTP-пользователь будет настроен правильно, так как никто не использует Rapache, как в некоторых дистрибутивах.

Теперь, чтобы упростить для себя задачу, добавьте своего пользователя в группу wheel, чтобы вы могли выполнить su, выполнить загрузку команд и выйти из системы обычному пользователю.

Хм. Таким образом, я должен назначить владельцем всех файлов в каталоге XAMPP "nobody"? Jono 14 лет назад 0
0
JL Peyret

(Это характерно для желаемой среды разработки Wordpress, она не будет работать как общая система LAMP).

Попробуйте готовые виртуальные машины WordPress для Bitnami. Они работают под VirtualBox и VMWare. https://bitnami.com/stack/wordpress/virtual-machine

Вы должны быть несколько осторожны, чтобы не закончить установку Bitnami LAMP на вашем компьютере, эта загрузка выглядит почти так же.

Как только виртуальная машина заработает, вы сможете выполнять большую часть своей работы через графический интерфейс WordPress. Вы также можете настроить с помощью дочерней темы (требуется редактор на вашем локальном компьютере, а затем архивировать). При необходимости вы можете настроить SSH-вход в виртуальную машину.

Я установил две виртуальные машины, чтобы протестировать рабочий процесс подготовки / создания (запись конфигурации / содержимого в подготовке, экспорт в prod). Намного лучше, чем возиться с cpanel моего хостинг-провайдера.

Пока не так много сюрпризов. Нравится это.