当前位置: 首页>>技术问答>>正文


编辑和添加文件到“/var/www”的最简单方法是什么?

, ,

问题描述

安装Web服务器后,有一种简单的方法可以设置用户可以使用图形界面将文件和目录复制到本地Web服务器/var /www

我在Ubuntu给自己的管理权限,但它仍然不允许副本。

最佳解决方案

如果您将/var /www设置为可由群组写入并将用户添加到群组,则该用户不必使用sudo。尝试这个:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

用户应该能够毫无麻烦地编辑/var /www /文件。

第一行将用户添加到www-data组中,第二行清除拥有所有权的任何文件,第三行使所有属于www-data组成员的用户都可以读写/var /www中的所有文件。

如果以<username>身份登录,则需要注销并重新登录才能使组成员身份生效。

次佳解决方案

您可以chown,即ch,该文件夹的own erge。这将允许您更改文件夹的用户和组,允许用户在其上添加/删除文件。要执行此操作,请用您的名称替换yourusername并运行:

sudo chown yourusername.users /var/www

那就是它。


不过,我主张在我的home文件夹中创建一个虚拟主机,这很容易。

基本上它允许你使用任何文件夹作为Apache服务文件夹。为了说明它是如何简单的,我们假设你的用户名是用户名,你想要服务的文件夹是/home /username /www

在/etc /apache2 /sistes-available中创建以下文件(例如mywebprojects),替换用户名和文件夹路径(基本上只需复制并粘贴并在#CHANGE HERE中替换):

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    # CHANGE HERE
    DocumentRoot /home/username/www

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    # CHANGE HERE
    <Directory /home/username/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

现在让我们创建www文件夹,添加一个简单的Hello世界,禁用默认网站(/var/www),启用我们的网站mywebprojects并重新启动apache。

mkdir ~/www 
echo "<html><h1>Hello World</h1></html>" > ~/www/test.html
sudo a2dissite default #
sudo a2ensite mywebprojects
sudo service apache2 restart

而且,现在你不需要去/var/www,只需将文件添加到www(或其他名称),并且它已经在那里:)。

第三种解决方案

方法1:

  • ALT + F2并输入gksudo nautilus ,然后单击运行。

    permissions,webserver,ubuntu

  • 它会以root previleges打开 nautilus 。

  • Goto Filesystem→var→www现在你可以添加/复制/粘贴你的文件。

方法2:

  • 安装nautilus-gksu

  • 在终端中安装类型nautilus -q以刷新右键单击菜单。

  • 现在,您将在 nautilus right-click菜单中找到“以管理员身份打开”条目。

  • 当您需要使用root权限打开任何文件时,只需在该文件/文件夹中选择right-click,然后选择“以管理员身份打开”即可。

  • 它将以root权限打开该文件/文件夹。

    permissions,webserver,ubuntu

第四种方案

它可以像使用ACL的sudo usermod -a -G developers $username一样简单。

然而,这需要一些工作才能开始。至少对于Ubuntu 10.10来说。首先在/etc /fstab中用acl选项安装文件系统。

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /ext4默认值,acl 0 1

sudo mount -o remount,acl /

然后为此组建一个用户可能属于的组。

sudo groupadd developers
sudo usermod -a -G developers $username

用户需要注销并再次成为开发人员组的成员。

当然,如果你想要/var /www目录中的内容,请不要这样做,只是为了说明如何设置它以启动:

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root:developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

然后用配置文件中的”/var/www/public”替换对”/var/www”的引用并重新加载。

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

如果我们想限制删除和重命名,除了创建文件的用户:

sudo chmod +t /var/www/public

这样,如果我们想为Apache文档根目录之外的框架创建目录,或者创建server-writable目录,它仍然很容易。

Apache-writable日志目录:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

Apache-readable库目录:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs

参考资料

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