Cra*_*aig 21 lamp webserver sftp
我刚刚安装了带有 LAMP 设置的 Ubuntu Server 10.04。我想在那里托管一个网站,但我不确定哪个是在服务器上获取/编辑我的文件的最佳方式。谷歌搜索提供了很多选择,但我不确定哪个是最好的?
除非有更好的选择,否则我想在另一台 PC(Windows 或 Linux)上创建页面并使用 SFTP 将更改同步到服务器 - 但我是对 ~/ 中的符号链接文件夹执行此操作还是通过更改权限在 /var/www/ 文件夹上?
Mar*_*ppi 21
每个设置都不一样。对我来说,我在每个托管网站的服务器上都有很多用户,对您来说,您可能不需要在系统上创建多个用户。但是,如果您在此服务器上管理多个网站,则此设置将帮助您以比标准 LAMP 设置更容易的方式管理、配置和调试每个域。为了实现这一点,我使用了 Apache 的几个设备来解决权限错误。
首先,这是我使用的文档结构:
/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs
Run Code Online (Sandbox Code Playgroud)
每个用户都有自己的带有域文件夹的帐户(我添加到该文件夹中,/etc/skel因此每次都会创建它。每个域在domains带有html文件夹的文件夹中都有自己的文件夹(我有我的原因,主要是因为域可以在外部拥有 Web 文件)公共领域)。请随意修改您认为合适的结构,只需记住在整个帖子中进行这些更改。
其次,我托管了很多 PHP 站点,因此我在配置中使用了 suPHP。默认情况下,标准存档包没有启用正确的编译标志,从而导致 suPHP 的安全性较低。我已经制作了我自己的 suPHP 包,我在我的服务器上使用了它,安装说明如下。suPHP 允许您定义应作为什么用户 PHP 脚本执行(其中包括:每个站点的自定义 php.ini 等)。我还为 Apache 启用了 suExec - 进一步消除了对 www-data 用户(我鄙视的用户)拥有任何所有权的需要。
首先确保您的服务器上安装了 Apache 和所有其他服务。确保它们至少在工作。之后,我建议安装suphp-common 和所需的 libapache2-mod-suphp 模块(更多信息:什么是 PPA 以及如何使用它们?)。然后,在这些安装之后,使用激活 suPHP 和 suexeca2enmod
sudo a2enmod suphp
sudo a2enmod suexec
sudo a2dismod php5
sudo /etc/init.d/apache restart
Run Code Online (Sandbox Code Playgroud)
接下来是配置文件。我制作了各种工具,每次添加新站点时都会自动生成配置文件;但是,这是我使用的基本模板:
<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>
Run Code Online (Sandbox Code Playgroud)
这会为该域、文档根以及域运行的所有其他基本必需品设置日志记录。我将这些文件放在/etc/apache2/sites-available/通常命名的位置[USER]-[DOMAIN]并启用/禁用它们,a2ensite如下所示:
sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]
Run Code Online (Sandbox Code Playgroud)
每次修改配置文件后,Apache 都需要重新加载
sudo /etc/init.d/apache reload
Run Code Online (Sandbox Code Playgroud)
虽然设置获得的灵活性似乎很多,但在我看来,远远超过设置时间。虽然您只需要一个单用户网络服务器,但将来如果您想要单用户网络服务器以外的任何东西,您将需要执行进一步的操作(或者只是一起放弃安全性)才能这样做。
Aze*_*ale 11
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 文件夹并将您的文件放在那里。
| 归档时间: |
|
| 查看次数: |
18880 次 |
| 最近记录: |