Virtualbox搭建LNMP-2

自动安装lnmp

第一步: Nginx

安装 Nginx

在 CentOS 7 系统上:

rpm --import http://nginx.org/keys/nginx_signing.key
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx

在 CentOS 6 系统上:

rpm --import http://nginx.org/keys/nginx_signing.key
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install nginx

 

注意在安装 nginx RPM 包之前,如果您没有导入 nginx 的官方 GPG 密钥的话,会出一如下所示的警告:

warning: /var/tmp/rpm-tmp.KttVHD: Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY

启动 Nginx

安装完成后,nginx 是不会自动启动的.

在 CentOS 7 系统上:

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
$ sudo firewall-cmd --reload

在 CentOS 6 系统上:

$ sudo service nginx start
$ sudo chkconfig nginx on
$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo service iptables save

测试 Nginx

nginx 的默认文档要目录是 /usr/share/nginx/html。默认的 index.html 文件一定已经在这目录下了。输入 http://nginx的ip地址/ 测试 web 页。

第二步: MariaDB/MySQL

在 CentOS 7 系统上:

$ sudo yum install mariadb-server
$ sudo systemctl start mariadb
$ sudo systemctl enable mariadb

在 CentOS 6 系统上:

$ sudo yum install mysql-server
$ sudo service mysqld start
$ sudo chkconfig mysqld on

在成功启动 MariaDB/MySQL 服务后,执行在 MariaDB/MySQL 服务包中的脚本。这一次的运行会为为数据库服务器进行一些安全强化措施,如设置(非空)的 root 密码、删除匿名用户、锁定远程访问。

$ sudo mysql_secure_installation

第三步: PHP

为了 LNMP 需要,您至少需要安装上 PHP-FPM 和 PHP-MySQL 两个模块。PHP-FPM(FastCGI 进程管理器)实现的是 nginx 服务器和生成动态内容的 PHP 应用程序的访问接口。PHP-MySQL 模块使 PHP 程序能访问 MariaDB/MySQL 数据库。

安装 PHP 模块

在 CentOS 7 系统上:

$ sudo yum php php-fpm php-mysql

在 CentOS 6 系统上:

$ sudo yum --enablerepo=remi install php php-fpm php-mysql

启动 PHP-FPM

在 CentOS 7 系统上:

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm

在 CentOS 6 系统上:

$ sudo chkconfig php-fpm on
$ sudo service php-fpm start

第四步: 配置 LNMP 组合包

使 Httpd 不可用

在 CentOS 7 系统上:

$ sudo systemctl disable httpd

在 CentOS 6 系统上:

$ sudo chkconfig httpd off

配置 Nginx

配置 nginx 虚拟主机,使得 nginx 可以通过 PHP-FPM 来处理 PHP 的任务。

sudo vi /etc/nginx/conf.d/default.conf

#添加下面内容到server块

root /usr/share/nginx/html;
index index.php index.html index.htm;
location ~ .php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

nginx 的默认工作线程数(在 /etc/nginx/nginx.conf 文件中指定的)是 1,通常来说我们创建的工作线程数应该和 CPU 核数相同。要确信您的 CPU 的核数,请运行下面这命令:

$ grep processor /proc/cpuinfo | wc -l

如果您的 CPU 是 4 核的,就如下所示修改 /etc/nginx/nginx.conf 文件。

$ sudo vi /etc/nginx/nginx.conf
worker_processes 4;

配置 PHP

vi /etc/php.ini
cgi.fix_pathinfo=0
date.timezone = "PRC"

为了安全起见,我们希望的是 PHP 解释器只是处理指定文件路径的文件任务,而不是预测搜索一些并不存在的文件任务。上面的第一行起的就是这个作用。

第二行定义的是 PHP 中日期/时间相关函数使用相关的默认时区

测试 PHP

在 CentOS 7 系统上:

$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

在 CentOS 6 系统上:

$ sudo service nginx restart
$ sudo service php-fpm restart

创建一个叫名叫 test.php 的文件,然后写入如下内容,并放入 /var/www/html/ 目录。

打开浏览器,输入 http://nginx的IP地址/test.php 。

你可能感兴趣的:(Virtualbox搭建LNMP-2)