(LNMP) Nginx_PHP_MariaDB
L用的是Centos7.5以上,主要是NMP三组件的安装记录。
通常会先安装一下依赖:
yum install -y pcre-devel zlib-devel openssl-devel
使用yum或rpm方式安装MariaDB
# 保留缓存软件包
#sudo vim /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
# 防火墙先关为敬
systemctl stop firewalld.service
systemctl disable firewalld.service
#------------------最简单的 yum 安装,默认版本5.5.64 -------------------------
yum install mariadb mariadb-server
systemctl start mariadb
netstat -nltp # 找3306
# vim /etc/my.cnf --[mysqld]下增加一行:
innodb_file_per_table=1
systemctl restart mariadb mysql
use mysql;
grant all PRIVILEGES on *.* to 'root'@'%' IDENTIFIED BY '123456' with grant option;
grant all PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '123456' with grant option;
FLUSH PRIVILEGES;
# 如果修改了 /etc/my.cnf 后,启动mysql 时出错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket
# 则需要编辑 /etc/my.cnf.d/client.cnf 文件,在[client]下添加:
port=3306
socket=/data/mariadb/mysql.sock
# 指向正确的 sock 和端口
# ------------离线下载安装 rpm 的 5.5.64 版本---------------------------------
# https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-5.5.65/yum/centos74-amd64/rpms/
# https://mariadb.com/kb/en/library/installing-mariadb-with-the-rpm-tool/
# 可能要下载以下rpm包
MariaDB-client-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-client-debuginfo-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-server-debuginfo-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-devel-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-server-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-shared-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-test-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-common-5.5.65-1.el7.centos.x86_64.rpm
MariaDB-compat-5.5.65-1.el7.centos.x86_64.rpm
libzstd-1.3.4-1.el7.x86_64.rpm
galera-25.3.26-1.rhel7.el7.centos.x86_64.rpm
jemalloc-3.6.0-1.el7.x86_64.rpm
jemalloc-devel-3.6.0-1.el7.x86_64.rpm rpm -Uvh --force --nodeps *.rpm #./bin/mysqladmin -u root password ''
#./bin/mysqladmin -u root -h evxapp01 password ''
#Alternatively you can run:
#./bin/mysql_secure_installation ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql &
# 后续设置同上. # ------------- 使用官方推荐的 yum 方式安装 10.4.8 -----------------------------
# https://mariadb.com/kb/en/library/yum/# 先得到仓库
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
# 成功后, 编辑 /etc/yum.repos.d/mariadb.repo 更改一下 url 国内源. 比如清华,其它不改。如果网速够快,可以不改。
[mariadb-main]
name = MariaDB Server
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.4.8/yum/rhel/$releasever/$basearch
gpgkey = file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY
gpgcheck = 1
enabled = 1 [mariadb-maxscale]
# To use the latest stable release of MaxScale, use "latest" as the version
# To use the latest beta (or stable if no current beta) release of MaxScale, use "beta" as the version
name = MariaDB MaxScale
baseurl = https://mirrors.tuna.tsinghua.edu.cn/MaxScale/2.4/centos/$releasever/$basearch
gpgkey = file:///etc/pki/rpm-gpg/MariaDB-MaxScale-GPG-KEY
gpgcheck = 1
enabled = 1 [mariadb-tools]
name = MariaDB Tools
baseurl = https://mirrors.tuna.tsinghua.edu.cn/Tools/rhel/$releasever/$basearch
gpgkey = file:///etc/pki/rpm-gpg/MariaDB-Enterprise-GPG-KEY
gpgcheck = 1
enabled = 1
# 然后就可以直接 yum 安装 10.4.8 了。因为上面的文件里写的是 10.4.8 版本
yum install MariaDB-server galera-4 MariaDB-client MariaDB-shared MariaDB-backup MariaDB-common
# 配置文件同上.
# 启动 状态 停止 重启 开机启动
systemctl start mariadb
systemctl status mariadb
systemctl stop mariadb
systemctl restart mariadb
systemctl enable mariadb
二进制程序包 tar 安装 MariaDB 供参考:
() 准备用户
groupadd -r -g mysql
useradd -r -g -u -m -d /data/mysqldb mysql () 准备数据目录
以/data/mysqldb为例,建议使用逻辑卷
chown mysql:mysql /data/mysqldb
chmod /data/mysqldb () 准备二进制程序
tar xf mariadb-10.2.-linux-x86_64.tar.gz -C /usr/local #/usr/local是程序包指定的目录,必须解压在这里
cd /usr/local;ln -sv mariadb-10.2. mysql
chown -R mysql:mysql /usr/local/mysql/ () 准备配置文件
mkdir /etc/mysql/
cp support-files/my-huge.cnf /etc/mysql/my.cnf
#/usr/local/mysql/support-files下有很多my-*.cnf文件,分别对应不同的内存大小,可打开看看,选择对应自己机器的拷贝就行
vim /etc/mysql/my.cnf
[mysqld]中添加三个选项: datadir = /data/mysqldb
innodb_file_per_table = on # 可不加
skip_name_resolve = on # 禁止主机名解析,建议使用,不加也可 () 创建数据库文件
cd /usr/local/mysql/
./scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql () 准备日志文件
touch /var/log/mysqld.log
chown mysql:mysql /var/log/mysqld.log () 准备服务脚本,并启动服务
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start () 安全初始化
/usr/local/mysql/bin/mysql_secure_installation () 添加环境变量
echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh mysql -uroot -p
-- use mysql;
-- grant all PRIVILEGES on *.* to 'root'@'%' IDENTIFIED BY '123456' with grant option;
-- grant all PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '123456' with grant option;
-- FLUSH PRIVILEGES;
解决ibdata1体积太大问题
# 备份全部库
mysqldump -uroot -p123456 --all-databases --add-drop-table > /opt/all.sql # vim /etc/my.cnf --[mysqld]下增加一行:
innodb_file_per_table= # 重启服务
systemctl restart mariadb mysql -uroot -p123456
show variables like '%per_table%'; -- 得到 ON 即开启成功 # 删除 ibdata1
cd /var/lib/mysql
rm -rf ib_logfile*
rm -rf ibdata1 # 重启服务
systemctl restart mariadb # 导入数据
mysql -uroot -p123456 < /opt/all.sql
安装与配置nginx1.17.4
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service tar zxf nginx-1.17..tar.gz
cd nginx-1.17./
./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-openssl=/usr/bin/openssl
make & make install vim /etc/profile PATH=/opt/nginx/sbin:$PATH
export PATH . /etc/profile useradd nginx
passwd nginx cd /opt/
chown -R nginx:nginx nginx/ ln -s /opt/nginx/sbin/nginx /usr/bin/nginx
cd / # 修改conf/nginx.conf 文件,并启用PHP
user nginx;
worker_processes auto; error_log logs/error.log info; pid logs/nginx.pid; events {
use epoll;
worker_connections 16384;
} http {
include mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time"'; sendfile on;
tcp_nopush on; keepalive_timeout 65;
types_hash_max_size 2048; server {
listen 80;
server_name _; location / {
root html;
index index.html index.htm index.php;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
su nginx
sudo nginx -t # 启用PHP解析后,如果浏览器出现 File not found . 需要检查nginx.conf配置文件
# 可能需要将 $document_root 改成绝对路径。例如下面的配置就改成了/webapp/www
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /webapp/www$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
安装与配置PHP7.2.22
cd /opt
tar zxf php-7.2..tar.gz
cd php-7.2.
安装依赖
yum install -y autoconf gcc gcc-c++ 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
因为要安装 MediaWiki, 所以再安装依赖 APCu, icu, intl
# 下载 https://pecl.php.net/package/APCu
# 下载 https://github.com/unicode-org/icu 或者git
# icu需要在php编译之前安装,成功后就可以在编译PHP时直接使用。
tar xf icu4c-52_1-src.tgz
cd icu/source
mkdir /usr/local/icu
./configure --prefix=/usr/local/icu
make && make install
# PHP编译时 --enable-intl --with-icu-dir=/usr/local/icu
# 直接带上intl扩展。 # apcu 需要在php安装之后安装。安装完后需要重启 php-fpm
tar zxf apcu-5.1..tgz
cd apcu-5.1.
phpize # /usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
# /etc/php.ini中添加引用:
extension=apcu.so
apc.enabled=on
apc.shm_size=128M
apc.enable_cli=on
/etc/init.d/php-fpm restart # 如果时编译时没有intl,事后安装,则如下执行:
cd /opt/php-7.2.22/ext/intl
make clean
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-intl --with-icu-dir=/usr/local/icu
make && make install
预编译: 注意红色的2项,需要在系统中添加对应的组和用户,用于启动php-fpm。 参数 with-config-file-path=/etc 则指定php.ini的位置
cd php-7.2.22
./configure \
--prefix=/usr/local/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-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-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 \
--enable-intl \
--with-icu-dir=/usr/local/icu
编译如果出错:
configure: error: off_t undefined; check your library configuration
解决:加入icu/lib路径 vim /etc/ld.so.conf
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
/usr/local/icu/lib # 保存退出,执行:
ldconfig -v
安装:
make && make install
添加用户和组,如果事先没有此用户的话:
groupadd nginx
useradd -g nginx
配置并启动 php-fpm
vi /etc/profile PATH=$PATH:/usr/local/php/bin
export PATH source /etc/profile cd /opt/php7.2.22
cp php.ini-production /etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/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 /etc/init.d/php-fpm start
/etc/init.d/php-fpm restart
/etc/init.d/php-fpm stop
如果需要 opcache, 操作如下:
yum install -y php-pecl-zendopcache # 修改配置文件 php.ini
zend_extension=opcache.so [opcache]
opcache.enable= # 然后重启php-fpm 和 nginx
/etc/init.d/php-fpm restart
nginx -s reload # 最后用 phpinfo() 检查
选装 memcached
yum install memcached
vi /etc/sysconfig/memcached # 调大一些内存用量
systemctl start memcached && systemctl enable memcached
# 安装 php 扩展
yum install libmemcached libmemcached-devel # 依赖
wget https://pecl.php.net/get/memcached-3.1.3.tgz
tar zxf memcached-3.1..tgz
cd memcached-3.1.
/usr/local/php/bin/phpize # php7.2的路径
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install # 留意路径信息
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-/
# 是否存在 memcached.so find / -name php.ini
# 找到 php.ini 在扩展中增加一行: extension=memcached.so # 重启所有的php-fpm进程后,浏览器中查看 phpinfo
一个个安装嫌烦的话, 开发环境也可以使用xampp包
./xampp-linux-x64-7.2.--installer.run cd /opt/lampp ./lampp security
# 依次设置安全选项.但是最后要手动启用mysql的远程连接 #在/opt/lampp/etc/my.cnf 中注释掉:
#skip-networking
(LNMP) Nginx_PHP_MariaDB的更多相关文章
- 阿里云ECS安装lnmp环境-转载自:http://ninghao.net/blog/1368
远程控制你的服务器 远程控制 Linux 类型的系统的服务器,比如 CentOS 系统的服务器,一般不像 Windows 服务器那样,使用图形界面的远程控制.我们需要使用命令行工具,远程连接到服务器, ...
- centos6.5下使用yum完美搭建LNMP环境(php5.6) 无脑安装
准备工作 配置防火墙,开启80端口.3306端口删除原有的 iptables , 添加合适的配置 rm -rf /etc/sysconfig/iptables vi /etc/sysconfig/ip ...
- LAMP坏境和LNMP环境安装Nagios4.1.1和基本配置
----------------------------------------以下内容为笔者生产环境的监控,安装都是经过一步步测试的-------------------------------- ...
- lnmp 预设iptables设置
「LNMP」iptables初始配置 首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...
- 烂泥:学习centos之快速搭建LNMP环境
本文由秀依林枫提供友情赞助,首发于烂泥行天下 以前在centos下安装软件都是喜欢源码安装,不过昨天因为一个事情需要一个centos 下的LNMP环境.反倒不会搞了,今天特意记录下,以备后续使用. 一 ...
- 基于corosync+pacemaker+drbd+LNMP做web服务器的高可用集群
实验系统:CentOS 6.6_x86_64 实验前提: 1)提前准备好编译环境,防火墙和selinux都关闭: 2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.1 ...
- 基于centos的lnmp搭建
部署lnmp环境 安装配置mariadb配置php配置phpmyadmin配置php-fpm配置nginx配置测试 LNMP(linux,nginx,mariadb,php)部署,以下默认在root权 ...
- lnmp安装
一.准备工作 需要的安装包都是从官网下载的,系统centos6.6 nginx-1.10.1.tar.gz php-5.6.24.tar.gz mysql-5.5.32.tar.gz 所有的包都一传入 ...
- [原创]Centos7 从零整合LNMP一体包
按照前几章配置好后,我们就可以把这些工具打包啦.生成LNMP一体包. # export LD_LIBRARY_PATH=/package/libmemcached/lib:$LD_LIBRARY_PA ...
随机推荐
- 时序数据库 Apache-IoTDB 源码解析之文件数据块(四)
上一章聊到行式存储.列式存储的基本概念,并介绍了 TsFile 是如何存储数据以及基本概念.详情请见: 时序数据库 Apache-IoTDB 源码解析之文件格式简介(三) 打一波广告,欢迎大家访问Io ...
- Spring基于注解配置AOP
D:\Java\IdeaProjects\JavaProj\SpringHelloWorld\src\aop.xml <?xml version="1.0" encoding ...
- java枚举类的常见用法
枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似.不过相比 ...
- MP3播放-基于MCI-API接口
今天整理到音频播放的部分,本来就想抽取一个简单的接口方便以后可能会用到,然而不知不觉就把常用的功能都给一起封装好了,核心其实就是调用MCI的API接口,具体的功能就是变换不同的MCI指令来实现. == ...
- CCF_201503-1_图像旋转
水. #include<iostream> #include<cstdio> using namespace std; ][]; int main() { int n,m; c ...
- idea快速创建一个类 实现一个接口
一 创建一个接口类 二 点击接口名称 按alt + ent 三 选择implement interface 选项 完美!!!!!!!
- C++ 基础--虚构函数
virtual 函数 示例代码如下: #include <stdio.h> class base { public: virtual void name(){printf("ba ...
- 使用Unicode(宽字节字符集);多字节字符集中定义宽字节变量
2012-03-25 14:54 (分类:计算机程序) 2.2 宽字符和C 宽字符不一定是Unicode.Unicode是宽字符集的一种.然而,因为本书的焦点是Windows而不是C执行的理论,所以书 ...
- FastDFS 配置文件 client.conf storage_ids.conf
client.conf : # connect timeout in seconds # default value is 30s connect_timeout=30 连接 ...
- Red Team 指南--第2章开源情报(OSINT)侦察
第2章开源情报(OSINT)侦察 贡献者:伊恩·巴维斯翻译:BugMan 哇,慢点牛仔吧!在我们深入探讨“做性感时光”(笑话)红队闻名的黑客冒险,还有一些作业要做.五分之一的专业人士从未学习或做过任何 ...