当前位置: 首页>>技术教程>>正文


lamp – 我应该将我的/var/www 目录符号链接到我的家吗?

, ,

问题描述

我刚刚安装了带有 LAMP 设置的 Ubuntu Server 10.04。我想在那里托管一个网站,但我不确定哪个是在服务器上获取/编辑我的文件的最佳方式。谷歌搜索提供了很多选择,但我不确定哪个最好?

除非有更好的选择,否则我想在另一台 PC(Windows 或 Linux)上创建页面并使用 SFTP 将更改同步到服务器 – 但我是对 ~/中的符号链接文件夹执行此操作还是通过更改权限在 /var/www/文件夹上?

最佳办法

每个设置都是不同的。对我来说,我在每个托管网站的服务器上有很多用户,对你来说,你可能不需要在系统上创建多个用户。但是,如果您在此服务器上管理多个网站,则此设置将帮助您以比标准 LAMP 设置更容易的方式管理、配置和调试每个域。为了实现这一点,我利用 Apache 的几种设备来解决权限错误。

首先,这是我使用的文档结构:

/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs

每个用户都有自己的帐户和域文件夹(我将其添加到 /etc/skel,因此每次都会创建它。每个域在 domains 文件夹中都有自己的文件夹和 html 文件夹(我有这个原因,主要是域可以拥有web 文件在公共领域之外)。随意修改这个结构,只要记住在这篇文章中进行这些更改。

其次,我托管了很多 PHP 站点,所以我在配置中使用了 suPHP。默认情况下,标准存档包没有启用正确的编译标志,导致 suPHP 版本的安全性较低。我已经制作了我自己的 suPHP 包,我在我的服务器上使用它,下面的安装说明。 suPHP 允许您定义应该执行的用户 PHP 脚本(其中包括:每个站点的自定义 php.ini 等)。我还为 Apache 启用了 suExec——进一步消除了对 www-data 用户(我鄙视的用户)拥有任何所有权的需要。

首先确保您的服务器上安装了 Apache 和所有其他服务。确保它们至少在工作。之后,我建议安装 suphp-common and the required libapache2-mod-suphp module (更多信息: What are PPAs and how do I use them? )。然后,在安装之后,使用 a2enmod 激活 suPHP 和 suexec

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>

这将为该域、文档根目录以及该域运行的所有其他基本必需品设置日志记录。我将这些文件放在通常命名为 [USER]-[DOMAIN]/etc/apache2/sites-available/ 中,并使用 a2ensite 启用/禁用它们,如下所示:

sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]

每次修改配置文件后,Apache 都需要重新加载

sudo /etc/init.d/apache reload

虽然设置所获得的灵活性似乎很多,但在我看来,这远远超过了设置时间。尽管您只需要一个单用户 Web 服务器,但将来如果您想要除单用户 Web 服务器以外的任何东西,您将需要执行进一步的操作(或者只是一起放弃安全性)才能做到这一点。

次佳办法

Sftp 很容易安装。只需安装包 openssh-server,您将拥有 sftp。如果您可以从 Internet 访问,请确保您的用户有一个正确的密码。 (8+ 个字符,不是字典单词,有符号和数字)。

对于权限,我通常这样做 sudo adduser <username> www-data sudo chown -R www-data:www-data /var/www sudo chmod -R g+rw /var/www 然后您应该能够通过连接 sftp(使用您的用户名和密码)然后转到 /var/www 文件夹并将文件放在那里来发布页面。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12535.html,未经允许,请勿转载。