在Gentoo Linux中安装LEMP(Linux,Nginx,MySQL / MariaDB,PHP / PHP-FPM和PhpMyAdmin)

本主题将介绍使用LEMP构建完整Web平台的安装过程(Linux Nginx,MySQL / MariaDB,PHP-FPM / PhpMyadmin)

Gentoo的是最快的Linux发行版之一,由于其生成来源的方向和它的软件管理程序提供- 波蒂奇 -建立一个完整的Web开发平台,其作用和工作原理非常快,也需要一定的工具,具有高度的定制。

在Gentoo Linux中安装LEMP

在Gentoo Linux中安装Nginx

本主题将带您通过构建一个完整的Web环境平台与LEMP (Linux的Nginx的时,MySQL / MariaDB的,PHP-FPM / phpMyAdmin的)一步步的安装过程,并与USE标记的帮助下被Portage软件包管理,提供这提供一组关于编译过程的软件包功能 - 模块或Web平台所需的设置,将高度调整服务器配置。

要求

  1. Gentoo的安装与面向Internet的服务器加固个人资料- Gentoo安装指南
  2. 使用静态IP地址配置的网络。

第1步:安装Nginx Web服务器

1.尝试与Nginx的继续进行安装之前,请确保您的网卡已配置静态IP地址,并确保Portage的来源和你的系统是最新的。

$ sudo su -
# emerge --sync
# emerge --update --deep --with-bdeps=y @world
更新Gentoo Linux

更新Gentoo Linux

2.在更新过程完成后,由呼应使用nginx标志来Portage的make.conf文件选择首选设置和模块继续进行Nginx的安装。 首先通过运行以下命令列出Nginx默认安装模块。

# emerge -pv nginx

有关详细信息模块(软件包USE标记)使用equery的命令。

# equery uses nginx
列出所有标志模块

列出所有标志模块

然后使用以下命令安装Nginx。

# emerge --ask nginx
在Gentoo Linux中安装Nginx

安装Nginx Web服务器

如果你需要额外的模块控制(WebDAV,fancyindex,的GeoIP等)除了默认的,即Nginx的将与编译,追加他们都上波蒂奇一行的make.confNGINX_MODULES_HTTP指令文件,然后用新的模块重新编译Nginx的。

# echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf
# emerge --ask nginx
编译Nginx的新模块

编译Nginx的新模块

3.波蒂奇完成新兴的Nginx后,启动HTTP守护进程,并通过将浏览器指向http验证://本地主机

验证Nginx Web服务器

验证Nginx Web服务器

第2步:安装PHP

4.要使用PHP动态网页编程语言的Nginx服务器,通过Portage的USE标记附加FPM和其他重要的PHP扩展安装PHP-FastCGI进程管理器 (FPM),确保您删除的Apache扩展。

# emerge -pv php
在Gentoo Linux中安装PHP

在Gentoo中安装PHP

# equery uses php
PHP扩展选择

PHP扩展选择

# echo " dev-lang/php fpm cgi curl gd imap mysql mysqli pdo zip json xcache apc zlib zip truetype -apache2 " >> /etc/portage/package.use
# emerge --ask php

5.开始PHP-FPM一些改变之前需要被应用到服务配置文件。 开放的php-fpm的配置文件,并进行以下更改。

# nano /etc/php/fpm-php5.5/php-fpm.conf

查找并取消注释以下指令,如下所示。

error_log = /var/log/php-fpm.log
listen = 127.0.0.1:9000    ## Here you can use any HTTP socket (IP-PORT combination ) you want  ##
pm.start_servers = 20

6. PHP-FPM配置文件后,它的编辑,改变PHP-FPM日志文件权限和启动服务。

# chmod 755 /var/log/php-fpm.log
# /etc/init.d/php-fpm start

即使启动PHP-FPM服务,Nginx也无法与PHP网关通信,因此,需要对Nginx配置文件进行一些更改。

第3步:编辑Nginx配置

7. Nginx的默认模板配置文件只是提供了一个基本的HTTPsocket仅本地主机。 要改变这种行为,并启用虚拟主机,打开nginx.conf文件所在的/ etc / nginx的/路径并进行以下配置。

# nano /etc/nginx/nginx.conf

找到对应于本地主机和监听127.0.0.1的IP地址,并赞扬其所有语句看起来像下面的截图的第一台服务器块。

禁用基本HTTP配置

禁用基本HTTP配置

不要关闭该文件还没有移动到最底部,前最后收花括号“}”添加以下语句。

Include /etc/nginx/sites-enabled/*.conf;
启用Nginx虚拟主机

启用Nginx虚拟主机

8.接下来创建启用站点和 站点可用 (未使用的虚拟主机)Nginx的目录和配置文件的HTTP和HTTPS协议本地主机。

# mkdir /etc/nginx/sites-available
# mkdir /etc/nginx/sites-enabled

为localhost创建以下文件配置。

# nano /etc/nginx/sites-available/localhost.conf

添加以下文件内容。

server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost_access_log main;
error_log /var/log/nginx/localhost_error_log info;
root /var/www/localhost/htdocs;
location / {
index index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location ~ \.php$ {
# Test for non-existent scripts or throw a 404 error
# Without this line, nginx will blindly send any request ending in .php to php-fpm
try_files $uri =404;
include /etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;  ## Make sure the socket corresponds with PHP-FPM conf file
}
}
创建Nginx虚拟主机配置

创建Nginx虚拟主机配置

对于使用SSL的localhost,创建以下配置文件。

# nano /etc/nginx/sites-available/localhost-ssl.conf

添加以下文件内容。

server {
listen 443 ssl;
server_name localhost;
ssl on;
ssl_certificate /etc/ssl/nginx/nginx.pem;
ssl_certificate_key /etc/ssl/nginx/nginx.key;
access_log /var/log/nginx/localhost.ssl_access_log main;
error_log /var/log/nginx/localhost.ssl_error_log info;
root /var/www/localhost/htdocs;
location / {
index index.html index.htm index.php;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}                                                
location ~ \.php$ {
# Test for non-existent scripts or throw a 404 error
# Without this line, nginx will blindly send any request ending in .php to php-fpm
try_files $uri =404;
include /etc/nginx/fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
创建SSL Nginx虚拟主机

创建SSL Nginx虚拟主机

9.现在是时候建立一个系统的可执行文件路径($ PATH shell变量)的两个脚本,充当命令来启动或禁用Nginx的虚拟主机。

创建第一个Bash脚本命名n2ensite,将通过从网站可用启用网站指定的主机之间的符号链接使虚拟主机配置文件。

# nano /usr/local/bin/n2eniste

添加以下文件内容。

#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
fi
avail=/etc/nginx/sites-available/$1.conf
enabled=/etc/nginx/sites-enabled/
site=`ls /etc/nginx/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 nginx server: sudo /etc/init.d/ nginx restart"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi
创建虚拟主机启用脚本

创建虚拟主机启用脚本

10.然后创建n2dissite称为第二个脚本,将删除包含以下内容启用站点,Nginx的路径指定的活动虚拟主机。

# nano /usr/local/bin/n2dissite

添加以下内容。

#!/bin/bash
avail=/etc/nginx/sites-enabled/$1.conf
enabled=/etc/nginx/sites-enabled
site=`ls /etc/nginx/sites-available/`
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!\nPlease restart Nginx: sudo /etc/init.d/nginx restart"
exit 0
fi
fi
创建虚拟主机禁用脚本

创建虚拟主机禁用脚本

11.整理编辑的bash脚本后,追加执行权限,并激活本地主机虚拟主机-使用虚拟主机配置文件名,不扩展的.conf,然后重新启动的Nginx和PHP-FPM服务以应用更改。

# chmod +x /usr/local/bin/n2dissite
# chmod +x /usr/local/bin/n2ensite
# n2ensite localhost
# n2ensite localhost-ssl
# service nginx restart
# service php-fpm restart
重启Nginx和PHP-FPM

重启Nginx和PHP-FPM

12.要测试配置创建网页文件本地主机默认的根路径上的PHP信息文件( 在/ var / WWW /本地主机/ htdocs目录 ),并重定向HTTPS浏览器://localhost/info.phphttp://本地主机/信息.PHP。

echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php
验证PHP配置

验证PHP配置

使用本地主机的虚拟主机配置文件作为模板和Nginx的n2enmodn2dismod只要你喜欢,你可以很容易地现在添加尽可能多的网站,但保证你有有效的DNS指针面向Internet的Web服务器或系统hosts文件在本地使用的条目。

第4步:安装MySQL / MariaDB + PhpMyAdmin

要安装MySQL数据库和phpMyAdmin的Web界面用于MySQL使用上呈现相同的过程在Gentoo安装LAMP

13.作为回报,如果你想使用MariaDB的,直接替代为MySQL,使用以下命令来获得使用标志和安装。

# emerge -pv mariadb
# emerge --ask mariadb
在Gentoo Linux中安装MariaDB

安装MariaDB数据库

如果你使用MySQL包冲突以下行添加到Portage的package.accept.keywords。

# echo “=dev-db/mariadb-5.5.37-r1 ~amd64” >> /etc/portage/package.accept.keywords
# echo “=virtual/mysql-5.5 ~amd64” >> /etc/portage/package.accept.keywords
# emerge --ask mariadb

MySQL数据库安装启动服务,并使用mysql_secure_installation将其固定后,14(改变root密码,禁用root登录外本地主机,删除匿名用户/测试数据库)。

# service mysql start
# mysql_secure_installation

15.使用中,MySQL -u根-p命令来测试其功能与exit命令离开它进入MySQL数据库。

# mysql -u root -p
MariaDB > show databases;
MariaDB > exit;
验证MySQL连接

验证MySQL连接

16.如果你不使用MySQL命令行太美好了。 通过执行以下命令安装PhpMyAdmin Web前端。

# emerge -pv dev-db/phpmyadmin
# echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use
# emerge  --ask dev-db/phpmyadmin
安装PhpMyAdmin

安装PhpMyAdmin

phpMyAdmin的完成安装17后,创建基于示例配置文件的配置文件,更改密码blowfish_secret一个随机字符串,然后创建从/ usr /共享/ webapps /下的phpmyadmin / phpmyadmin_version_number / htdocs中/虚拟主机文档根目录路径的符号链接您要访问PhpMyAdmin的Web界面。

# cd /usr/share/webapps/phpmyadmin/4.2.2/htdocs/
# cp config.sample.inc.php  config.inc.php
# nano config.inc.php
配置PHPMyAdmin

配置PHPMyAdmin

# ln -s /usr/share/webapps/phpmyadmin/4.2.2/htdocs/  /var/www/localhost/htdocs/phpmyadmin
创建PhpMyAdmin符号链接

创建PhpMyAdmin符号链接

18.通过phpmyadmin Web界面访问MySQL数据库,打开浏览器并使用以下URL地址https://开头本地主机/ phpMyAdmin的

验证PhpMyAdmin登录

验证PhpMyAdmin登录

19.最后一步是启用服务的全系统,以重新启动后自动启动。

# rc-update add nginx default
# rc-update add php-fpm default
# rc-update add mysql default
启用服务系统

启用服务系统

现在我们有一个用于Web托管的最小环境设置,如果你只使用HTML,JavaScript和PHP动态生成的页面,你不需要SSL网站,上面的配置应该是令人满意的。