• 代码千万行,注释第一行。命名不规范,同事泪千行。

centos7下搭建lnmp环境

PHP Secondar 8个月前 (01-08) 463次浏览 已收录 0个评论

一.Nginx

简介

Nginx是一款轻量级的文本反向代理服务器及电子邮件代理服务器,其特点是内存少,并发高。

原理

Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),location配置的命令会启动不同模块完成工作
反向代理,负载均衡,动静分离

性能优化

web服务器,处理静态文件、索引文件以及自动索引效率高。
(1):代理服务器,快速高效反向代理,提升网站性能。
(2):b负载均衡器,内部支持Rails和PHP,也可支持HTTP代理服务器,对外进行服务。同时支持简单容错和利用算法进行负载均衡。
(3):性能方面,Nginx专门为性能设计,实现注重效率。采用Poll模型,可以支持更多的并发连接,并在大并发时占用很低内存。
(4):稳定性方面,采用分阶段资源分配技术,使CPU资源占用率低。
(5):高可用性方面,支持热备,启动迅速。

安装

将系统包更新到最新版本

yum update

安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

安装 PCRE pcre-devel

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。

yum install -y pcre pcre-devel

安装zlib

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

安装OpenSSL

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

官网下载

下载.tar.gz安装包,地址:https://nginx.org/en/download.html

cd /root/
wget https://nginx.org/download/nginx-1.9.9.tar.gz

解压

tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.9.9

建立目录

mkdir /service
mkdir /service/nginx
mkdir /service/nginx/temp
mkdir /service/nginx/conf
mkdir /service/log
mkdir /service/log/nginx
mkdir /service/lock

编译配置

./configure \
--prefix=/service/nginx \
--conf-path=/service/nginx/conf/nginx.conf \
--pid-path=/service/nginx/conf/nginx.pid \
--lock-path=/service/lock/nginx.lock \
--error-log-path=/service/log/nginx/error.log \
--http-log-path=/service/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/service/nginx/temp/client \
--http-proxy-temp-path=/service/nginx/temp/proxy \
--http-fastcgi-temp-path=/service/nginx/temp/fastcgi \
--http-uwsgi-temp-path=/service/nginx/temp/uwsgi \
--http-scgi-temp-path=/service/nginx/temp/scgi \
--with-http_stub_status_module \
--with-http_ssl_module

编译安装

make -j6
make install

启动、停止nginx

./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

查询nginx进程:

ps aux|grep nginx

说明安装运行成功

开机自启动
即在rc.local增加启动代码就可以了。

vi /etc/rc.local

最后增加一行

/service/nginx/sbin/nginx

设置执行权限:

chmod 755 /etc/rc.local

浏览器打开http://你的ip

如出现

关闭防火墙

systemctl stop firewalld.service 

禁止防火墙开启启动

systemctl disable firewalld.service

再次打开

二.php

PHP 作为一种强大的语言,无论是以模块还是 CGI 的方式安装,它的解释器都可以在服务器上访问文件、运行命令以及创建网络连接等。这些功能也许会给服务器添加很多不安全因素,但是只要正确地安装和配置 PHP,以及编写安全的代码,那么 PHP 相对于 Perl 和 C 来说,是能创建出更安全的 CGI 程序的。而且,也可以在可用性和安全性之间找到一个很好的平衡点

在本文(安装php)之前有安装nginx,当然除了nginx还有Apache,个人选用了nginx,本文是接centos7安装nginx-1.15.8后安装php

安装php依赖包

yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel libzip

安装PHP

下载php-7.2.13

cd /root/
wget http://101.96.10.64/cn2.php.net/distributions/php-7.2.13.tar.gz

解压

tar zxvf php-7.2.13.tar.gz

建立目录

mkdir /service/php

进入解压后的php文件夹

cd php-7.2.13

用户及用户组建立

groupadd nginx
useradd -g nginx nginx

编译配置

./configure \
--prefix=/service/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache

要出现 error: Unable to locate gmp.h 错误

yum install gmp-devel

要出现 Please reinstall readline – I cannot find readline.h

yum -y install readline-devel

编译安装

make -j8
make install

安装好之后的工作(如果在./configure选项中enable了pear需要执行下面命令)

/service/php/bin/pear install channel://pear.php.net/PHP_Archive-0.12.0
/service/php/bin/pear channel-update pear.php.net

设置用户变量

ln -s /service/php/bin/php /usr/bin/php

配置环境变量

vi /etc/profile

在末尾追加

PATH=$PATH:/service/php/bin

执行命令使得改动立即生效

source /etc/profile

设置php-fpm配置文件

cp /service/php/etc/php-fpm.conf.default /service/php/etc/php-fpm.conf
cp /service/php/etc/php-fpm.d/www.conf.default /service/php/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

启动php-fpm

/etc/init.d/php-fpm start

验证是否成功

ps aux|grep php-fpm

成功

加入开机启动

vi /etc/rc.local

增加一行

/etc/init.d/php-fpm start

nginx配置解析php

cd /service/nginx
vi ./conf/nginx.conf

在 server 下找到

location / {
    root html;
    index index.html index.htm index.php; # 加上 index.php
}
# 加入
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /service/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
          }

然后平滑重启nginx

./sbin/nginx -s reload

没有报错,说明重启成功

验证

cd html
vi index.php
<?php
phpinfo();
?>

浏览器打开http://你的ip/index.php

成功

三.MySQL

MySQL 简介

Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

安装mysql

安装前,检测系统是否自带安装 MySQL

rpm -qa | grep mysql

如果你系统有安装,那可以选择进行卸载
普通删除模式

rpm -e mysql 

强力删除模式,如果使用下面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

rpm -e --nodeps mysql

下载 Yum 资源包

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装mysql

yum install mysql-server

权限设置

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

初始化 MySQL

mysqld --initialize

启动 MySQL

systemctl start mysqld

查看 MySQL 运行状态

systemctl status mysqld

验证 MySQL 安装

mysqladmin --version

将输出以下结果,该结果基于你的系统信息

如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。
Mysql安装成功后,默认的root用户密码为空,使用以下命令来创建root用户的密码

mysqladmin -u root password "you_password";

设置开机启动

vi /etc/rc.local

增加一行

mysqld --initialize

根据需要开启远程登录

登录mysql

mysql -u root -p

开启远程登录

grant all privileges on *.* to 'root' @'%' identified by 'you_password';

使用 exit 退出

使用Navicat Premium或其他工具连接

也可根据需要安装

phpMyAdmin

四.phpmyadmin

简介

phpmyadmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyaAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性

安装

到https://www.phpmyadmin.net/downloads/选择安装phpMyAdmin

下载

cd /service/nginx/html/
wget https://files.phpmyadmin.net/phpMyAdmin/4.8.4/phpMyAdmin-4.8.4-all-languages.tar.gz

解压

tar zxvf phpMyAdmin-4.8.4-all-languages.tar.gz

重命名

mv phpMyAdmin-4.8.4-all-languages phpmyadmin

删除下载的phpMyAdmin-4.8.4-all-languages.tar.gz

rm -rf phpMyAdmin-4.8.4-all-languages.tar.gz

修改 config.default.php

vi phpmyadmin/libraries/config.default.php
$cfg['Servers'][$i]['host'] = 'localhost';
改为
$cfg['Servers'][$i]['host'] = '127.0.0.1';

设置 blowfish_secret
$cfg['blowfish_secret'] = 'yourblowfish_secret';
找到
if (defined('TEMP_DIR')) {
    $cfg['TempDir'] = TEMP_DIR;
} else {
    $cfg['TempDir'] = './tmp/';
}
将./tmp/删除或者替换为自定义位置


一只大萝北 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:centos7下搭建lnmp环境
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址