您的位置 首页 php

LNMP环境搭建完整版

1、LNMP一键安装包
网址:lnmp.org,里面介绍一些要求,功能等
进入到安装页面说明,找到相关的安装说明,运行,然后一步一步按照操作就行了,比较简单

2、使用宝塔,这是更加傻瓜,方便的一款工具,操作服务,只需在网站后台,点点鼠标,就能完成
网址:bt.cn
找到,linux安装,里面有各个系统的安装命令,运行与你系统相关的命令
如centos
yum install -y wget && wget -O install.sh
&& sh install.sh

安装成功后,会显示给你登陆地址和用户名密码
登陆后
可以选择你要安装的环境的软件和版本等。等安装结束,你的linux+Nginx + Mysql + PHP环境也就配成功了

二、手工搭建环境

查看是否已安装wget:
rpm -qa wget

否则安装:
yum install wget

  1. 查看是否已安装编译器:
    rpm -qa gcc

否则安装:
yum install gcc gcc-c++

安装Nginx

  1. 安装nginx依赖包

nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:

yum -y install pcre pcre-devel

nginx的各种模块中需要使用gzip压缩:

yum -y install zlib zlib-devel

安全套接字层密码库:

yum -y install openssl openssl-devel

  1. 下载nginx包并解压(到/usr/local/src目录中)

cd /usr/local/src

wget

tar -zxvf nginx-1.1.10.tar.gz

  1. 编译安装(到/usr/local/nginx目录中)

cd nginx-1.1.10

./configure –prefix=/usr/local/nginx

make

make install

  1. 创建并设置nginx运行账号:

groupadd nginx

useradd -M -g nginx -s /sbin/nologin nginx

cd /usr/local/nginx/conf

vim nginx.conf,设置user参数如下:

user nginx nginx

/usr/local/nginx/sbin/nginx -t

  1. 启动nginx

/usr/local/nginx/sbin/nginx

5.访问站点IP,出现下图说明安装成功

如果不能访问,可能是防火墙的原因,增加80端口,或关闭防火墙

安装Mysql

  1. 卸载已有mysql

查看是否已安装mysql:

rpm -qa mysql

有则卸载:

rpm -e mysql  // 普通删除模式
rpm -e –nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

使用 yum 命令安装 MySQL,安装前我们需要先去官网下载 Yum 资源包

wget
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server

权限设置:

chown mysql:mysql -R /var/lib/mysql

初始化 MySQL:

mysqld –initialize

启动 MySQL:

service mysqld start

查看 MySQL 运行状态:

service mysqld status

mysqladmin –version 查看mysql版本号

遇到的坑

0.ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证

  1. mysql> use mysql;

2. mysql> update user set password=password( “你的新密码” ) where user= “root” ;

3. mysql> flush privileges;

4. mysql> quit

5.

如果提示没有password字段 update user set authentication_string=password(“123456″) where user=”root”;

1.

mysql安装提示:TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_ti

解决办法:

vim /etc/my.cnf

配置文件增加

[mysqld]

explicit_defaults_for_timestamp=true

启动失败原因

dataDir= /mysql 清空 给权限 在mysqld –initialize

给权限还不能报权限错误 如下

通过日志可以看到以下错误:

cat /var/log/mysqld.log

2018-11-05T14:56:36.150707Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2018-11-05T14:56:36.150728Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
2018-11-05T14:56:36.150734Z 0 [ERROR] InnoDB: os_file_get_status() failed on ‘./ibdata1’. Can’t determine file permissions
2018-11-05T14:56:36.150744Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2018-11-05T14:56:36.751167Z 0 [ERROR] Plugin ‘InnoDB’ init function returned error.
2018-11-05T14:56:36.751185Z 0 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
2018-11-05T14:56:36.751190Z 0 [ERROR] Failed to initialize builtin plugins.
2018-11-05T14:56:36.751194Z 0 [ERROR] Aborting

解决方案:setenforce 0

问题扩展:

SELinux的主要作用是什么

SELinux,Security Enhanced Linux 的缩写,也就是安全强化的 Linux,旨在增强传统 Linux 操作系统的安全性,解决传统 Linux 系统中自主访问控制(DAC)系统中的各种权限问题(如 root 权限过高等)。

传统的 Linux 系统安全,采用的是 DAC(自主访问控制方式),而 SELinux 是部署在 Linux 系统中的安全增强功能模块,它通过对进程和文件资源采用 MAC(强制访问控制方式)为 Linux 系统提供了改进的安全性。

SELinux 的 MAC 并不会完全取代 DAC,恰恰相反,对于 Linux 系统安全来说,它是一个额外的安全层,换句话说,当使用 SELinux 时,DAC 仍然被使用,且会首先被使用,如果允许访问,再使用 SELinux 策略;反之,如果 DAC 规则拒绝访问,则根本无需使用 SELinux 策略。

使用SELinux的好处

它使用的是 MAC 控制方式,这被认为是最强的访问控制方式;

它赋予了主体(用户或进程)最小的访问特权,这也就意味着,每个主体仅被赋予了完成相关任务所必须的一组有限的权限。通过赋予最小访问特权,可以防止主体对其他用户或进程产生不利的影响;

SELinux 管理过程中,每个进程都有自己的运行区域(称为域),各进程仅运行在自己的域内,无法访问其他进程和文件,除非被授予了特殊权限。

SELinux 可以调整到 Permissive 模式,此模式允许查看在系统上执行 SELinux 后所产生的印象。在 Permissive 模式中,SELinux 仍然会记录它所认为的安全漏洞,但并不会阻止它们。

安装PHP

  1. 安装php依赖包

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

2,下载
wget

tar -zxvf php-7.2.17.tar.gz

  1. 编译安装(到/usr/local/php目录)

cd php-7.2.17

./configure –prefix=/usr/local/php –disable-fileinfo –enable-fpm –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-openssl –with-zlib –with-curl –enable-ftp –with-gd –with-xmlrpc –with-jpeg-dir –with-png-dir –with-freetype-dir –enable-gd-native-ttf –enable-mbstring –with-mcrypt=/usr/local/libmcrypt –enable-zip –enable-mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-mysql-sock=/var/lib/mysql/mysql.sock –without-pear –enable-bcmath

(注意:–with-mcrypt参数指定的是libmcrypt的安装目录。Php7不再使用mysql的库来支持mysql的连接,而是启用了mysqlnd来支持,所以php7的编译已经不再使用–with-mysql参数指定mysql的安装位置了,若想支持mysql,需要设置–enable-mysqlnd、–with-mysqli和–with-pdo-mysql=mysqlnd参数,–with-mysql-sock指定的是编译mysql时-DMYSQL_UNIX_ADDR参数指定的文件)

make

make install

  1. 将php包解压目录中的配置文件放置到正确位置(configure命令中的–with-config-file-path设置的位置)

cp php.ini-development /etc/php.ini

  1. 创建并设置php-fpm运行账号

groupadd www-data

useradd -M -g www-data -s /sbin/nologin www-data

cd /usr/local/php/etc

cp php-fpm.conf.default php-fpm.conf

vim php-fpm.conf

发现搜索不到“user”(设置运行账号的位置),但发现文件的最后一行:

所以:

cd php-fpm.d

cp www.conf.default www.conf(否则include匹配不到文件)

vim www.conf

搜索“user”设置运行账号:

user=www-data

group=www-data

  1. 配置nginx支持php

vim /usr/local/nginx/conf/nginx.conf

修改完成之后记得重启nginx服务:

service nginx start

  1. 设置php-fpm为系统服务:

vim /etc/systemd/system/php-fpm.service

文件内容:

[Unit]

Description=php-fpm

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/php/sbin/php-fpm

PrivateTmp=True

[Install]

WantedBy=multi-user.target

  1. 设置php-fpm服务开机自启动:

systemctl enable php-fpm.service

  1. 启动php-fpm:

systemctl start php-fpm.service

查看是否启动成功:

ps aux | grep php-fpm

10.写一个php脚本测试nginx是否已支持php,php是否已支持mysql。

<?php
phpinfo();
?>

保存为index.php,然后打开网址

wget提示:
ERROR: cannot verify mydomain.com’s certificate, issued by `/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance CA-3′:
Unable to locally verify the issuer’s authority.
To connect to mydomain.com insecurely, use `–no-check-certificate’.
Unable to establish SSL connection.

确实用 –no-check-certificate 可以正常下载,

文章来源:智云一二三科技

文章标题:LNMP环境搭建完整版

文章地址:https://www.zhihuclub.com/41627.shtml

关于作者: 智云科技

热门文章

网站地图