好吧,我听说目前为生产安装 Apache/Nginx、PHP、MySQL 的最佳和最简单的方法是使用 apt-get 或类似特定发行版的包管理器来提取软件。这样做的好处是您使用的是可靠构建的包,并且可以轻松地在生产中更新它们。
现在我正在使用 Ubuntu 12.04 并渴望获得该软件的最新版本:
- Apache 2.4.x或者Nginx 1.2.x
- PHP 5.4.x
- MySQL 5.5.x
然而,我遇到的每个指南似乎都让我安装所有这些东西,但是在我完成所有配置之后它最终并没有工作,我不知道出了什么问题或如何修复它。
到目前为止我已经想到了:
1)使用以下命令安装 dotdeb 存储库这些说明:
2)安装 Apache 2.2.22、PHP 5.4.3、MySQL 5.5.24:
aptitude install mysql-server apache2 libapache2-mod-php5 php5-mysql php5-apc php5-curl
3)使用以下命令安装 mod-rewrite 包:
a2enmod rewrite
现在一切正常,我可以让 phpinfo() 运行并正确显示,并连接到数据库。但是,这只能让我使用 Apache 2.2.22(我更喜欢 2.4.x,因为它的速度提升很快),而且我无法让 mod-rewrite 工作,它只是拒绝将所有内容重定向到 index.php,因此只有主页可以工作。
我将 htaccess 代码设置为:
RewriteEngine on
RewriteBase /
# Forward any url without the listed extentions to index.php
RewriteRule !\.(js|css|ico|txt|gif|jpg|jpeg|png|ttf)$ index.php
我不知道,这是我第五次安装 Ubuntu,现在我必须尝试让它工作,但仍然从头开始,没有任何进展。
是否有人有可行的指南或解决方案来将所有这些技术安装在一起并使它们很好地交互?
答案1
您几乎不可能找到最新版本软件的存储库包。这些包是经过验证的安装包,可以毫无问题地工作,并且安装起来毫不费力。要安装更高版本,您必须从源代码安装。这有时会有点棘手,因为这些包会为您处理所有配置和依赖项。如果您已经可以使用 phpinfo() 函数,请复制该页面上显示的 ./configure 设置,以便在需要构建它时为您提供帮助。话虽如此,一旦您克服困难并使其正常工作,从源代码构建应用程序的前景将不再吓到您。
就您的重写规则而言,请尝试以下操作
RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule !^(.*)\.(js|css|ico|txt|gif|jpg|jpeg|png|ttf)$ index.php [L]
答案2
如果您的目标是一个安全、稳定的生产系统,有时您不应该选择“最新”版本。而且您应该减少维护任务。因此,在我看来,为您的任务选择“正确”的发行版是正确的选择。
手动更新太麻烦了 —— 而且有些发行版的修补速度比稳定版本的发布速度还快。
我在 CentOS 上为 apache-httpd 观察了一段时间。如果您希望更快地获得安全补丁,则必须使用 RedHat Enterprise(或任何其他提供快速稳定补丁的发行版)。
答案3
您可以使用本指南从源代码安装 Apache 2.4然后使用 dotdeb 获取最新版本的 PHP、Nginx 和 MySQL。
只需使用带有 php5-fpm 的 Nginx 就会容易得多。
我写本指南大约一年前,我开始使用 dotdeb 的 Php-fpm 和 MySQL 设置和配置 Nginx。
还有另一个但是关于 Nginx 的旧文章 - Apache 反向代理设置。
答案4
甚至 Canonical 也建议您等到第一个版本(例如 12.04.1)发布后再将其推广到生产环境中。话虽如此,我只是在过去几年一直运行 8.04 LTS 的服务器集群上全新安装 12.04 LTS,因此并不是每个人都遵循了好的建议!
如果您准备使用 Apache 2.2 和 PHP 5.3,这是 Ubuntu 上最快的方法:
sudo tasksel install lamp-server
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
这将安装 Apache 2.2、PHP 5.3、MySQL 5.5 和 mod_rewrite 以及所有依赖项和库存配置。
如果您确实需要 Apache 2.4 和 PHP 5.4,我的建议是等到它们出现在 Ubuntu Server 版本中。
编辑:您使用的软件包之一是 APC。根据此主题:
https://stackoverflow.com/questions/9611676/is-apc-compatible-with-php-5-4
如果您使用 PHP 5.4,可能会有点棘手。