在Arch Linux中安装LAMP(Linux,Apache,MySQL / MariaDB和PHP / PhpMyAdmin)

本文将指导您完成Arch Linux中安装LAMP(Linux,Apache,MySQL / MariaDB和PHP / PhpMyAdmin)的一步一步的指导。

Arch Linux提供了一个灵活的切割年龄系统环境,并且是在小型非关键系统上开发Web应用程序的强大最佳解决方案,因为它是一个完整的开放源代码,并提供了最新的Kernels版本和Web软件服务器和数据库。

在Arch Linux中安装LAMP

在Arch Linux中安装LAMP

本教程的这个范围主要是来指导你通过步说明一个完整的步骤,最终会导致安装在Web开发中最常用的软件组合之一:LAMP(Linux操作系统,Apache,MySQL和/ MariaDB的,和PHP / phpMyAdmin的),它会为你展示一些不错的功能(快速和肮脏的bash脚本)是不存在于Arch Linux的系统,但可以缓解创建多个虚拟主机的工作,产生所需的安全HTTS交易的SSL证书密钥

要求

  1. 上一页Arch Linux的安装过程-跳过带有DHCP的最后一部分。
  2. 上一页LEMP安装在Arch Linux的 -只有在配置静态IP地址和远程SSH访问的部分。

第1步:安装基本软件LAMP

1.最小系统安装使用静态IP地址,并使用SSH远程系统访问后,用豆子工具升级Arch Linux的盒子。

$ sudo pacman -Syu

2.当升级过程完成从安装LAMP件,首先安装Apache Web Server和启动/验证每个服务器进程守护进程。

$ sudo pacman -S apache 
$ sudo systemctl start httpd 
$ sudo systemctl status httpd
在Arch Linux中安装Apache

安装Apache Web服务器

3.安装PHP动态服务器端脚本语言和Apache模块。

$ sudo pacman -S php php-apache

4.在最后一步安装MySQL数据库,选择1(MariaDB的 )社区数据库叉然后开始检查进程的状态。

$ sudo pacman -S mysql 
$ sudo systemctl start mysqld 
$ sudo systemctl status mysqld
在Arch Linux中安装MySQL

安装MySQL数据库

启动MySQL数据库

启动MySQL数据库

现在,你已经安装了基本的LAMP软件 ,到目前为止,开始与默认配置。

第2步:保护MySQL数据库

5.下一步是通过设置root帐号密码以保护MySQL数据库,删除匿名用户帐户,删除test数据库,并禁止远程登录用户root(按[Enter]为root帐户的当前密码钥匙和所有回答安全问题)。

$ sudo mysql_secure_installation
安全MySQL数据库

安全MySQL数据库

设置MySQL root密码

设置MySQL root密码

6.运行以下命令验证MySQL数据库的连接,然后离开数据库壳退出退出声明。

$ mysql -u root -p
在Arch Linux中连接到MySQL

验证MySQL数据库连接

第3步:修改Apache主配置文件

7.下列配置其中大部分涉及到的Apache Web服务器 ,以提供与PHP脚本语言,SSL或者非SSL虚拟主机虚拟主机动态界面,可以通过修改httpd服务配置文件来完成。

首先使用您喜欢的文本编辑器打开主要的Apache文件配置。

$ sudo nano /etc/httpd/conf/httpd.conf

在文件的最底部,附加以下两行。

IncludeOptional conf/sites-enabled/*.conf
IncludeOptional conf/mods-enabled/*.conf
包括虚拟主机配置

包括虚拟主机配置

这里包含语句的作用是告诉Apache,从现在开始,就应该驻留在所有文件中读取进一步配置的/ etc / httpd的/ conf目录/ /( 虚拟主机启用站点,/ etc / httpd的/ conf目录/在一个扩展的.conf结尾/(启用服务器模块)系统路径启用MODS - 。

8.经过Apache已经指示与此两项指令,创造必要的系统目录发出以下命令。

$ sudo mkdir /etc/httpd/conf/sites-available
$ sudo mkdir /etc/httpd/conf/sites-enabled
$ sudo mkdir /etc/httpd/conf/mods-enabled

网站可用的路径认为,没有在Apache激活,但接下来的Bash脚本将使用该目录链接,并启用了位于那里的网站所有虚拟主机配置文件。

第4步:创建a2eniste和a2diste Apache命令

9.现在是时候创建a2ensitea2dissite Apache的脚本,将作为命令来启用或禁用虚拟主机配置文件。 键入cd命令返回到您的$ HOME用户路径,并创建您的bash a2eniste,并使用您喜欢的编辑a2dissite脚本。

$ sudo nano a2ensite

在此文件上添加以下内容。

#!/bin/bash
if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled  ; then
echo "-------------------------------"
else
mkdir /etc/httpd/conf/sites-available
mkdir /etc/httpd/conf/sites-enabled
fi
avail=/etc/httpd/conf/sites-available/$1.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-available/`
if [ "$#" != "1" ]; then
echo "Use script: n2ensite virtual_site"
echo -e "\nAvailable virtual hosts:\n$site"
exit 0
else
if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site"
exit 0
fi
fi
创建a2eniste Apache脚本

创建a2eniste Apache脚本

现在创建a2dissite bash脚本文件。

$ sudo nano a2dissite

附加以下内容。

#!/bin/bash
avail=/etc/httpd/conf/sites-enabled/$1.conf
enabled=/etc/httpd/conf/sites-enabled
site=`ls /etc/httpd/conf/sites-enabled`
if [ "$#" != "1" ]; then
echo "Use script: n2dissite virtual_site"
echo -e "\nAvailable virtual hosts: \n$site"
exit 0
else
if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting"
exit 0
fi
if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nsudo systemctl restart httpd"
exit 0
fi
fi
创建a2dissite Apache脚本

创建a2dissite Apache脚本

10.已创建的文件后分配执行权限,并将其复制到$ PATH可执行文件目录,使它们全系统可用。

$ sudo chmod +x a2ensite a2dissite
$ sudo cp a2ensite a2dissite /usr/local/bin/
设置执行权限

设置执行权限

第5步:在Apache中创建虚拟主机

对Arch Linux的Apache Web服务器11.虚拟主机默认的配置文件是由位于/ etc / httpd的/ conf目录/额外/路径的httpd-vhosts.conf文件中提供的,但如果你有一个使用了很多虚拟主机可以是系统非常难以跟踪什么网站被激活和不和。 如果你想关闭一个网站,你必须注释或删除其所有指令,如果你的系统提供了大量的网站和你的网站有更多的配置指令,可以是一个艰巨的任务。

使用网站可用的使能的站点路径 ,极大地简化了启用禁用网站的作业并还保留,即使它们被激活与否所有网站的配置文件。

在下一步,我们要建立一个指向默认使用默认的DocumentRoot路径为本地主机服务的网站文件(/ SRV / HTTP的第一个虚拟主机。

$ sudo nano /etc/httpd/conf/sites-available/localhost.conf

在此处添加以下Apache指令。

<VirtualHost *:80>
DocumentRoot "/srv/http"
ServerName localhost
ServerAdmin you@example.com
ErrorLog "/var/log/httpd/localhost-error_log"
TransferLog "/var/log/httpd/localhost-access_log"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
在Apache中创建虚拟主机

在Apache中创建虚拟主机

这里最重要的语句服务器名称指示,指示Apache将打开80端口的网络连接和重定向所有的查询与本地主机名担任位于/ SRV / HTTP /路径文件。

本地主机文件已创建12后,激活然后重新启动httpd后台查看变化。

$ sudo a2ensite localhost
$ sudo systemctl restart httpd
活动a2ensite脚本

活动a2ensite脚本

13.然后将浏览器指向到http://本地主机 ,如果从凯旋门系统或http运行它:// Arch_IP如果你使用一个远程系统。

浏览Apache

浏览Apache

第6步:在LAMP上使用虚拟主机启用SSL

SSL( 安全套接字层 )是设计用来加密通过网络或因特网,这使得可以使用对称/非对称加密密钥通过安全通道发送的数据流与在Arch Linux的由OpenSSL软件包提供HTTP连接的协议。

14.默认情况下SSL模块没有在Arch Linux的Apache的启用,可以通过取消注释从主配置文件httpd.conf mod_ssl.so模块被激活, 包括位于额外的httpd路径的httpd-ssl.conf中的文件。

但是,为了简单起见,我们将创建启用MODS路径的SSL一个新的模块文件,离开主Apache配置文件不变。 为SSL模块创建以下文件,并添加以下内容。

$ sudo nano /etc/httpd/conf/mods-enabled/ssl.conf

附加以下内容。

LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Listen 443
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SSLSessionCache        "shmcb:/run/httpd/ssl_scache(512000)"
SSLSessionCacheTimeout  300
使用虚拟主机启用SSL

使用虚拟主机启用SSL

15.现在创建一个指向同一个本地主机名称此时虚拟主机文件,但使用SSL服务器配置,并稍微更改其名称要提醒你,它代表了与SSL本地主机。

$ sudo nano /etc/httpd/conf/sites-available/localhost-ssl.conf

在此文件上添加以下内容。

<VirtualHost *:443>
DocumentRoot "/srv/http"
ServerName localhost
ServerAdmin you@example.com
ErrorLog "/var/log/httpd/localhost-ssl-error_log"
TransferLog "/var/log/httpd/localhost-ssl-access_log"
SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/localhost.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/localhost.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/srv/http/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order deny,allow
Allow from all
Require all granted
</Directory>
</VirtualHost>
创建SSL虚拟主机

创建SSL虚拟主机

除了港口服务器名指令,其他重要指示这里是那些指着其中尚未创建的,所以不要重新启动Apache Web服务器或你会得到一些错误的SSL证书文件和SSL密钥文件。

16.要创建所需的SSL证书文件,并安装密钥OpenSSL软件包发出以下命令。

$ sudo pacman -S openssl

17.然后创建一个自动创建以下的Bash脚本和存储所有你的Apache证书密钥/ etc / httpd的/ conf目录/ SSL /系统路径。

$ sudo nano apache_gen_ssl

添加以下文件内容,然后保存并使其可执行。

#!/bin/bash
mkdir /etc/httpd/conf/ssl
cd /etc/httpd/conf/ssl
echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Nginx  SSL certificate!"
read cert
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt
echo -e " The certificate "$cert" has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/conf/ssl
exit 0
存储Apache证书和密钥

存储Apache证书和密钥

$ sudo chmod +x apache_gen_ssl

如果你想脚本可用系统范围内将其复制到一个可执行的$ PATH。

$ sudo cp /apache_gen_ssl  /usr/local/bin/

18.现在,通过运行该脚本生成的证书密钥 提供您的SSL选项,不要忘记证书名称和通用名称 ,以配合您的官网域(FQDN)。

$ sudo ./apache_gen_ssl
创建Apache证书和密钥

创建Apache证书和密钥

输入证书详细信息

输入证书详细信息

在创建证书和密钥后,不要忘记修改您的SSL虚拟主机证书和密钥配置以匹配此证书的名称。

19.最后一步是新激活SSL虚拟主机,然后重新启动服务器以应用配置。

$ sudo a2ensite localhost-ssl
$ sudo systemctl restart httpd
激活SSL虚拟主机

激活SSL虚拟主机

而已! 为了验证它打开浏览器,并使用HTTPS协议的URL添加拱门IP:https://开头本地主机https:// system_IP。

通过SSL浏览Apache

通过SSL浏览Apache

第7步:在Apache上启用PHP

20.默认的Apache仅提供不带动态脚本语言的支持在Arch Linux的HTML静态文件的内容。 要激活PHP首先打开Apache的主配置文件,然后搜索并取消以下LoadMolude表达式(PHP,Apache不与Arch Linux的mod_mpm_event工作)。

$ sudo nano /etc/httpd/conf/httpd.conf

使用[按Ctrl] + [W]搜索和注释以下行看起来是这样。

#LoadModule mpm_event_module modules/mod_mpm_event.so
启用PHP模块

启用PHP模块

21.然后为PHP模块中启用MODS路径的新文件,内容如下。

$ sudo nano /etc/httpd/conf/mods-enabled/php.conf

添加正好以下内容(必须使用mod_mpm_prefork)。

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php5_module modules/libphp5.so
Include conf/extra/php5_module.conf
启用mod_mpm_prefork模块

启用mod_mpm_prefork模块

22.要验证设置创建一个PHP在DocumnetRoot名为info.php的文件(/ SRV / HTTP /),然后重新启动Apache和浏览器指向info.php的文件:HTTPS://localhost/info.php。

<?php
phpinfo();
?>
$ sudo systemctl restart httpd
验证PHP信息

验证PHP信息

而已! 如果一切看起来就像上图中,你现在有在Apache支持PHP动态服务器端的脚本语言,你现在可以开发使用开源CMS像WordPress例如网站。

如果要验证Apache语法配置并查看加载的模块的列表,而不重新启动httpd守护程序,请运行以下命令。

$ sudo apachectl configtest
$ sudo apachectl -M

第8步:安装和配置PhpMyAdmin

23.如果你没有掌握MySQL命令行,并希望通过web界面提供了MySQL数据库的简单的远程访问,那么你需要安装在拱箱phpMyAdmin套件。

$ sudo pacman -S phpmyadmin php-mcrypt

24.已安装的软件包后,您需要启用一些PHP扩展(mysqli.so,mcrypt.so -内部认证),你可以,也为需要为未来的CMS平台,如openssl.so,IMAP使其他模块。所以还是iconv.so等。

$ sudo nano /etc/php/php.ini

找到并取消注释以上扩展名。

extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so
extension=iconv.so
extension=imap.so
extension=zip.so
extension=bz2.so
安装和配置PhpMyAdmin

安装和配置PhpMyAdmin

此外,在同一个文件,搜索和定位open_basedir的语句,然后添加phpMyAdmin的系统路径( 在/ etc / webapps /目录/ usr /共享/ webapps /下 ),以确保PHP可以在这些目录访问和读取文件(如果你还,更改虚拟主机的DocumentRoot从/ SRV / HTTP /路径到另一个位置,你需要在这里添加新路径太)。

启用open_basedir

启用open_basedir

25.你需要以访问phpMyAdmin的Web界面做的最后一件事是添加虚拟主机的Apache的phpMyAdmin声明。 作为安全措施,将确保PhpMyAdmin Web界面只能从本地主机(或系统IP地址)使用HTTPS协议,而不是从其他不同的虚拟主机访问。 因此,打开底部本地主机-ssl.conf中的Apache文件,前年 语句添加以下内容。

$ sudo nano /etc/httpd/conf/sites-enabled/localhost-ssl.conf
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.html index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
创建PhpMyAdmin虚拟主机配置

创建PhpMyAdmin虚拟主机配置

26.然后重新启动Apache后台程序和浏览器指向以下地址,你应该能够进入phpMyAdmin的Web界面:https://开头本地主机/ phpMyAdmin的https:// system_IP / phpMyAdmin的

访问PhpMyAdmin Web界面

访问PhpMyAdmin Web界面

27.如果您登录到phpMyAdmin之后,你看到一个底部错误关于一个blowfish_secret,打开和编辑/etc/webapps/phpmyadmin/config.inc.php文件,插入随机字符串像在下面的语句,然后刷新页。

$cfg['blowfish_secret'] = ‘{^QP+-(3mlHy+Gd~FE3mN{gIATs^1lX+T=KVYv{ubK*U0V’ ;
修复blowfish_secret错误

修复blowfish_secret错误

第9步:启用LAMP系统宽

28.如果你想的LAMP后重新启动系统运行以下命令自动启动。

$ sudo systemctl enable httpd mysqld
启用LAMP系统宽

启用LAMP系统宽

这是一些主要的配置设置到Arch Linux的系统转变成一个简单但功能强大,快速和强大的网络平台与先进的年龄服务器软件用于小型非关键环境所需LAMP,但如果你固执,仍然想使用它在大型生产环境中,您应该充分的耐心,并额外关注软件包更新,并定期系统备份映像,以便在系统故障时快速恢复系统。