我知道这个问题已经出现过几次了,但我似乎找不到问题的明确答案,所以请耐心等待。我在 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
上线后别忘了删除哦!
注意:直接复制
通过输入以下命令禁用默认的 Apache 虚拟主机:::
sudo a2dissite default
通过输入以下命令导航到您的主目录:::
cd ~
通过输入以下命令创建一个文件夹来保存您的网站:::
mkdir public
在其中创建一组文件夹
public
来存储您的网站的文件、日志和备份。输入以下命令,替换example.com
为您的域名:::mkdir -p public/example.com/{public,log,backup}
通过输入以下命令将您的主目录设置为系统上所有用户均可读取和访问:::
sudo chmod a+rx ~
public
通过输入以下命令将目录(及其中的所有文件)设置为系统上所有用户均可读取和访问:::sudo chmod -R a+rx ~/public
通过输入以下命令为您的网站创建虚拟主机文件。替换
example.com
为您的域名:::sudo nano /etc/apache2/sites-available/example.com
现在是时候为您的虚拟主机创建配置了。我们创建了一些基本设置来帮助您入门。将下面显示的设置复制并粘贴到您刚刚创建的虚拟主机文件中。将其替换
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>
Control + x
按 然后按 将更改保存到虚拟主机配置文件y
。public
通过输入以下命令创建指向新目录的符号链接。替换example.com
为您的域名:::sudo a2ensite example.com
重新启动 Apache 以保存更改。输入以下命令:::
sudo service apache2 restart
对您想要在 Linode 上托管的每个其他网站重复步骤 1-11。