设置 LAMP 开发环境的最佳实践

设置 LAMP 开发环境的最佳实践

我正经历一场噩梦:在本地机器上建立一个合适的环境来开发 Wordpress。

  1. 每次添加插件时,我都会不断手动调整文件权限。
  2. 我无法通过 Wordpress 界面安装主题或插件。
  3. sudo每次我需要修改我正在处理的站点文件夹的内容(主题文件等)时,我都必须不断地修改。
  4. 我尝试使用 XAMPP,它带有内置 FTP 设置,但通过 Web 界面上传的所有文件都被赋予了用户的权限nobody

有哪些最佳实践可以设置一个合适的 LAMP 环境,以模拟(至少部分)托管环境的便利性?

我猜想它可能从修改 apache 配置以指向我的~/文件夹中的开发文件夹开始,但我在那里遇到了严重的权限问题。

为了记录,我在一个系统上运行 Xubuntu 9.10,在另一个系统上运行 Ubuntu-netbook 9.10。

对此有什么建议或指南可以参考吗?

[编辑] 我并不完全反对使用虚拟机(正如所见这里,但只能作为最后的手段;上网本可能不够强大,我一般是指在本地复制一些东西。[/编辑]

答案1

看起来您的 apache(以及 XAMPP)以用户“nobody”的身份运行,而您的 Wordpress 安装由您的登录用户 ID 拥有。我猜它是一个无法通过互联网访问的开发服务器,在这种情况下,最简单的方法是将 apache 的 httpd.conf 中的运行用户更改为您的登录用户 ID。

更好的做法是安装 suPHP 或 suexec,但设置它们比上面的要困难一些。

答案2

首先,把所有内容都放在 /var/www 下,并将浏览器指向http://localhost/somesite/。首先,当您以后移动到新服务器时,事情会变得复杂。最好在您的计算机上创建虚拟主机,方法是somesite在 下创建一个名为(您的网站名称)的新文件

/etc/apache2/conf/sites-available/

为完整 URL 创建 VirtualHost。这样,当您迁移 wordpress 数据库时,您不必编辑站点地址。在我们的示例中,它将是 www.somesite.com 的虚拟主机。

以下是此类文件的一个示例:

<VirtualHost somesite:80>
ServerAdmin username@localhost
ServerName somesite
DocumentRoot /var/www/somesite
<Directory />
    AllowOverride All
    Options FollowSymLinks
</Directory>

ErrorLog /var/log/apache2/error.log

LogLevel debug

</VirtualHost>

然后执行以下命令:

$ sudo a2ensite somesite
$ sudo /etc/init.d/apache2 reload

您还需要更新/etc/hosts文件,将第一行从

127.0.0.1    localhost

127.0.0.1    localhost, somesite, www.somesite.com

但后来我遇到了一个问题:

我想将文件放在我的主文件夹中,在那里我有完全权限,而不是将其放在 /var/www 下。这样,我每次做某事时都不必使用 sudo,也不会冒弄乱系统的风险。我还可以更轻松地使用 SVN。

但是如果我创建这样的配置,当我将浏览器指向时,http://www.somesite.com/最终会出现 403 错误,并且没有权限。

即使我将整个somesite文件夹的权限设置为 777,我仍然会收到此错误。我还应该做什么?

答案3

我会使用虚拟机并使用目标主机将使用的相同发行版。这可以消除以后的很多挫折。就虚拟机和上网本而言,我认为“上网本”的重点是本地存储只是一个缓存,大部分工作都是在“云”中远程完成的?

您可以找到一台旧的台式机,将其设置为临时主机并在其上进行开发。如果您让您的网站在那里运行,那么将其移动到主机只会提高性能,如果您使用共享主机(大多数人都这样做),那么旧机器的结果将更接近您对托管服务的期望。

答案4

(这具体到想要一个WordPress 的dev 环境,它就不能作为通用的 LAMP 系统工作)。

尝试预先构建的 bitnami wordpress VM。它们在 VirtualBox 和 VMWare 下运行。 https://bitnami.com/stack/wordpress/virtual-machine

你确实需要小心,不要最终得到一个Bitnami LAMP 安装在您的机器上,下载的内容看起来几乎相同。

VM 启动后,您可以通过 wordpress gui 完成大部分工作。您还可以通过子主题进行自定义(需要在本地计算机上使用编辑器,然后进行压缩)。如果需要,您可以设置 VM 的 SSH 登录。

我设置了两台虚拟机,用于测试 staging/prod 工作流程(在 staging 中写入配置/内容,然后导出到 prod)。这比在我的托管服务提供商的 cpanel 上乱搞要好得多。

到目前为止没有太多惊喜。喜欢它。

相关内容