本地开发的public_html权限

本地开发的public_html权限

我知道这个问题已经出现过几次了,但我似乎找不到问题的明确答案,所以请耐心等待。我在 VirtualBox 中安装了 Ubuntu Server 12.04,用于 PHP 开发和测试(Drupal 以及其他使用 Yii 框架的 PHP 站点)。我的问题分为 3 个部分...

1)如果我public_html在 下创建一个文件夹/home/myuser,我是否需要将该文件夹的所有权授予 Apachewww-data组?如果是这样,我应该设置任何特定权限吗??755(顺便说一句,我正在关注本指南创建 public_html 目录并为每个我创建和测试的站点设置多个虚拟主机)

我之前的所有网站都位于 下/var/www,但每当我尝试通过 FileZilla 或 PhpStorm 进行 sFTP 访问时,都会遇到大量权限被拒绝错误。这是我之前所做的:

sudo chgrp www-data /var/www
sudo chmod -R 775 /var/www
sudo chmod -R g+s /var/www
sudo usermod -G www-data [my_ftp_user]

2)我的问题的第二部分是:如果我通过 PhpStorm 在 Windows 中创建 PHP 项目和文件,然后通过 sFTP 上传,权限会受到影响吗?

3)一旦我对我开发的项目感到满意,是否建议移动并测试它们/var/www以查看它在生产环境中的运行情况?

我非常感谢这里的帮助和建议。我一边学习一边学习,但处理 Linux 文件和权限对我来说有点陌生!谢谢

答案1

我通常使用 linode 的这个指南来创建本地开发环境:http://library.linode.com/hosting-website

我对此唯一的个人补充是,有时候我想测试 URL 路径和类似的东西,所以我欺骗我的计算机认为 localhost 是 www.example.com

sudo nano /etc/hosts

添加:127.0.0.1 example.com上线后别忘了删除哦!

注意:直接复制

  1. 通过输入以下命令禁用默认的 Apache 虚拟主机:::

    sudo a2dissite default

  2. 通过输入以下命令导航到您的主目录:::

    cd ~

  3. 通过输入以下命令创建一个文件夹来保存您的网站:::

    mkdir public

  4. 在其中创建一组文件夹public来存储您的网站的文件、日志和备份。输入以下命令,替换example.com为您的域名:::

    mkdir -p public/example.com/{public,log,backup}

  5. 通过输入以下命令将您的主目录设置为系统上所有用户均可读取和访问:::

    sudo chmod a+rx ~

  6. public通过输入以下命令将目录(及其中的所有文件)设置为系统上所有用户均可读取和访问:::

    sudo chmod -R a+rx ~/public

  7. 通过输入以下命令为您的网站创建虚拟主机文件。替换example.com为您的域名:::

    sudo nano /etc/apache2/sites-available/example.com

  8. 现在是时候为您的虚拟主机创建配置了。我们创建了一些基本设置来帮助您入门。将下面显示的设置复制并粘贴到您刚刚创建的虚拟主机文件中。将其替换example_user为您的用户名,并将其替换example.com为您的域名。

…着色:: apache

# domain: example.com
# public: /home/example_user/public/example.com/

<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin [email protected]
  ServerName  www.example.com
  ServerAlias example.com

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/example_user/public/example.com/public

  # Log file locations
  LogLevel warn
  ErrorLog  /home/example_user/public/example.com/log/error.log
  CustomLog /home/example_user/public/example.com/log/access.log combined
</VirtualHost>
  1. Control + x按 然后按 将更改保存到虚拟主机配置文件y

  2. public通过输入以下命令创建指向新目录的符号链接。替换example.com为您的域名:::

    sudo a2ensite example.com
    
  3. 重新启动 Apache 以保存更改。输入以下命令:::

    sudo service apache2 restart
    
  4. 对您想要在 Linode 上托管的每个其他网站重复步骤 1-11。

相关内容