一.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/删除或者替换为自定义位置
本文地址: centos7下搭建lnmp环境