Debian 9 LAMP服务器教程,Apache,PHP 7和MariaDB

LAMP是Linux,Apache,MySQL,PHP的缩写。本教程将向您展示如何在带有PHP的Debian 9(Stretch)服务器上安装Apache Web服务器(mod ...

Debian 9 LAMP服务器教程,Apache,PHP 7和MariaDB

LAMP是L inux, A pache, M ySQL, P HP的缩写。 本教程展示了如何在具有PHP 7(mod_php)和MariaDB支持的Debian Stretch(9)服务器上安装Apache Web服务器。 MariaDB是众所周知的MySQL数据库服务器的一个分支,它提供了MySQL兼容的功能集,并且根据我在互联网上找到的基准测试,速度更快一些。 MariaDB可以处理所有需要MySQL的应用程序,例如Wordpress,Joomla等。

LAMP设置是Joomla,Wordpress或Drupal等CMS系统的完美基础。

1初步说明

在本教程中,我使用IP地址为192.168.1.100的主机名server1.example.com 。 这些设置可能会有所不同,因此您必须在适当的位置替换它们。

2安装MariaDB作为MySQL替换

首先,我们像这样安装MariaDB:

apt-get -y install mariadb-server mariadb-client

接下来,我们将使用mysql_secure_installation命令来保护MariaDB。 运行以下命令并按照向导。

mysql_secure_installation

推荐的输入以红色显示。

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): <-- Hit return
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] <-- y
New password: <-- Enter the new password for the MariaDB root user
Re-enter new password: <-- Enter the password again
Password updated successfully!
Reloading privilege tables..
... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] <-- y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <-- y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] <-- y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] <-- y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

MariaDB设置现在已经安全。

3安装Apache Web服务器

Apache可用作Debian软件包,因此我们可以像这样安装它:

apt-get -y install apache2

现在将你的浏览器指向http://192.168.1.100 ,你应该看到Apache2占位符页面( 它工作! ):

Debian 9 Apache默认页面

Apache的默认文档根目录是Debian上的/ var / www ,配置文件是/etc/apache2/apache2.conf 。 其他配置存储在/ etc / apache2目录的子目录中,如/ etc / apache2 / mods-enabled (用于Apache模块), / etc / apache2 / sites-enabled (用于虚拟主机)和/ etc / apache2 / conf - 启用

4安装PHP 7.1

我们可以按如下方式安装PHP和Apache PHP模块:

apt-get -y install php7.0 libapache2-mod-php7.0

之后我们必须重启Apache:

service apache2 restart

5测试PHP /获取有关PHP安装的详细信息

默认网站的文档根目录是/ var / www / html 。 我们现在将在该目录中创建一个小型PHP文件( info.php )并在浏览器中调用它。 该文件将显示大量有关我们PHP安装的有用信息,例如安装的PHP版本。

nano /var/www/html/info.php

<?php
phpinfo();

现在我们在浏览器中调用该文件(例如http://192.168.1.100/info.php ):

在Debian 9上安装PHP

正如您所看到的,PHP 7.0正在运行,并且它正在通过Apache 2.0 Handler进行工作 ,如Server API行中所示。 如果向下滚动,您将看到所有已在PHP5中启用的模块。 MySQL / MariaDB没有在那里列出,这意味着我们在PHP5中还没有MySQL支持。

6在PHP中获得MySQL和MariaDB支持

为了在PHP中获得MySQL支持,我们将安装php7.0-mysql软件包。 安装一些其他PHP模块以及您的应用程序可能需要它们是一个好主意。 您可以搜索可用的PHP 7模块,如下所示:

apt-cache search php7.0

选择你需要的,并像这样安装它们:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

现在重新启动Apache:

service apache2 restart

7 PHP缓存提高PHP速度

为了加速PHP,应该安装Opcache。 检查PHP Opcache模块是否已正确安装并启用。运行以下命令:

php --version

输出应包含标记为红色的线。

PHP 7.0.27-0+deb9u1 (cli) (built: Jan 5 2018 13:51:52) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.27-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies

如果在结果中没有看到Opcache模块,请使用以下命令进行安装:

apt-get -y install php7.0-opcache

还有一个可能有用的缓存,它的名字是APCu。 APCu是一个免费的PHP操作码缓存器,用于缓存和优化PHP中间代码。

APCu可以安装如下:

apt-get -y install php-apcu

现在重新启动Apache:

service apache2 restart

现在在您的浏览器中重新加载http://192.168.1.100/info.php并再次向下滚动到模块部分。 您现在应该可以找到很多新的模块,包括用作MariaDB驱动程序的MySQL模块:

在PHP 7中启用了MySQL支持

8 phpMyAdmin

phpMyAdmin是一个Web界面,通过它你可以管理你的MySQL和MariaDB数据库。 安装它是个好主意:

apt-get -y install phpmyadmin

您将看到以下问题:

为Apache配置phpMyAdmin

Web server to reconfigure automatically: <-- apache2

使用dbconfig-common配置phpMyAdmin

Configure database for phpmyadmin with dbconfig-common?<-- Yes

Automatically create an application password

MySQL application password for phpmyadmin: <-- Press enter, apt will create a random password automatically.

之后,您可以通过http://192.168.1.100/phpmyadmin/访问phpMyAdmin:

Debian 9上的PHPMyAdmin

9为phpMyAdmin启用MySQL root登录

虽然可以以root用户身份登录到shell的MariaDB,但根登录名在phpMyAdmin中不起作用。 为了允许root用户使用phpMyAdmin,在shell上运行以下命令:

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p