在 Gentoo Linux 中安装 LAMP(Linux、Apache、MySQL、PHP 和 PhpMyAdmin)
如果我们以当今硬件的处理能力为参考,那么使用 Gentoo 从源代码编译软件所实现的最大性能影响很小。那么您可能会问,将 Gentoo 用作 Web 服务器平台的目的是什么?好吧,Gentoo 最重要的属性是Portage可以实现的极端灵活性,可以完成特定任务,并且最终用户可以对整个系统实现完全控制,因为 Gentoo 是从源代码编译和构建的,并且不像大多数 Linux 发行版那样使用预打包的二进制文件。
本指南使用最小的 Gentoo 安装环境提供了著名的LAMP堆栈(Linux、Apache、MySQL和PHP / PhpMyAdmin )的逐步安装过程。
要求
- 按照本教程安装最小 Gentoo Linux 环境(安装 Gentoo Linux)
步骤 1:配置静态 IP 地址
1.在继续安装LAMP堆栈之前,必须为系统配置静态 IP 地址,这对于服务器而言是“必须的”。但是,在开始配置网络静态设置之前,请使用ifconfig命令显示网络接口卡名称。
# ifconfig -a
如您所见,NIC 的名称可能与 Linux 中使用的其他常用名称(例如ethX、ensXX或其他)不同,因此请记下此名称以进行进一步设置。
2.如果您之前在网络上使用了DHCP服务器,请确保使用以下命令关闭并禁用系统上的DHCP 客户端(用您的设置替换 IP 和设备)。
# rc-update del dhcpcd default # /etc/init.d/dhcpcd stop # ifconfig eno16777736 down # ifconfig eno16777736 del 192.168.1.13 netmask 255.255.255.0 # emerge –unmerge dhcpcd
3.然后使用 NIC 连接接口的名称从网络环回设备创建一个符号链接,并在/etc/conf.d/路径中为该设备创建一个静态配置文件。
# ln -s /etc/init.d/net.lo /etc/init.d/net.eno16777736 # sudo nano /etc/conf.d/net.eno16777736
使用以下配置编辑此设备文件。
config_eno16777736="192.168.1.25 netmask 255.255.255.0 brd 192.168.1.255" routes_eno16777736="default via 192.168.1.1" dns_servers_eno16777736="192.168.1.1 8.8.8.8"
4.完成 NIC 静态配置编辑后,启动网络接口并使用ifconfig和ping命令验证网络设置和连接,如果一切配置成功,则将其添加到启动过程。
# /etc/init.d/net.eno16777736 start # ifconfig # ping -c2 domain.tld # rc-update add net.eno16777736 default
如果您希望 DNS 名称服务器进行系统范围的配置,请编辑/etc/resolv.conf文件并为每个 DNS IP 地址附加名称服务器字符串。
第 2 步:安装 LAMP
5.完成网络设置后,继续安装LAMP堆栈,但在此之前请验证 Gentoo 配置文件并更新 Portage 树和系统。
对于面向 Internet 且安装了安全补丁的服务器,您可能希望使用Hardened配置文件,该配置文件会更改整个系统的软件包设置(掩码、USE 标志等)。使用以下命令列出并更改您的配置文件。
$ sudo eselect profile list $ sudo eselect profile set 11
6.设置最适合您的配置文件后,更新您的系统和 Portage 树。
$ sudo emerge --sync $ sudo emerge --update @world
7.现在该安装 LAMP 了。使用emerge –pv命令开关验证 Apache Web Server 文档中的USE 标志,然后使用所需的 USE 标志编辑 Portage make.conf文件,然后再尝试安装。
# emerge -pv apache # nano /etc/portage/make.conf
8.选择编译过程的USE标志(如果您的服务器不需要某些模块,您可以保持原样),然后使用以下命令安装Apache。
# emerge --ask www-servers/apache
9.在启动 Apache 服务之前运行以下命令以避免ServerName错误,然后启动 httpd 守护程序。
# echo “ServerName localhost” >> /etc/apache2/httpd.conf
# service apache2 start OR # /etc/init.d/apache2 start
10.下一步安装PHP动态脚本语言。由于 PHP 模块丰富,本教程将向您展示一个用作USE 标志的大型模块列表,但您应该坚持使用服务器配置所需的模块。
首先使用以下命令获取 PHP 的USE特定标志。
# emerge -pv php
11.然后编辑/etc/portage/make.conf文件并使用以下针对PHP5.5 的USE标志(USE 标志必须在一行上)。
USE="apache2 php pam berkdb bzip2 cli crypt ctype exif fileinfo filter gdbm hash iconv ipv6 json -ldap nls opcache phar posix readline session simplexml spell ssl tokenizer truetype unicode xml zlib -bcmath calendar -cdb cgi -cjk curl -debug -embed -enchant -firebird -flatfile -fpm (-frontbase) ftp gd -gmp imap -inifile -intl -iodbc -kerberos -ldap-sasl -libedit libmysqlclient -mhash -mssql mysql mysqli -oci8-instant-client -odbc -pcntl pdo -postgres -qdbm -recode (-selinux) -sharedmem -snmp -soap -sockets -sqlite (-sybase-ct) -systemd -sysvipc -threads -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xslt zip jpeg png pcre session unicode" PHP_TARGETS="php5-5"
您可以使用的另一种方法是通过回显USE 标志将所需的 PHP 模块和选项包含到/etc/portage/package.use文件中。
# echo “dev-lang/php apache2 cgi ctype curl curlwrappers -doc exif fastbuild filter ftp hash inifile json mysql mysqli pdo pic posix sockets spell truetype xml zip” >> /etc/portage/package.use
12.使用上述两种方法之一选择所需的USE 标志后,使用以下命令安装 PHP。
# emerge --ask dev-lang/php
13. PHP 的出现过程可能需要一段时间,具体取决于您的系统资源,完成后,通过编辑/etc/conf.d/apache2文件告诉 Apache 使用 PHP 模块,并在APACHE2_OPTS指令上添加 PHP5 。
# nano /etc/conf.d/apache2
使APACHE2_OPTS行看起来像这样。
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5"
要获取已安装模块的列表,请使用以下命令。
# ls -al /etc/apache2/modules.d/
14.为了测试到目前为止的服务器配置,请在本地主机根目录(/var/www/localhost/htdocs/ )上创建一个phpinfo文件并重新启动 Apache 服务,然后将浏览器指向http://localhost/info.php或http://system_IP/info.php。
# echo "<!--?php phpinfo(); ?-->" /var/www/localhost/htdocs/info.php
# service apache2 restart OR # /etc/init.d/apache2 restart
如果您得到与上图相同的结果,则您的服务器配置正确。因此,我们可以继续安装 MySQL 数据库和 PhpMyAdmin。
15.在安装MySQL数据库之前,请验证软件包的USE标志,并根据需要编辑Portage make.conf。使用以下命令验证和安装MySQL服务器数据库。
# emerge -pv mysql # emerge --ask dev-db/mysql
16.在启动 MySQL 服务器之前,请使用以下命令确保 MySQL 数据库已安装在您的系统上。
# /usr/bin/mysql_install_db
17.现在启动 MySQL 数据库并通过更改 root 密码使用mysql_secure_installation保护它,禁用本地主机之外的 root 登录,删除匿名用户和测试数据库。
# service mysql start # mysql_secure_installation
18.要测试数据库功能,请登录 MySQL,发出以下命令并使用 quit 语句退出数据库。
mysql -u roo -p mysql> select user,host from mysql.user; mysql> quit;
19.如果您需要图形界面来管理 MySQL 服务器,请运行此命令安装PhpMyAdmin包。
# emerge -pv phpmyadmin # emerge dev-db/phpmyadmin
20.编译并安装软件包后,通过复制其模板文件为 PhpMyAdmin 创建配置文件,并使用任意字符串替换blowfish_secret密码。
# cp /var/www/localhost/htdocs/phpmyadmin/config.sample.inc.php /var/www/localhost/htdocs/phpmyadmin/config.inc.php # nano /var/www/localhost/htdocs/phpmyadmin/config.inc.php
21.通过打开浏览器并使用以下 URL 测试 PhpMyAdmin 登录过程。
http://localhost/phpmyadmin
22.如果一切就绪,您可能希望在重启后自动启动您的服务,通过使用以下命令使它们在整个系统范围内可用。
# rc-update -v add apache2 default # rc-update -v add mysql default
就这样!现在,您已在 Gentoo 提供的高度灵活且可定制的服务器平台上拥有了包含 Apache、PHP 脚本语言和关系型 MySQL 数据库的动态 Web 环境。