SDB:Linux Apache MySQL PHP

跳转到:导航搜索
Icon-obsolete.png
本文或章节指的是版本 '11.1',现在已经过时!
请参阅本文的页面以获取更多信息。
Icon-merge.png
本文或章节应该合并SDB:LAMP setup!
欢迎编辑本文,但请参阅页面以尽快完成合并。

在 openSUSE 上测试

推荐文章


简介

Icon-checked.png
此过程在 openSUSE 11.1 x86_64 上进行了测试

首先,本文的内容超出了仅仅安装 Apache/MySQL/PHP 的范围。如果您只是想安装(和配置)它们,可以在第 6 节之后停止阅读。

现在,我不能声称我拥有足够的知识或经验来保证这是设置 openSUSE 盒子作为 LAMP (Linux, [Apache], [MySQL], [PHP]) 服务器的最佳或甚至是安全的方式,但是它确实有效!请自行承担风险。

在本文中,我试图保持简单,并使用了以下标记

  • 粗体文本表示如果您正在按照该步骤操作,您应该在屏幕上看到相同的内容。(用于确认您正在采取正确的步骤)
  • 斜体文本用于提供有关某些人可能感兴趣的附加信息,可以安全地忽略它。
  • Code blocks are used for commands which you can copy and paste into the console.
    下面通常列出了如果您不信任该命令或想知道为什么应该使用它会发生什么。

  • 块引用块用于您应该在屏幕上看到的文本输出。(无论是在控制台中还是只是带有文本字段的窗口中


要求

正如您可能预料的那样,您需要安装以下软件。
表格中程序后面的版本是编写本教程时使用的版本,它很可能也适用于较新的版本。

应用程序测试版本
Apache22.2.10.2-5
MySQL5.0.67-12.15
PHP55.2.8

安装这些最简单(也是我唯一会提到的)的方法是执行以下操作
转到 YaST 控制中心并选择软件管理

这将为您提供如下窗口

最新最好的,还是不是?

现在,在继续之前,我会问您一个问题:您想要运行最新版本吗?
如果您这样做,您将被提示更频繁地更新软件,但可能会更快地从新版本中获得改进的好处

  • 否 - 使用此链接:安装 或直接向下滚动到安装部分。
  • 是 - 继续下面的“要选择的仓库”。

要选择的仓库

既然您已经决定使用最新最好的版本,我们需要将一些额外的软件资源添加到您的 openSUSE 配置中。

  1. 转到菜单选项 配置
  2. 单击 仓库 选项
  3. 单击新窗口中的 添加 按钮
  4. 从选项列表中选择 社区仓库,然后单击下一步


如果您按照上述步骤操作,您应该会看到一个新窗口,其中包含一个列表,您需要在其中选中 openSUSE BuildService - PHPopenSUSE BuildService - Database 复选框。
之后单击 确定 按钮,您就完成了!

如果您被要求“导入受信任的 GnuPG 密钥”,请单击 导入 按钮。(可能会弹出多次,请继续单击导入按钮)如果一切顺利,您应该回到如下截图的窗口,该窗口现在应该将 PHP 和 Database 仓库添加到列表中。

恭喜,您已成功添加了一些新的仓库以从 MySQL 和 PHP 获取最新版本!单击 确定 按钮并继续下一步。


安装

OpenSUSE 提供了安装所需所有软件包的简便方法。您只需要在 筛选: 后面的下拉列表中选择 模式 而不是 搜索,这将更改窗口内容并显示一个长列表。在此列表中找到 Web 和 LAMP 服务器 选项并选中复选框,然后单击接受。

现在只需坐下来喝杯咖啡,等待 YaST 软件管理下载和安装继续下一步所需的软件。(如果被要求安装其他软件包,请选择否


启动服务器

您应该仍然打开 YaST 控制中心窗口。如果没有,请再次打开它。在 YaST 控制中心中,转到 系统 并单击 系统服务(运行级别) 选项。在新弹出的窗口中,选择 专家模式 单选按钮,然后在列表中搜索 apache2 选项。


启动

选择 Apache2 后,单击 启动/停止/刷新 按钮(如右侧图片所示),然后选择 立即启动,希望会弹出一个带有以下文字的弹出窗口。

/etc/init.d/apache2 start returned 0 (success)


自动启动

假设您希望您的服务器与 openSUSE 一起自动启动,请执行以下操作

  1. 单击 设置/重置 按钮
  2. 单击 启用服务 选项
无论您是否启用了该服务,请单击 确定 按钮,如果提示您保存更改,请回答“是”。

确认 Apache2 正常工作

现在,如果一切顺利,您应该可以使用您选择的 Web 浏览器(Firefox/Konqueror/Opera 等)浏览到 127.0.0.1,它应该显示带有以下文字的页面

It works!

如果未显示,是时候在 openSUSE 论坛 上发帖寻求帮助了。


确认 PHP 正常工作

确认 PHP 正常工作的最简单方法是启动您最喜欢的文本编辑器(例如 kwrite 或 gedit),并将以下代码复制/粘贴到其中。

<?php
    phpinfo();
?>

注意:仅使用 <?php<? 不起作用。

现在将此文件保存到您的 /home/USERNAME/public_html 目录中,作为 index.php,并访问 http://127.0.0.1/~username

如您从截图中看到的,我的用户名是 Bakhuis,因此路径变为 127.0.0.1/~Bakhuis。如果您的页面看起来不像截图,请确保您正确输入了用户名(包括使用大写和小写字母),并在其前面加上“~”字符。

如果浏览器想要保存您的 php 文件而不是显示内容,您应该在 /etc/apache2/mod_userdir.conf 文件中启用 php 支持。将其添加到其中,紧接 <Directory /home/*/public_html> 行之后,然后重新启动服务器。

Include /etc/apache2/conf.d/php5.conf

如果您仍然无法访问该页面或收到错误页面,请在 openSUSE 论坛 上寻求帮助


启动和配置 MySQL

启动 MySQL

与 [启动服务器] 一样,转到 Yast 控制中心 > 系统服务(运行级别) 并再次启用专家模式。选择 mysql 后,单击 启动/停止/刷新 按钮,然后单击 立即启动 选项

希望会弹出一个带有以下文字的弹出窗口

/etc/init.d/mysql start returned 0 (success)



自动启动 MySQL

假设您希望数据库与 openSUSE(以及如果您之前配置了自动启动 Web 服务器)一起自动启动,请执行以下操作

  • 单击 设置/重置 按钮,然后单击 启用服务 选项


无论您是否启用了该服务,请单击 确定 按钮,如果提示您保存更改,请回答“是”。



配置 mySQL

现在我们已经运行了 PHP 和 Apache,是时候配置 MySQL 了。我将逐步引导您完成此过程。(您可以简单地将带有灰色背景的部分复制并粘贴到控制台中,然后按 Enter

  1. 启动您最喜欢的终端应用程序(例如,Konsole 或 Xterm)
  2. 执行以下命令以获取 root 权限
    su
    (按照屏幕上的说明操作)
  3. cd /bin
  4. mysql_install_db --user=mysql
    这应该会得到类似的结果

    正在安装 MySQL 系统表...

    OK 正在填充帮助表... OK 请记住为 MySQL root 用户设置密码!要执行此操作,请启动服务器,然后发出以下命令:/usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h Bakhuis-Server.site password 'new-password'

    或者,您可以运行:/usr/bin/mysql_secure_installation

    这将为您提供删除默认创建的测试数据库和匿名用户的选项。强烈建议在生产服务器上执行此操作。

    请参阅手册以获取更多说明。

    您可以使用 cd /usr ; /usr/bin/mysqld_safe & 启动 MySQL 守护程序

    您可以使用 mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl 测试 MySQL 守护程序

    请使用 /usr/bin/mysqlbug 脚本报告任何问题!

    有关 MySQL 的最新信息,请访问 https://mysqlserver.cn

    通过在 http://shop.mysql.com 购买支持/许可证来支持 MySQL

  5. 按照它(或者)的建议运行
    /usr/bin/mysql_secure_installation
    • 首先,系统会提示您输入密码,请将其留空并按 Enter。
    • 现在它会提示您是否要设置密码,输入 y 并再次按 Enter
    • 现在您将被提示输入密码并确认密码,请执行此操作。
    • 最后,此“向导”会询问您有关如何配置 mysql 的几个问题,安全地回答所有问题为 y

phpMyAdmin

此步骤是可选的,仅适用于那些希望使用仓库安装 phpMyAdmin 而不是进行更“手动”安装的人。
完全可以想象您不想这样做,而是更喜欢使用 [phpMiniAdmin], [MySQLQuickAdmin] 或许多其他工具。如果是这样,请跳到防火墙配置部分。

安装

手动安装

您可以手动将 phpMyAdmin 安装到路径 /srv/www/htdocs。只需从 http://downloads.sourceforge.net/project/phpmyadmin/ 下载最新版本,解压缩到 /srv/www/htdocs。您将获得一个名为 /srv/www/htdocs/phpMyAdmin-3.2.1-all-languages 的目录。只需将其重命名为更方便的名称,例如 /srv/www/htdocs/phpMyAdmin

接下来,您可以查看正在运行的 phpMyAdmin http://127.0.0.1/phpMyAdmin


一键安装

使用下面的单击安装程序安装 phpMyAdmin。
单击安装程序背后的链接是包含 phpMyAdmin 包的仓库,以防您使用的是不同版本的 openSUSE 或更喜欢不使用单击安装程序。

一键安装程序手动安装仓库
phpMyAdminaluminium.pnghttp://download.opensuse.org/repositories/server:/php:/applications/openSUSE_11.1

确认正常工作

要检查 phpMyAdmin 是否正常工作,请访问 http://127.0.0.1/phpMyAdmin/,它应该显示一个页面,要求您输入用户名/密码组合。对于用户名,输入“root”,密码是您之前在配置 MySQL 时输入的密码。

配置

当你到达这里,这说明你的 phpMyAdmin 已经工作,太棒了!现在让我们配置它,这样就不会在到处看到以下消息了。

配置文件现在需要一个秘密短语 (blowfish_secret)。

不要使用 "su" 命令,而是使用 sudo 命令。可以通过以 root 用户身份执行 "visudo" 并将用户添加到 wheel 组来实现。

  1. 启动你最喜欢的控制台应用程序 (Xterm, Konsole 等)
  2. su
    获取超级用户/root 权限
  3. password:
    在提示时输入 root 密码。或者,使用 sudo。
  4. cp /srv/www/htdocs/phpMyAdmin/config.sample.inc.php /srv/www/htdocs/phpMyAdmin/config.inc.php
    将 phpMyAdmin 配置文件从 config.sample.inc.php 重命名为 config.inc.php
  5. chmod 777 /srv/www/htdocs/phpMyAdmin/config.inc.php 
    给予任何人完全访问权限
    • (如果用户已经编辑了 sudo 文件并且在 wheel 组中,则无需将权限更改为 777 再改回 644)
  6. 在您选择的文本编辑器 (Gedit, Kwrite 等) 中打开 /srv/www/htdocs/phpMyAdmin/config.inc.php 文件,并按照下表中的行进行更改。
    行号来自更改为
    17 $cfg['blowfish_secret'] = ; /* 必须填写此项以进行 COOKIE 身份验证! */$cfg['blowfish_secret'] = '在此处输入 ROOT 密码'; /* 必须填写此项以进行 COOKIE 身份验证! */
    你之前用来登录 phpMyAdmin 的 root 密码,而不是 在此处输入 ROOT 密码
    35$cfg['Servers'][$i]['extension'] = 'mysql';$cfg['Servers'][$i]['extension'] = 'mysqli';
    追加一个 i
  7. 保存并关闭文档
  8. chmod 664 /srv/www/htdocs/phpMyAdmin/config.inc.php
    重置旧的文件权限

确认错误 #3 已消失

再次访问 http://127.0.0.1/phpMyAdmin 并使用 root/你的密码登录,检查以下警告是否已消失

配置文件现在需要一个秘密短语 (blowfish_secret)。

错误 #1 和 #2

还剩下两个错误... 我们将通过以下步骤一次性解决这两个问题。

  1. 启动你最喜欢的控制台应用程序 (Xterm, Konsole 等)
  2. su
    获取超级用户/root 权限
  3. chmod 777 /etc/php5/apache2/php.ini
    设置对所有人的完全访问权限
  4. 在您最喜欢的文本编辑器 (Kwrite, Gedit 等) 中打开 /etc/php5/apache2/php.ini
  5. 找到以下行

    ;mbstring.strict_encoding = Off

    (第 1019 行?)
    并删除该行中的第一个字符 (;;),使其看起来像这样

    mbstring.strict_encoding = Off

  6. 保存并关闭文件
  7. chmod 644 /etc/php5/apache2/php.ini
    重置旧的读/写/执行权限
  8. /etc/init.d/apache2 restart
    重启服务器以使更改生效

确认错误 #1 和 #2 已消失

再次访问 http://127.0.0.1/phpMyAdmin,它应该没有错误。


防火墙配置

如果你想让安装此程序的计算机以外的其他计算机能够访问你的网页,你需要配置 openSUSE 防火墙以允许通过端口 80 的流量。

再次使用 YaST 可以让你的生活更轻松,你只需要按照以下步骤操作

  1. 转到 Yast 控制中心
  2. 点击 (左侧)
  3. 点击 (右侧)
  4. 在新弹出的窗口中,点击左侧列表中的 允许的服务 选项
  5. 现在在右侧找到 允许的服务 下方的下拉框,并在该下拉框中选择 HTTP 服务器 (如图右侧所示)
  6. 点击 添加
  7. 点击 下一步
  8. 点击 完成

测试防火墙配置

现在你应该能够从同一 Local Area Network 中的其他计算机访问你的网站。如果你没有第二台计算机,就无法测试,所以请继续下一步。

要测试此功能,你需要知道你的 IP 地址,请按照以下步骤显示它,如果你不知道的话。

  1. 启动你最喜欢的终端程序 (xterm, konsole 等)
  2. /sbin/ip addr
    输出网络连接信息
  3. 找到标记为 粗体 的行,那是你的 IP 地址。
    3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
        link/ether 00:1c:25:e3:00:af brd ff:ff:ff:ff:ff:ff
        inet '''192.168.1.100'''/24 brd 192.168.1.255 scope global eth0
    

从除你正在进行此操作的计算机以外,但位于同一 LAN 中的计算机上,访问你在上一步中找到的粗体数字,例如 http://192.168.1.100


测试外部可访问性

为了测试你的网站是否可以从外部世界访问,你需要访问 http://Your-External-IP。
whatsmyip.org 这样的网站可以告诉你你的外部 IP。
如果“It works!”页面没有出现,你可能需要配置你的路由器以转发/允许访问端口 80 到你的服务器的 IP 地址。


速度优化

现在这个“优化”将实时压缩你的 Web 服务器正在提供的内容。排除一些格式,这些格式将不会或几乎不会从中受益 (图像和/或已经压缩的文件,如 zip),或者文件在进一步压缩时甚至可能损坏 (例如 .pdf 格式)。基本上,以一点点 CPU 时间为代价,页面会变得更小,具有以下好处

  • 页面加载速度更快
  • 降低带宽成本

如果你想了解更多信息,只需使用你选择的网络搜索引擎搜索“http compression”。

下面的描述可能看起来有点长,这部分是因为我们将为 Web 服务器创建一个额外的文件来使用,而不是编辑默认文件。我们这样做是为了让你不必在每次更新服务器软件时重复这些步骤。(这些文件在更新包中被覆盖为默认文件)。

mod_deflate

  1. 启动你最喜欢的控制台应用程序 (Xterm, Konsole 等)
  2. su
    获取超级用户/root 权限
  3. a2enmod deflate
    启用 deflate mod,但直到遵循以下步骤后才会使用它。
  4. chmod 777 /etc/sysconfig/apache2
    设置对文件的完全访问权限
  5. 现在在您最喜欢的文本编辑器 (Kwrite, Gedit 等) 中打开 /etc/sysconfig/apache2 并找到该行 (可能在第 14 行)

    APACHE_CONF_INCLUDE_FILES=""

  6. 将找到的行替换为

    APACHE_CONF_INCLUDE_FILES="/etc/apache2/httpd.conf.local"

    保存文件并关闭它
  7. chmod 644 /etc/sysconfig/apache2
    重置权限到其旧值
  8. 现在我们需要创建我们刚刚引用的文件,所以执行以下命令
    cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.local
    这将创建一个名为 http.conf.local 的 http.conf 副本
  9. chmod 777 /etc/apache2/httpd.conf.local
    设置对文件的完全访问权限
  10. 现在在 /etc/apache2/httpd.conf.local 中打开您最喜欢的文本编辑器,并用以下文本覆盖其所有内容
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ \
        no-gzip dont-vary
    SetEnvIfNoCase Request_URI \
        \.(?:exe|t?gz|zip|bz2|sit|rar|7z)$ \
        no-gzip dont-vary
    SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
    
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    保存文件并关闭它。

  11. chmod 644 /etc/apache2/httpd.conf.local
    重置旧的访问权限
  12. /etc/init.d/apache2 restart
    重启服务器以使更改生效

确认正常工作

现在如何确定它是否有效?实际上很简单,你访问 websiteoptimization.com 并使用他们的分析工具。
如果你的网站正在使用 mod_deflate,测试将显示

# 恭喜。该网站正在使用 HTTP 压缩,也称为使用 gzip 的内容编码。此处报告的大小是服务器发送到客户端的压缩内容的大小。

如果你想查看正在使用它的网站的示例并因此进行积极测试,请尝试我们心爱的 openSUSE.org 或 google.com


参见

外部链接


鸣谢

如果没有 [这个] 非常有用的页面,我可能永远无法弄清楚所有这些。它有点过时,并且是为 openSUSE 9.1 编写的。

本文由 编写。