Каждая установка отличается. Для меня у меня много пользователей на сервере, каждый из которых размещает веб-сайты, для вас, скорее всего, вам не нужно будет создавать более одного пользователя в системе. Однако, если вы управляете несколькими веб-сайтами на этом сервере, эта настройка поможет вам управлять, настраивать и отлаживать каждый домен более простым способом, чем стандартная настройка LAMP. Чтобы это произошло, я использую несколько устройств Apache, чтобы обойти ошибки разрешения.
Во-первых, это структура документа, которую я использую:
/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs
У каждого пользователя есть своя учетная запись с папкой доменов (которую я добавил, /etc/skel
поэтому она создается каждый раз. У каждого домена есть своя папка в domains
папке с html
папкой (у меня есть для этого причины, в первую очередь, чтобы у доменов могли быть веб-файлы вне из общественного царства.) Не стесняйтесь изменять эту структуру по своему усмотрению, просто не забывайте переносить эти изменения в этом посте.
Во-вторых, я размещаю много PHP-сайтов, поэтому в своей конфигурации я использую suPHP. По умолчанию в стандартном архивном пакете не включен соответствующий флаг компиляции, что приводит к менее безопасной версии suPHP. Я сделал свой собственный пакет suPHP, который я использую на своих серверах, инструкции по установке приведены ниже. suPHP позволяет вам определить, какие пользовательские сценарии PHP должны выполняться (среди прочего, включая: пользовательский php.ini для каждого сайта и т. д.). Я также включаю suExec для Apache - это устраняет необходимость владения правами пользователя www-data (пользователя, которого я презираю).
Сначала убедитесь, что у вас есть Apache и все другие службы, установленные на вашем сервере. Убедитесь, что они хотя бы работают. После этого я рекомендую установить suphp-common и необходимый модуль libapache2-mod-suphp (дополнительная информация: что такое PPA и как их использовать? ). Затем, после установки, активируйте suPHP и suexec, используяa2enmod
sudo a2enmod suphp
sudo a2enmod suexec
sudo a2dismod php5
sudo /etc/init.d/apache restart
Далее придет файл конфигурации. Я создал различные инструменты, которые автоматически генерируют файлы конфигурации каждый раз, когда я добавляю новый сайт; тем не менее, вот основной шаблон, который я использую:
<VirtualHost *:80>
ServerAdmin [EMAIL]
ServerName [DOMAIN]
ServerAlias www.[DOMAIN] [DOMAIN]
DocumentRoot /home/[USER]/domains/[DOMAIN]/html
<Directory /home/[USER]/domains/[DOMAIN]>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
</Directory>
ErrorLog /home/[USER]/domains/[DOMAIN]/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/[USER]/domains/[DOMAIN]/logs/access.log combined
SuexecUserGroup [USER] [USER]
suPHP_UserGroup [USER] [USER]
suPHP_ConfigPath /home/[USER]/etc
</VirtualHost>
Это настраивает ведение журнала для этого домена, корня документа и всех других основных потребностей, необходимых для работы домена. Я помещаю эти файлы в /etc/apache2/sites-available/
обычно именованные [USER]-[DOMAIN]
и включаю / отключаю их a2ensite
так:
sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]
После каждой модификации файлов конфигурации Apache необходимо будет перезагружать
sudo /etc/init.d/apache reload
Хотя может показаться, что настройка настраиваемой гибкости может показаться слишком сложной, на мой взгляд, она намного превышает время настройки. Хотя вам нужен только однопользовательский веб-сервер, в будущем, если вам когда-нибудь понадобится что-то кроме однопользовательского веб-сервера, вам потребуется выполнить дальнейшие действия (или просто сбросить защиту вместе), чтобы сделать это.